11月 09

boot.png
 
■mp4変換フロントエンドMediaCoder (要別途Firefoxインストール)
http://mediacoder.sourceforge.net/download.htm
mp4エンコードだけでなく映像や音だけのdemux(分離抽出)やmux(多重化)も可能。ただ使うにはFirefoxを別途インストールしないといけない。アプリの設定画面で利用している模様。こっから先はコマンドライン処理等入るので中級者以上向きです。またWindows環境向けの話です。

 
MediaCoderよりHandBrakeを強くオススメします。
ここで触れていることがすべて手軽にGUIで実現可能です。DVD-ISOからmp4まで圧倒的に簡単に変換できます。主・副多重音声もチャプターもそのままmp4適用されます(チャプター”名”は無理だけど自分で編集可能)。MediaCoderみたいな音ズレも起きづらい。

 
番外:HandBrakeのエンコードオプションのカスタマイズ
HandBrakeのデフォルト状態ではMediaCoderと比べて絵が汚いので
iPhone/iPod touch向けとしてうちで使ってるもの置いておきます。
といってもMediaCoderで使ってるオプションそのまま持ってきただけだけど。
詳細設定タブの下部テキストエリアにコピペすればおk。
※ref=8はアニメ向けなので実写ならref=3~5くらいで

profile=baseline:level=30:bframes=0:keyint=250:min-keyint=25:me=umh:merange=24:subq=6:ref=8:mixed-refs=1:qcomp=0.6:analyse=all:threads=0:no-fast-pskip=1:no-dct-decimate=1:non-deterministic=1:cabac=0:weightb=0:8x8dct=0

 
HandBrakeの惜しい点はライセンスの関係から
音声にNeroAACが使えないところくらい。(HandBrakeはFAAC)
iPhone/touch向けの動画と割り切って使うなら問題なしです。

どうしてもNeroAACを使いたい場合は、MediaCoderで本編音声だけ
Neroエンコードして(本編部分だけのVOB連結ファイル作ってMediaCoderで変換など)
mp4boxでHandBrakeで作ったmp4から映像とチャプター(Mpeg4-TimedText)
トラックを持ってきて結合するなどで対応することも可能。だけどかなりの手間。
また下手したら結合時にTimedTextトラックのTimeScaleが狂います。
発生する諸処の問題に対処できる人だけやりましょう。

 
なお、以降に記述してある内容は主にMediaCoderと
それに付随する情報ですが間違いを含んでいます。(mp4で多重音声できないなど)
でも有用な情報もあることはあるのでメモとして残しておきます。
HandBrake使うなら読む必要なし。まるで関係ないメモです。

 
 
—————————————————————————————————-
 
■MediaCoder変換設定

  • タスクモード
    taskmode1に設定
  • ビデオタブ
    <左側>H.264/Two-Pass/312kbps(適宜調整)
    <右側>プロファイル=Baseline 3.0/他そのまま
  • オーディオタブ
    <左側>FAAC
    <右側>平均ビットレート/48kbps(TV品質/他用途の場合適宜調整) /Mpeg4/AAC
  • 画像タブ
    <4:3動画> 432×320 (8の整数倍) / 29.97[30000/1001](TV/DVD)
    <16:9動画> 480×272 (8の整数倍) / 29.97[30000/1001](TV/DVD)

 
■オーディオコメンタリー等を含めた主・副多重音声のmp4/mov作成手順

