AVI形式のMPEG-4 AVC(H264+AAC)のボリュームを上げる方法は? | KNのブログ

KNのブログ

テニス、生活の知恵、B級グルメ、時事問題、精神世界、その他いろいろ書いています。
      ※使用PCは、ブログ開設時から 「Windows XP」 です。(マシンは2台目→3台目)

今回のターゲットは、AVI形式のMPEG-4 AVC(H264+AAC) という形式。
   ・映像は、 MPEG-4 AVC (=実質的にH.264と同じ)
   ・音声は、 AAC
AVIなんだけど、MovieOperator602 や VirtualDubMod では
そもそも読み込めなかったので、
   ・映像音声分離後に、音声のボリュームを上げて結合
   ・音声の入れ替え
が出来ず、別の方法を探していた。


最初は、avidemux2 でエンコードしながらボリュームを上げていたが、
やはり映像の画質が落ちるのがイマイチで、・・・それに変換に時間がかかる!
映像を無変換のままボリュームを上げる方法を探すことになった。


そのため、約1年前に経験した技術を読み返し、
MKV形式上でなら、実現できそうだと気がついた。
そこから描ける解決のストーリーはこうだ:
   ①まず、avidemux2 で(映像、音声)を(コピー、コピー)でMKV形式に
     無変換で書き出す
   ②そのMKV形式から、映像と音声を分離する
      ・分離には、MKVtoolnix + MKVExtractGUI-2 を使った。
   ③音声部分を(どこかから)抽出し、Pazera_Free_Audio_Extractor を使って
     ボリュームを上げる (念のため、128kbps→160kbpsにしておいた)
   ④映像と音声を、MKV形式に結合する
      ・結合には、MKVtoolnix を使った。
      ・①で音声が-33ms遅れて出来ていたので、映像が1コマ分欠落
       した?のかと思い、(←過去の経験から)結合時に-33ms遅らせた。
         ※この辺の正確な情報は持っていない。
      ・fpsを指定してやらないといけないことに注意。29.970=30000/1001
      ・参考: MKVExtractGUI の方で出来たタイムコードを指定したら、
        映像と音声がズレてしまった! ?? 故に、タイムコードは中止。


これらすべて、フリーソフトで出来るところがうれしいね!
特にエンコードはしていないので、作業時間もごくわずかだ。
念のため、出来上がりのコーデック等の情報と、会話部分等で音がずれて
いないかチェックし、問題無しを確認したら作業完了だ。



----
23:01 追加。
その後、映像と音声のズレをチェックしてみた。
  ・映像: どうも、コマのズレは無いみたいに見える
  ・音声: MKV形式から抽出したデータを使って上記設定で結合したものでは、
        オリジナルより22ミリ秒早いが、10ミリ秒のディレイが設定されている
        のでトータル12ミリ秒早いのかな? (=検証できていない)
        オリジナルから直接抽出したデータを使ってディレイ無しで結合した
        ものでは、今度は22ミリ秒遅くなった!
        気のせいかもしれんが、なんとなく前者(=上記①~④の処理結果)
        の方が、オリジナルの波形に近いような気がする。わずかだが。

        ここで、音声の位置のチェックは、すべてMP3形式に変換後に、
        Wave editor でチェックした。