人生エクソダス

なんてことのない日々のこもごもをつらつらと書き連ねたり連ねなかったりする。

オーディオで怒られてMKVの結合に失敗する時の直し方

2021-12-30 08:47:55 | TIPS

 具体的には、
 オーディオファイルのサンプリングレートが44100Hzのものと48000Hzのものを結合しようとすると黄「警告」ではなく赤「エラー」になって出力が失敗するとき
 の作業手順になる。

 そもそもなんでMKVtoolnixで結合をしようと思ったかと言うと、エンコードを一切せずmp4・MKVの動画の結合ができるからである。
 Aviutlでも複数ソースを追加読み込みして結合したものを動画エンコードは可能だ。しかし映像ビットレートの再エンコードもするのでソースと同じビットレートだと若干画像が劣化する。それを防ごうとしてビットレートを上げるとファイルサイズが大きくなってしまう。3つのmp4を足したものが150MBだとしたらエンコードした動画は450MBと3倍くらい大きくなってしまう。
 しかし実際それしか方法がないかというとそんなことはない。


①音声ファイルのサンプリングレートが違うmp4をMKVtoolnixで開く

②映像ソースのチェックを外しオーディオだけ出力する状態にして出力する拡張子を手打ちで.mkvから.aacなどソースの音声と同じ拡張子で打ち込む(以下音声ファイルをaacということにする)

aacをxrecodeやBatchEncoderなどwav以外の音声が編集できるエンコーダソフトで読み込む

④aacをwavに変換して出力する この時サンプリングレートを他に結合したい動画の音声と同じものにする

⑤wavで出力されたものを再度音声編集ソフトで読み込み、aacで変換して出力

MKVtoolnixで②で音声だけ抜き出したものに⑤のaacをドラッグ、「新しいソースファイルとして追加する」(一番上の項目)

保存先ファイルの拡張子を.mkvから.mp4に手打ちで修正して出力する
※MKVtoolnixは、映像がH264・音声がaac/mp3で統一されていたらmp4ということにして出力しても再生できてしまう。


 MKVtoolnixのおおざっぱにすごいところは、別にmkvを出力しなくてもいいということだ。
 しかし再生はできるもののサムネイルが作成されなくなってしまい、ビットレートや幅高さもエクスプローラで表示されたりされなかったり、mkvと同じ挙動のmp4になる。これをフォルダオプションの「登録された拡張子は表示しない」でチェックを外し、mp4→mkvに拡張子を打ち直すとサムネイルが表示されるようにはなる。つまり今言ったことは無意味である。

 映像ビットレートの手直しが必要ない結合の場合、こうして音声ファイルを抜き出し編集して入れ直すことで統一感を持たせることができる。