英語教材自作:字幕付きyoutube動画をDVDに

一応記事の見出し通りの独立したネタだけど実際は「英語教材自作:字幕付きyoutube動画をDIGAに(不完全ネタ)」のそのまんま続きで、「俺的には不満足」続行中。

英語教材自作:字幕付きyoutube動画をDVDに

前置きとおさらい

英語教材自作:字幕付きyoutube動画をDIGAに(不完全ネタ)」のおさらい:

  • youtube 動画ダウンロードで字幕 (closed caption) を取得するには 4K Video Downloader などを使わないといけない。
  • Windows Media Player ではまともに字幕を扱えないので VLC media player などの代替品を使わなければならない。
  • 理想は ON/OFF 出来る英語字幕のついた動画として DIGA に取り込めること、俺的に。
  • 理想ではなくても「OFF 出来ない (hard-coded)」な MP4 動画に変換してしまえば。
  • ffmpeg でなおかつ Windows の場合は fonts.conf に注意。

ここまででも、「リスニング教材としてよりはリーディング教材」が欲しい今時点でのワタシの英語レベルでは、(満足、ではなくて)「我慢は出来る」。けれど「出来そうで出来ない」という悔しさもあるし、もう少し研究してみようかと。

今回の記事が完遂してもなお「俺的には不満足」の意味は二つ。一つ目はもちろん「なんでいちいち DVD に焼かねばならん」。まともにオーサリングして焼いちゃうともうチャプターマークを付け直したり出来ないし、など、使い勝手にさえ影響してしまうのもイヤだし。二つ目は「DVD」に注目。ワタシ、Blu-ray 言うてない。ワタシの PC では Blu-ray は扱えないてのもあるんだけど、どうもまだワタシがあてにしてる ffmpeg とかで Blu-ray 用字幕を扱うのは出来なそうなの。てわけでちょっと将来性もないネタだよな、てこと。

そうはいってももちろん「CC 付きの youtube 動画を ON/OFF 出来る字幕付きの DVD として焼きたい」という需要は、ワタシにもないではないし、(後述の通り無駄に迷走したけど)実現できたので、「苦労物語」とともにお披露目しときゃ、嬉しい人もおるはずだよな、と思って。それに「なんだかんだ煩雑な作業」なので、メモっとかないとワタシ自身が作業を再現出来ん。

まずは「dvdsub」というキーワードに引っかかってみた

そもそも「英語教材自作:字幕付きyoutube動画をDIGAに(不完全ネタ)」の時点でも、「DVD に焼いてしまうつもりなら理想に近いものは作れるんだろうな」と当然わかっていて、なので google さんへのお問い合わせをちょっと変えて DVD やら mpeg2 やらのキーワードを含めて検索してたら普通に「dvdsub」なるキーワードが引っかかってきた。

英語教材自作:字幕付きyoutube動画をDIGAに(不完全ネタ)」ではメジャーな字幕フォーマットは srt、ass だ、と書いちゃったけど、この二つはテキストベースの字幕ファイルで、dvdsub はこれとは別物らしい、と知る。そりゃそーか、DVD 規格の方が歴史古そうだよな。

Bitmap subtitle required!

おぼろげな google さん検索に基き:

MSYS bash のコマンドラインで、シェル変数 fb にファイル名のベース名をセットしてある。
1 me@host: Video$ ffmpeg -i "$fb".mp4 -i "$fb".srt -y -target ntsc-dvd -scodec dvdsub "$fb".mpg

そして果てる。「Bitmap subtitle required!」。ははぁん、dvdsub はビットマップ形式なのか。ならば srt を dvdsub に変換出来ればいいね。

と…数時間迷走。探しても探しても解が見つからない。

「ffmpeg で変換」させようとしているのはどうやら間違いか…。にしても腑に落ちぬぞ。srt から字幕を動画に hardcoded に出来るんなら、ほとんど共通の処理で作れそうじゃないか。そのうち出来るようになるかなぁ。

というわけで Subtitle Edit

「ffmpeg で」に拘り過ぎてて見つけてたのに当初無視してたのだ、Subtitle Edit。けれどもこれ、かなりいい。

英語教材自作:字幕付きyoutube動画をDIGAに(不完全ネタ)」レベルでの hardsub な動画にしか用事がなくても Subtitle Edit は持っておくといい。

というのも、扱えるフォーマットの多さもさることながら、編集ツールが気が利いてて、「Tools → Split long lines…」は正直いって不可欠。youtube に置かれている CC は結局製品品質とは言えないものばかりと思われ、ワタシがやってみた動画では長すぎて左右が普通に千切れちゃった。「bitmap 形式」ということは画像になっちゃうわけで、再生機器がよきに計らうことは出来ず、dvdsub を作るときにはちゃんと折り返し指示が入ってないといけない。(試してないけどおそらく「Tools → Fix common errors…」でこれも含めた色々直してくれるんだろう。)

取り込んだ srt を目的の dvdsub 用に変換するには「File → Export → Vobsub (sub/idx)…」。多分 vobsub と dvdsub は同じもの。というか察するに dvdsub はコーデックの名前、vobsub がフォーマットの名前、かな、多分そういうことだよね。

で、この際忘れずに「Video res」を正しい解像度にすること。間違えても「残念な字幕」になるだけだけど、残念っぷりは想像以上なので(つまり動画にくっつけたときにはみ出しちゃったりとか)。

フォントのデフォルトは Vandera の 25 で、「Tools → Split long lines…」さえちゃんとやってれば丁度いい塩梅だけれど、若干大きい気もしないでもないのでそこらへんはお好みで。

変換が終わると sub ファイルと idx ファイルの二つが出来上がる。

vobsub が手に入ったので改めて

