2014年7月31日木曜日

Sublime Text2の翻訳プラグイン

SublimeBingTranslator

テキストエディタSublime Text2の翻訳プラグイン「SublimeBingTranslator」、選択したテキストの翻訳結果を別ファイルに表示します。テキストを翻訳しながら読みたいときにとても便利、翻訳にはBing Translator APIが使われています。

テキストを選択

翻訳結果を新しいファイルに表示


インストール

Sublime Text2のPackage Controlで簡単にインストールできます。Package Controlはパッケージ名を途中まで入力すると、マッチしたものを絞り込んで表示してくれます。

Command PaletteCmd+Shift+Pで開きます。

  • installと入力して、install Packageを選択。
  • bingと入力して、プラグインBing Trasnlatorを選択。
  • プラグインを有効にするため、Sublime Text2を再起動。

標準の翻訳設定は英語から日本語と、日本語から英語です。翻訳設定の変更方法や使い方については、作者さんのweb siteに書かれていますので「visible true: Bing Translator APIを使ったSublime Text 2の翻訳プラグインが無かったので作った話」を参照してください。



キーマップの変更

使い慣れているReplace Translator : Firefox addonに合わせて、キーマップを変更してみました。

新しいキーバインドをユーザー用のキーバインドに追加します。

[
    { "keys": ["alt+shift+r"], "command": "select_translate" },
    { "keys": ["alt+shift+t"], "command": "select_translate_reverse" }
]


翻訳結果を末尾に追加したい

標準では翻訳結果が新しいファイルBing Transrator Results.の先頭行に追加されます。私の場合、翻訳結果が文脈どおりに読めるほうがいいので、翻訳結果を末尾行に追加するように変更してみました。

SublimeBingTranslator.pyを開き、show_result()を変更します。

Windows7の場合は、対象ファイルはここにあります。

C:\Users\{ユーザ名}\AppData\Roaming\Sublime Text 2\Packages\Bing Translator\SublimeBingTranslator.py

以下のようにview.insert(edit, 0, result)の部分を変更します。

変更前

 def show_result(self, edit, source_text, translated):
  view = self.get_result_view()
  result = "*translate*\n"
  result += "------------------------\n"
  result += source_text + "\n"
  result += "- - - - - - - - - - - - \n"
  result += translated + "\n"
  result += "------------------------\n"
  result += "\n"
  view.insert(edit, 0, result)

変更後

 def show_result(self, edit, source_text, translated):
  view = self.get_result_view()
  result = "*translate*\n"
  result += "------------------------\n"
  result += source_text + "\n"
  result += "- - - - - - - - - - - - \n"
  result += translated + "\n"
  result += "------------------------\n"
  result += "\n"
  view.insert(edit, view.size(), result)

これで翻訳結果が末尾行に追加されるようになりました。

SublimeBingTranslatorはとても便利なプラグインです、作者さんありがとうございます。

2014年7月30日水曜日

DVD-RAMのVROファイル分割ツール

DVDレコーダとDVD-RAM

アナログ放送時代の DVD レコーダは既に現役引退ですが、映像ソースの保存や FM チューナのタイマー録音等まだ活躍の場が残っています。

DVD レコーダの HDD に記録したファイルを編集する場合、操作性の悪いレコーダ本体の編集機能よりも PC で編集したいところです。その場合は面倒ですが DVD-RAM に書き出して PC で編集することになります。(ただし CPRM で保護された動画は不可です。)


DVD-RAMのファイル構成

DVD-RAM のファイルは、DVD_RTAV フォルダの中に 3 個のファイルで構成されています。

  • VR_MANGR.BUP
  • VR_MANGR.IFO
  • VR_MOVIE.VRO
複数タイトルを DVD-RAM に書き出した場合でもこのファイル数は変わりません。書き出された各タイトルは、ひとつのファイルに纏められて VR_MOVIE.VRO に保存されています。また、このファイルのコーデックは mpeg2 なので、拡張子をmpgに書き換えれば動画ファイルとして再生することもできます。

各タイトルの情報はひとつに纏められて VR_MANGR.IFO に保存されています。 DVD-RAM の再生はこのファイルの情報を元に VR_MOVIE.VRO から読み出されます。


DVD-VRユーティリティ