#2009.09.05追記
最新バージョンであるMediaCoder0.7.1build4988では[オーディオ]タブでdual_audio選べばここで触れている3.の工程までやってくれるようになっていた。簡単に主副音声付き動画にエンコード可能。ただ、映画のような2時間の長尺になると盛大に音ズレしていく。時間が進むごとにズレが大きくなる。その修正方法をこのページの最下部にまとめてます。詳しくはそちらへ。

  1. まず映像(mp4)と主音声(m4a)と副音声(m4a)でそれぞれ分離エンコードされたファイルを作る必要がある。MediaCoderで音声だけエンコードするには、ビデオタブのビデオを有効にするのチェックを外して変換をすればOK。もしソース動画ファイルの音声が元々多重化されていたら、オーディオタブ->オーディオIDを0/1切り替えてそれぞれ書き出せば、主・副のm4aが作れる。映像だけエンコードするには、オーディオタブのオーディオを有効にするのチェックを外せば映像のみのmp4が作れる。
     
  2. 映像/主音声/副音声が用意できたらこれらをMux(多重化)する。MediaCoderのtoolsディレクトリ内にmp4box.exeというファイルがあるので、それをエンコードし書き出したファイルのある作業フォルダへコピー。windowsのスタート->ファイル名を指定して実行でcmdと打ち、コマンドプロンプトを立ち上げて同様の書き出しファイルがある作業フォルダまでcdで移動。
     
  3. コマンドプロンプトに次のコマンドを入力。
    各ファイル名は作業しやすいように任意でリネームしておく。

     
    mp4box -fps 29.970030(または23.976025) -add 映像.mp4#video:lang=jpn -add 主音声.m4a#audio:lang=en -add 副音声.m4a#audio:lang=jpn -new 動画.mp4

    頭のfps指定は元映像ファイルに合うようにどちらかを。これで言語から英語を選ぶと主音声に、日本語を選ぶと副音声になる。ただしパソコン上の諸々の動画プレイヤ(WMP等)では次の対処をしていないと主・副同時に再生されてしまう。

  4. Morgan Multimedia Stream Switcher
    http://www.morgan-multimedia.com/mmswitch/
    これをインストールすることでWindows Media Playerなどで言語から音声切り替えができる。
     
  5. QuickTime(確認バージョンv7.5.5)では、3.の処理段階のmp4ファイルでは主/副の切り替えができず両方同時に流れてしまう。しかし、QuickTime Proを購入していれば次の処理をしてmovとして保存しなおせば切り替え可能になる。
     
    ウインドウ->ムービーのプロパティを表示->サウンドトラック1を選択
    ->下タブのその他設定->代替でサウンドトラック2を選択
    ->プロパティ画面を閉じてファイルからmovとして新規保存
     
    これで言語から音声切り替え可能なmovファイルが作成できる。iTunes上でもこのmovは音声切り替えが可能。ただし、3.の段階のmp4ファイルもこのmovファイルも、まだ実際のiPod touchでテストしてないのでうまくいくかは分からない。iTunes/QuickTimeの状況から5.の処置したmovファイルじゃないとtouch上でも切り替え不可能かもしれない。
     
    追記:5.の処理しないとiPod touchじゃ音声切り替えできなかった。3.では2つ目の音声トラックが無視されていた。つまりmp4ではiPod touchでは主副音声の選択再生は無理。QuickTimeProにて5.の作業をして書き出されたmovでしか無理。HandBrakeなら手軽にmp4で多重音声いけます。
コメンタリー付きmovを再生。コントロールに吹き出しアイコンがつく。

コメンタリー付き多重音声movを再生。コントロールに吹き出しアイコンが追加される。

言語から音声変更できます

言語選択で音声変更できます

 
■上記で出来上がったファイルの映像と音のズレ補正について
ナウシカDVDを参考に書きます。まず映像尺が音尺よりだいたい大きくなるのでその差を算出。mp4box -info foo.mp4 でmp4ファイル情報を表示すると、映像尺1:57:03.149/音尺1:57:01.930でおよそ映像のほうが全尺で1.219sec長い。これを秒当たりのズレに直してfps補正に利用する。
 
まず、ズレ尺を短い方の全尺(つまり音尺)で割ると1.219sec/7022sec=0.0001735sec=0.1735msとなり1秒あたりこれだけズレてることがわかる。これをfpsに直し3.の工程のfps指定で+補正してやればいい。
このズレms尺をfpsに直すには、1fps当たり1000ms(1秒)/29.97fps=33.3667msなので0.1735ms/33.3667ms=0.00519979501fpsとなり、29.970000+0.005199=29.975199fpsとなる。mp4boxのmuxでは小数点第3位までしか解釈しないので、29.975fpsとする。これを3.の工程のfpsに指定してやるだけ。
 