簡単に出来たぜ、というわけにもいかなかったが失敗例をつらつら書き並べてもうっとうしいので一応「出来たぜ」:

出力ファイルは要するに MPEG2 を指示してるわけである。
1 me@host: Video$ ffmpeg -i "$fb".mp4 -i "$fb".sub -i "$fb".idx -y -target ntsc-dvd -s 1280x720 -scodec dvdsub "$fb".mpg

実際はここに至るまでかなり迷走した。ffmpeg の情報はとにかく調べにくい。(日本で PAL な DVD を作りたい人はまぁ皆無と思うがその場合は ntsc-dvd ではなくて。たぶん pal-dvd かな? 試そうともしてないからわからんけど。)

これで出来上がった MPEG2 は VLC media player で見て既に「目的のもの」。つまり「ON/OFF 出来る字幕」。

DVD に焼こうと思わないならば「英語教材自作:字幕付きyoutube動画をDIGAに(不完全ネタ)」を参考にどうぞ。PC で視聴するつもりならあえて DVD な MPEG2 にする意味はない。

DVD に焼かんで済まんかな、とトライだけはしてみた

つまり DIGA に USB メモリで転送をチャレンジしてみた。

まず上記ので作った 「.mpg」はもう拡張子が「.mp4」でない時点で拒絶されちゃうのね。動画として認識すらしてないみたい。てわけでアウト。

で考えたのは、「mp4 に dvdsub を埋め込めないものなんだろうか?」と。規格には無知なのでそもそもそんなことが出来ていいのかどうかは知らない。けど ffmpeg でそういう動画は作れた:

.mp4 → .mp4 なので出力ファイル名に注意。同名にしちゃうと当たり前だが失敗する。というか失敗した。
1 me@host: Video$ ffmpeg -i "$i".mp4 -i "$i".sub -i "$i".idx -y -target ntsc-dvd -s 1280x720 -scodec dvdsub "$i"_.mp4

けどこれは DIGA に「扱えない形式を含んでおり取り込めない」と文句を言われた。てわけでやっぱりダメ。結論は「出来ない」、なのかなぁ、やっぱし。うーん。

というわけで「DVD に焼く、なら出来るんでしょ」に話は戻る。

てわけで DVD オーサリング&バーニング

「オーサリング&バーニング」言うてることに注意。上で作った .mpg を「データDVDに放り込む」てことではなくて、DVDプレイヤーが再生できるちゃんとした DVD に仕立て上げる、てハナシ。

なんだけどさぁ、ここでも迷走したんだわ。

最初の失敗。最初は Windows 7 に標準添付されてる Windows DVD Maker でやってみたの。さんざん待たされた挙句に「失敗しました」言われ。そもそも原因をほとんどなんにも教えてくれないので、別のソフトでやるしかないか、と。ただ実際あとでわかったがこれはメディアの方がダメだったらしい。

次の、「本当はうまくいってたはずなのに」の失敗。DVD Flick を使ったのです。けどなぁこやつ、「Project Settings → Burning → Burn project to disc」にチェックを付けない状態で「Create DVD」すると、後から Burning だけ実行することが出来ないのね。なんつーバカな設計ぢゃ…。

でここで再実行さえしなけりゃ時間を無駄にせずに済んだんだけれど、さらにバカなんです、この子。「最初にぜーんぶ消しちゃう」んだわ。あのなー、3時間半かかったんだぞ、もう一回これやるわけ?

仕方ないのでいったん別のものを試そうかと思い WinX DVD Authour で。なんだかこれを一番お奨めだ言うてる人がおったので。そしてこの時点でようやっと「メディアが不正」であることが判明。ご想像通りやり始めてから 10時間以上経過しとります。ただこの子は「少しは」良い子で、「バーニングだけ」と言うことが出来るので、メディアを変えて改めて。

実はプログレスを観察してる時点でイヤな予感はしてたんだけど、WinX DVD Authour は結論としてはダメ。字幕の存在を完全になかったことにしやがった。ご想像通り、よね、もう13時間超えてる。いつ終わるんだ。

この時点でとりあえず「バーニングだけ」は欲しいよな、と思った。明らかにプログレスを観察してて subtitiles な処理に言及していた DVD Flick をもう一度トライすればきっとうまくいくと想像出来たが、また「バーニングだけ失敗」を繰り返したくない。ので、一応 ImgBurn をインストールしておいた。あとでわかったが DVD Flick はバーニングに ImgBurn を呼び出すらしい。あーますますバカだ。だったら単体起動出来るでしょーに。

というわけで DVD Flick を今度は忘れずに「Project Settings → Burning → Burn project to disc」にチェックして改めて。

3時間半後。というか就寝をはさんだので「起床して」。良かった…、出来てた、(一応)理想のものが。ただし DVD Flick は終了時に「auto eject に失敗したぜ、やーい」と不平を述べたがった。いや、ちゃんと eject 出来てますやん、と、無視。別に再生に問題はなかった。

DVD 画質なので、ってこともあるんだろうけれど、ちょっと字幕が美しくはないね。けど ON/OFF 出来るし、あと字幕の位置も再生機器で調整出来る。うん、まぁまぁだね。

最後に(今回も)重大な注意事項

英語教材自作:字幕付きyoutube動画をDIGAに(不完全ネタ)」でのそれよりもさらに輪をかけて「時間と手間がかかる、考えようによっては「ひたすらに、ただひたすらに不毛」」、なことは、今回ワタシがそうだったような「迷走」がないとしてもかなりのものだということはわかるでしょう。

ダウンロードしてきて字幕を加工してdvdsubなMPEG2にして作ったMPEG2をオーサリング&バーニング、と一言で言えばそれだけだけど、「字幕を加工」以外のどの作業ステップも普通に1時間以上はかかる。のでやっぱりちゃんと動機付けしましょうね。