このツールは VR_MANGR.IFO や VIDEO_TS.IFO からタイトルなどの情報を読み出します。そして IFO ファイルの情報を元にタイトルごとにファイルを分割します。動作環境は Linux と Mac OS X です。 Windows の場合はcygwin環境で実行可能です。また、実行ファイルは配布されておらずソースのみの公開のため、各自でビルドする必要があります。


cygwinでビルド

cygwin のインストール時にビルドに必要なライブラリを入れておきます。

  • libiconv
  • gcc-core: C compiler
  • make: The GNU version of the 'make' utirity

make install でビルドが完了すれば、実行時に cygwin 環境が無くてもOKです。その場合、実行に必要なファイルcygwin1.dllcygiconv-2.dllC:\cygwin\binから、dvd-vr.exeと同じフォルダにコピーしておく必要があります。


コマンドオプション

コマンド一覧は--helpで確認できます。

dvd-vr --help

>dvd-vr --help
Usage: dvd-vr [OPTION]... VR_MANGR.IFO [VR_MOVIE.VRO]
Print info about and optionally extract vob data from DVD-VR files.

If the VRO file is specified, the component programs are
extracted to the current directory or to stdout.

-p, --program=NUM  
Only process program NUM rather than all programs.

-n, --name=NAME    
Specify a basename to use for extracted vob files rather than 
using one based on the timestamp.
If you pass - the vob files will be written to stdout.
If you pass [label] the names will be based on a sanitized 
version of the title or label.

--help         Display this help and exit.
--version      Output version information and exit.

IFOファイルから情報を読み出す

コマンド引数に IFO ファイルを渡すと、ファイル内の各タイトル情報が表示されます。

dvd-vr VR_MANGR.IFO

>dvd-vr VR_MANGR.IFO
format: DVD-VR V1.1
Encryption: CPRM supported

tv_system   : NTSC
resolution  : 704x480
aspect_ratio: 4:3
video_format: MPEG2
audio_channs: 2
audio_coding: Dolby AC-3

Number of programs: 2

num  : 1
title: TEST1
date : 2014-06-16 08:15:00
size : 806522880

num  : 2
title: TEST2
date : 2014-06-16 13:00:00
size : 810696704

VROファイルを分割する

コマンド引数に IFO ファイルと VRO ファイルを渡すと、ファイル内の各タイトルを分割します。

dvd-vr VR_MANGR.IFO VR_MOVIE.VRO

>dvd-vr VR_MANGR.IFO VR_MOVIE.VRO
format: DVD-VR V1.1
Encryption: CPRM supported

tv_system   : NTSC
resolution  : 704x480
aspect_ratio: 4:3
video_format: MPEG2
audio_channs: 2
audio_coding: Dolby AC-3

Number of programs: 2

num  : 1
title: TEST1
date : 2014-06-16 08:15:00
size : 806522880
Warning: program is partially encrypted

num  : 2
title: TEST2
date : 2014-06-16 13:00:00
size : 810696704
Warning: program is partially encrypted

上の例では VR_MOVIE.VRO を分割したファイルが 2 つ出力されています。分割したファイル名はタイムスタンプを元に設定されます。

2014-06-16_08-15-00.vob
2014-06-16_13-00-00.vob

ベースネームを指定する

ベースネームを指定すると、出力ファイル名は連番になります。例えば、ベースネームにDVDを指定する場合--name=DVDと書きます。

dvd-vr --name=DVD VR_MANGR.IFO VR_MOVIE.VRO

>dvd-vr --name=DVD VR_MANGR.IFO VR_MOVIE.VRO


DVD#001.vob
DVD#002.vob

分割後のファイルをFFmpegで確認

元ファイルの情報

>ffmpeg -i VR_MOVIE.VRO
Input #0, mpeg, from 'VR_MOVIE.VRO':
Duration: 00:45:01.18, start: 0.225367, bitrate: 4789 kb/s
    
Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p, 704x480 
[SAR 10:11 DAR 4:3], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    
Stream #0:1[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 256 kb/s 
At least one output file must be specified

分割ファイル TEST1

>ffmpeg -i DVD#001.vob
Input #0, mpeg, from 'DVD#001.vob':
Duration: 00:45:01.18, start: 0.225367, bitrate: 2388 kb/s

Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p, 704x480 
[SAR 10:11 DAR 4:3], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc

Stream #0:1[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 256 kb/s 
At least one output file must be specified

分割ファイル TEST2

