Develop and Download Open Source Software

OpenSource Downloads

7-Zip  (3,583)  
CrystalDiskInfo  (1,811)  
Tera Term  (1,787)  
HandBrake Japanese Language Version  (1,743)  
CrystalDiskMark  (980)  
FFFTP  (765)  
ffdshow  (719)  
mixfont-mplus-ipa  (615)  
MergeDoc  (571)  
10  TortoiseSVN  (555)  
11  Amateras  (437)  
12  BathyScaphe  (396)  
13  FreeMind  (372)  
14  Cabos  (327)  
15  ギコナビ  (316)  
More >>

Linuxツール群で行うオリジナルDVDでの字幕作成

2008年07月03日 11:01 David-Pendell(2008年6月27日(金)) 1 2 3
 私の母は耳が悪く、人工内耳のサポートでようやく音を聞き取れる程度であるため、自宅ではクローズドキャプションやDVDの字幕機能を使うのがごく当たり前になっている。ところが手元の機材で撮影するホームビデオの場合は、母のために字幕を付けたくても、そうした作業が常に可能とは限らなかった。また仮にキャプション付きでビデオ撮影することはできたとしても、通常この種の字幕を非表示化する機能は用意されていない。ところが今回、SRTファイルを介してDVDに字幕を追加するためのオープンソース系ツールの組み合わせを特定できたことで、そうした不満もようやく解消できるようになったのだ。

  SubRip プロジェクトからは、市販のDVD中にキャプションや字幕として収録された情報を固有のフォーマットでテキストファイル化するツールが提供されているが、こうして作成されるSRTファイルと同じ形式のデータに各種のツールを組み合わせることで、通常のプレーヤで操作可能なキャプションを有すDVDを自主作成できるのである。

 そうした作業を行うプロセス全体は非常にシンプルである。まず事前に行っておくべき準備作業は、リソース要件の高い処理となるオーディオ/ビデオ系のデータ加工に備えて、高速なCPUと多量のメモリおよび大容量のハードディスクを搭載した作業用コンピュータを用意し、そこに信頼できるDVD焼き込みソフトをインストールしておくことだ。次に具体的な作業として、ミリ秒単位でのタイムフレーム表示に対応した Cinelerra などのビデオエディタを使ってビデオファイルを読み込み、字幕化する部分のタイムインデックスをすべて確認しておく。こうして確認したタイムインデックスについては、会話中の台詞などと共に手作業にてSRTファイルに入力することになるが、最終的にこのファイルはDVD用フォーマットに統合してディスク上に焼き込むことになる。

 今回サンプル用プロジェクトとして使ったのは、リンカーン大統領のゲティスバーグ演説の一部を読み上げる父の様子を収めた8秒間のビデオである。まずは、おおざっぱな値でいいから、SRTファイル中にすべてのタイムインデックスを書き出しておく。下記に掲載したのは、その後で実際にビデオを再生しつつ修正を施した結果のSRTファイルである。残りの作業としては、 FFmpeg spumux dvdauthor growisofs などのコマンドライン系ユーティリティを用いた各種の処理を、段階的に実行していくことになる。

 SRTファイルの記述フォーマットは極めて単純である。まず各エントリの1行目には、エントリ識別用のシーケンシャル番号を記入しておく。2行目はHH:MM:SS,milliseconds形式(時:分:秒,ミリ秒)のタイムインデックスである。このうち最初のインデックスは字幕テキストの表示を開始する時刻で、その次は表示を終了させる時刻を指定している。最後にくるのは字幕テキストの行だが、画面上には最大2行までしか表示させられない。

1
00:00:00,190 --&gt 00:00:01,800
Four score and seven years ago

2
00:00:01,820 --&gt 00:00:05,280
our fathers brought forth on this
continent a new nation, conceived

3
00:00:05,300 --&gt 00:00:07,580
in liberty and dedicated to the
proposition that all men are

4
00:00:07,600 --&gt 00:00:08,280
created equal.

 この作成例にてSRTファイルと組み合わせるビデオは、デジタルカメラで撮影したデータをLinuxに転送したAVIファイルである。私が編集作業に使用していたのはUbuntu環境であったため、ファイルの転送をするための実質的な作業は、USBケーブルを介してカメラとコンピュータを接続することだけであった。これによりGthumbがポップアップし、データをインポートするかの確認画面が表示されるので、後は該当するファイルを選択して、インポート用のボタンをクリックするだけで済んでしまった。当然ながらこうした作業は、使用するディストリビューションやカメラごとに変わってくる性質のものである。

 SRTファイルのタイムスタンプ指定については、VLCやMPlayerなどのビデオプレーヤ上で実際に試してみないと精密に一致させることは難しいだろう。VLCでこうした作業を行う場合は、Fileメニューの“Use a subtitles file”にて字幕ファイルの使用オプションを有効化し、対象となるファイルのパスと名前を指定する。MPlayerの場合は、コマンドラインから-subオプションを用いて字幕ファイルを指定する方が簡単である。

 VLCにせよMPlayerにせよ、SRTファイルの表示には若干の遅延が生じてしまう。私がこれらのプログラムをコマンドラインから実行させたところ、字幕の表示までに数秒待たなくてはならなかった。もっとも表示開始後のタイミングに対するテンポのズレなどは生じなかったが、このままでは数秒分の字幕は表示されないままとなってしまう。その対策であるが、MPlayerの場合は-subdelayオプションにて、字幕の表示タイミングに意図的なディレイを入れることができる。VLCの場合も、字幕ファイル指定時の上級者用設定としてディレイ調整ができるようになっている。こうしたディレイ調整オプションは字幕の表示をどれだけ遅らせるかの指定であり、私の場合は-1という指定で先の問題に対処できたが、これも個々の作業環境で変わってくる性質の設定なので、適切な値については各自が実地に試して見つけて頂きたい。

最終更新:2008年09月02日 17:07
SourceForge.JP is a Japanese version of SourceForge.net. For developments that are not related to Japan, we recommend you to use SourceForge.net.