読者です 読者をやめる 読者になる 読者になる

Carpe Diem

備忘録。https://github.com/jun06t

mkv→mp4のコンテナ変換での音ずれ対策

以前の記事でmkv→mp4の変換がありましたが、今回はそこで音ずれが発生した場合の対策。 基本的にはソース記事のまんまですが、その中でいくらか気をつけることを述べていきます。 ◆準備 まずは必要なソフトをそろえるところから。 前のMKVExtractGUIはv2.2.2.5でしたが、それでは音ずれ修正に必要なTimeCodeを作ってくれないので少し古いv1.6.4.1/1.2バージョンを使います。 ダウンロード ダウンロードしたら前と同じように「MKVtoolnix」のフォルダに入れます。 あと必要なのは「tc2mp4」こちらもこのサイトからダウンロード。 こちらは「MP4Box」へのパスが通っていないといけません。パスって何?って人は解凍したtc2mp4フォルダに「MP4Box」を直接ぶち込んでおけばOKです。「MP4Box」自体は先ほどのサイトにもありますし、前回の作業をこなした人なら「Yamb」フォルダに入っているはずです。 ◆実行 さて準備ができたので実行。 まずはv1.6.4.1のMKVExtractGUIで、Option→Tabsで「TimeCode」にチェックを入れておきます。これで展開時にTimeCodeを吐き出してくれます。 ではいつものようにmkvファイルをD&Dして、必要なファイルを選択して(動画と音声)展開。 このとき動画用と音声用の2つのTimeCodeが吐き出されると思います。修正するのは動画の方なので、動画とTimeCodeのTrackが同じものを使用します。普通はTimeCode_Track1.txtかな。 次にYAMB立ち上げて、Creation→create an MP4 fileを押し、分離された***.h264ファイルだけ追加します。で、Propertiesを押して、Brand Nameを「ISO AVC」にして生成する(tc2mp4が扱える形式にするため。でもコレはやらなくても大丈夫かも)。もしこのときフレームレートが設定されて無くて変換できそうにない場合は、適当に25とか入力して変換してください。どうせTimeCodeで修正されるので。 さて、音声のない&修正前mp4ができたので、ここでようやく修正します。このmp4ファイルと、先ほどのTimeCodeを「tc2mp4」フォルダに入れます。今現在「tc2mp4」フォルダには ・tc2mp4 ・tc2mp4.pl ・MP4Box ・mp4ファイル ・TimeCode があるはずです。さてここで一つポイントなのがmp4ファイルの名前。すぎたり、日本語が入ったりしてるとtc2mp4が動きません。なのでここは「in.mp4」くらいにしておくのが無難です。 で、ここでコマンドラインでこのフォルダに移った状態で tc2mp4 -i mp4ファイル -t TimeCodeファイル -o 出力ファイル名 と入力します。例としては tc2mp4 -i in.mp4 -t TimeCode_Track1.txt -o out.mp4 ですね。これで修正されたout.mp4ファイルができあがります。毎回コマンドラインでやるのが面倒な場合は、上のコマンドをバッチファイルで使用すればいつでもダブルクリックで実行できます。 あとは前回と同じように「out.mp4」と音楽ファイルを使ってYambでくっつければOKです。 ◆追記 2013/03/17 2013年の私の環境ではTimeCodeが適切に抽出されなくなりました。 原因はTrackIDの指定が狂っているためで、MKVExtractGUIでチェックを入れても1つずれて抽出されます。 (映像はTrackID:0、音声はTrackID:1で、MKVExtractGUIチェックを入れても生成されるのはID:1、ID:2のIDのずれたTimeCode) GUIの方からは対処のしようがないので私の同じ状況の方はコマンドラインで指定するといいです。 以下にバッチファイルの例を載せておきます。TrackIDは0から数えて指定してください。
@echo off
set /p SRC="ソースファイル(.mkv)を入力してください >"
set /p TID="TrackIDを入力してください >"
@echo on
"C:\Program Files (x86)\MKVToolNix\mkvextract.exe" timecodes_v2 %SRC% %TID%:track.txt
ソース: mkvからmp4へコンテナ変換する