SSブログ

音がずれてゆくmp4 (3) 映像だけにタイムコードを適用 [手記さまざま3]

DtsEditで元動画から取り出したタイムコードを、再エンコード動画に適用してみた。結果は、音ずれの度合いが変わらなかった。つまり失敗した。ここで思い出されるのが、ネット検索した時の奇妙な解説だった。その解説では、まず音声なしのmp4をAviUtlで作成し、それにDtsEditで元動画のタイムコードを適用し、それからmp4boxで音声をくっつけた。私は思った。なぜ音声を別にしておくのだろう。その必要があるのだろうかと。今、元動画のタイムコードを適用しても再エンコード動画の音ずれが変わらなかった。適用中の長い時間、コマンドプロンプト画面に経過が表示されていったから、DtsEditは正常に動作してタイムコードは適用されたと信じよう。すると、音ずれが変わらなかったことの理由は何か。映像と一緒に音声にもそのタイムコードが適用されてしまった結果、音ずれは音ずれのままとなった可能性がある。もしそうならば、音声を取り外しておいて映像だけにタイムコードを適用し、それから音声をくっっけ直すと音ずれが合うかもしれない。
私のパソコンにmp4boxがインストールされていなかった。mp4muxerという似たソフトがあったので、それを使ってみた。(もっとも、後で調べてみたらmp4boxのほうはdemuxができないみたいだ。)
mp4muxerで.mp4から.h264と.aacを作った。.h264が映像のはずだから、それにDtsEditで元動画のタイムコードを適用しようとした。次のエラーが出た:

未対応のビデオ形式です。
対応するFOURCC:avc1, mp4v, xvid

ウィキペディアによると、FourCC (フォーシーシー) とは、データフォーマットを一意に識別するための4バイトの並びである。つまり実行可能ファイルがMZで始まるのと同じようなものか。今度は真空波動研で.h264を見てみた:

[00 00 00 01 67 64 00 20 AC D9 40 50 05 BB 01 10] : gd @P
[未対応形式]

事情は知らないが、こりゃ駄目だ。方法を変えよう。先に再エンコード動画から.aacを取り出しておく。再エンコード動画にタイムコードを適用する。再エンコード動画から.h264を取り出す。.h264と先の.aacをmuxする。これなら、demuxとmuxに同じmp4muxerを使うから、まともなmp4が出来上がってくれる気がした。
試してみると、muxの最後で処理が止まり、しばらく待っても変化がなかった。mp4muxerはdemuxやDelete Trackの機能は使えたが、muxが使えない。
muxにはmp4boxを使ってみようか・・・。
もうとっくに寝る時間だったが、ちょっと無理をしてmp4boxを使ってみた。muxはうまく行った。音ずれは、今までに比べてかなり軽度になった。でも動画冒頭で音が合い、動画末尾で音声のほうがわずかに早い。タイムコードを適用しても完全には合わなかった。なんでだ。
再エンコード動画の音声を使うのでなく、元動画の音声を使うべきだったか。mp4muxerで元動画の音声を抽出、これを、タイムコードを適用した再エンコード動画(mp4muxerで音声をDelete Trackしておく)にmp4boxでmuxする。
パソコンの前に座りすぎて腰痛に影響しはじめた。処理はパソコンに任せて寝ることにする。続きは後日。


コメント(0)