>ffmpeg -i DVD#002.vob
Input #0, mpeg, from 'DVD#002.vob':
Duration: 00:45:01.18, start: 0.225367, bitrate: 2401 kb/s

Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p, 704x480 
[SAR 10:11 DAR 4:3], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    
Stream #0:1[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 256 kb/s 
At least one output file must be specified

2014年7月26日土曜日

Firefox31.0 がリリースされました。

デスクトップ版Firefoxのダウンロード
http://www.mozilla.jp/firefox/download/
デスクトップ版Firefoxのリリースノート
http://www.mozilla.jp/firefox/31.0/releasenotes/

新機能では、新しいタブを開く画面に検索窓が追加や、ダウンロードファイルのマルウェアをブロックする機能などが追加されました。新機能の詳細はリリースノートをごらんください。



デスクトップ版Firefoxの、開発ツールの更新と追加された機能


コンソール

コンソールは console.errorconsole.exceptionconsole.assert のログに、スタックトレース全体を表示するようになりました。

コンソールのメッセージに%cディレクティブを使用して、スタイルを設定できるようになりました。



インスペクタ


インスペクタにスポイトツールが追加されました、webページ内の任意のピクセルの色を取得できます。

スポイトツールを有効にするには、オプション設定の「利用可能なツールボックスのボタン」で「ページから色を選択します」にチェックを入れます。

スポイトツールのカーソルを移動してクリックまたはEnterキーを押すと、その部分の色情報がクリップボードに取り込まれます。カーソルキーで移動する場合は1ピクセルずつ、Shift+カーソルキーで10ピクセルずつ移動できます。操作を途中でキャンセルする場合はESCキーを押します。

クリップボードの色情報はrgb(222, 0, 0)のようなテキスト情報として取り込まれてますので、インスペクタにそのままペーストできます。


ボックスモデルの編集

インスペクタのボックスモデルでmargin, border, paddingの値を編集できるようになりました。

編集するには、値の入力またはカーソル上下キーで増減できます。 また、カーソル上下キーでは1ステップ、Alt+上下キーでは0.1ステップ、Shift+上下キーで10ステップで選択中の値を増減します。


子孫ノードをすべて展開

インスペクタのHTMLペインでは、下向き三角印のAlt+clickで子孫ノードをすべて展開するようになりました。



ネットワークモニタ


cURLとしてコピー

ネットワークモニタのネットワーク要求のコンテキストメニューでcURLとしてコピーを選択すると。cURL コマンドとしてクリップボードにコピーされます。

コマンドプロンプトにペーストすると要求を実行できます。(要curlコマンド cURL


ログ出力を残す

ネットワークモニタのネットワーク要求のログを残せるようになりました。この機能を有効にするには、オプション設定の共通設定で「ログ出力を残す」にチェックを入れます。



開発ツールのソースエディタの新機能


複数選択、矩形選択、選択のUndo、redo

  • 複数選択: Ctrl/Cmdを押しながら選択すると、複数項目を選択できます。
  • 矩形選択: Altを押しながら選択すると、列に沿ったブロック選択ができます。
  • 選択のUndo: 直前の選択をCtrl-U/Cmd-UでUndo、
    Alt-U/Shift-Cmd-Uでredoできます。


キーバインディングにSublime Textが追加

ソースエディタのキーバインディングにSublime Textが追加されました。Sublime Text のキーバインディングを有効にするには、about:configを開き、devtools.editor.keymapの値にsublimeを設定します。

Sublime TextではCtrl + Dの複数選択が便利です。

他にはVim、 Emacs のキーバインディングも設定可能です。



アドオンデバッガ

アドオンデバッガを有効にするには

  1. オプション設定の「詳細な設定」項目の「ブラウザとアドオンのデバッガを有効」と「リモートデバッガを有効」にチェックを入れます。
  2. 次に、アドオンマネージャを開くと、アドオンの一覧の横に「デバッグ」ボタンが追加されています。デバッグしたいアドオンの「デバッグ」ボタンを押すと「リモートデバッグの受信」ダイアログが表示されます。
  3. リモートデバッグの接続を許可するために「OK」をクリックするとデバッガが別ウインドウで起動します。

今のところ「再起動不要タイプのアドオン」と「SDK ベースのアドオン」で利用可能のようです。



Canvas デバッガ

WebGLまたは 2D キャンバス コンテキストのデバッグが可能です。有効にするには、オプション設定の「標準のFirefox開発ツール」項目の「Canvas」にチェックを入れます。