これで大分マシになるけど後半部にまだ体感的にズレが見てとれる。
数値的に完全に映像尺と音尺を一致させるのは不可能みたいだししょうがないな。

# 追記
計算より-0.001fpsして29.974fpsとしたほうが、若干前半部30分くらいで音が先走る感じだけど許容できる範囲で、後半はうまいこときっちりあってくる。この場合mp4box -infoで見ると映像が1:57:02.219、音が1:57:01.930となり映像のほうが若干長いけど通してみると一番合っていた。長い映像は、映像尺が音尺よりコンマ秒長くなる最初の近似のfpsを取るとベストっぽい。

 
■movにチャプターファイルを結合する
下記参考にナウシカでチャプター作成。別途QuicktimeProが必要。
http://www.forest.impress.co.jp/article/2002/09/12/quicktime6pro2.html
http://docs.info.apple.com/article.html?path=QuickTime%20Player/7.0/jp/c3qt14.html

いちおう参考にナウシカのチャプターテキスト貼っときます。1行目(自動折り返ししてるので3行目の{textEncoding:0})までは変える必要なし。DVDからチャプターテキスト作る場合は、DVD-DecrypterでOgg形式のチャプターファイル出力するとQTと同じミリセコンド表記のタイムコードになるので便利。そっからテキスト置換などで下のQT形式に整形する。

{QTtext}{font:Geneva}{plain}{size:12}{textColor: 65535, 65535, 65535}{backColor: 0, 0, 0}{justify:center}{timeScale:1000}{width:160}{height:48}{timeStamps:absolute}{language:11}{textEncoding:0}
[00:00:00.000]
{textBox: 0, 0, 50, 160}Chapter 1
[00:01:59.667]
{textBox: 0, 0, 50, 160}Chapter 2
[00:07:42.167]
{textBox: 0, 0, 50, 160}Chapter 3
[00:12:09.033]
{textBox: 0, 0, 50, 160}Chapter 4
[00:18:38.000]
{textBox: 0, 0, 50, 160}Chapter 5
[00:23:33.000]
{textBox: 0, 0, 50, 160}Chapter 6
[00:28:36.667]
{textBox: 0, 0, 50, 160}Chapter 7
[00:33:27.833]
{textBox: 0, 0, 50, 160}Chapter 8
[00:38:12.633]
{textBox: 0, 0, 50, 160}Chapter 9
[00:44:54.000]
{textBox: 0, 0, 50, 160}Chapter 10
[00:49:49.700]
{textBox: 0, 0, 50, 160}Chapter 11
[00:54:37.000]
{textBox: 0, 0, 50, 160}Chapter 12
[00:58:23.600]
{textBox: 0, 0, 50, 160}Chapter 13
[01:01:15.500]
{textBox: 0, 0, 50, 160}Chapter 14
[01:07:49.167]
{textBox: 0, 0, 50, 160}Chapter 15
[01:13:46.433]
{textBox: 0, 0, 50, 160}Chapter 16
[01:18:34.100]
{textBox: 0, 0, 50, 160}Chapter 17
[01:24:22.500]
{textBox: 0, 0, 50, 160}Chapter 18
[01:30:44.100]
{textBox: 0, 0, 50, 160}Chapter 19
[01:34:33.333]
{textBox: 0, 0, 50, 160}Chapter 20
[01:40:03.800]
{textBox: 0, 0, 50, 160}Chapter 21
[01:46:00.067]
{textBox: 0, 0, 50, 160}Chapter 22
[01:49:37.133]
{textBox: 0, 0, 50, 160}Chapter 23
[01:52:01.867]
{textBox: 0, 0, 50, 160}Chapter 24
[01:54:56.833]
{textBox: 0, 0, 50, 160}Chapter 25
[01:56:44.867]
{textBox: 0, 0, 50, 160}Chapter 26
[01:57:01.930]

コントロール右端にチャプターアイコンがつく

コントロール右端にチャプターアイコンがつく

 
 
以上、おしまい。

Comments are closed.