動画ファイルの オーディオストリームの補正方法


2013 Sep. 初回アップ

内容
動画ファイル、とりわけ H.264のコンテナなどで採用されている TSフォーマットのファイルは、規格が複雑で解釈が難しいらしく、扱う機器やアプリによって様々な形式のファイルが生成される。こうしたファイルは PCの動画再生アプリで再生すると問題なく再生できる場合でも、BDムービー化して Blue-Ray ディスクに書き出した場合は BDプレーヤーでは再生できなかったり、音声などが正常に再生出来ない可能性が高い。例えば デジタル放送を録画した番組を BDにダビングして取り出し、それをリッピングしてPCの HDDに保存した *.m2tsファイルなどは、放送波を録画する際とダビングする際、リッピングする際の各段階でデータが変換されるためこうしたことが発生しやすい
ここでは音声に問題がある場合の対処方法の一例について記す。(動画そのものの再生に問題のある場合はこちら)
ただし下記の説明は単に私のPC環境でトライアンドエラーで実験確認した結果に基づくものであって、結果を保証するものではありません。また万が一説明に間違いがある場合なども含め、如何なる損害に関しても一切の責任は負いません。情報を利用する場合はコンテンツの著作権の扱いに留意しすべて自己責任と適切な判断に基づき行なってください。

1.音声再生に問題がある
2.現象
3.音声再生に問題がある場合の対処方法
3.音声再生に問題がある場合の対処方法: 追記

4.動画再生のその他の問題対処法
 補正後の動画ファイルによる BDムービーディスク作成方法
 複数枚の DVDをまとめて 1枚のBDムービーにする


  1. BD/DVDムービー化すると音声に問題がある場合
  2. 放送波を録画して BDなどにダビングしたディスクをリッピングしたファイルなどは、特に 2か国語放送・副音声などのストリームが含まれている場合もあるし、民放番組の録画ファイルは CM音声が間に挟まれるためトラックの切替部分などもあって、音声トラックが再生されなかったり音ズレが発生しやすい、という問題にぶつかる事が多いようだ。
    リッピングしたままのファイルを VLCプレーヤなどの再生アプリで再生しても問題ないのに、CM部分を H264TS_Cutterなどで無劣化編集して multiAVCHDなどのオーサリングツールで BD/DVDに焼いたら音が出ないというケースも有る。
    私が実際に遭遇したケースとして、リッピング後のファイルをそのまま BDに焼いた場合は問題なく、間の CM部分だけをカットすると残した途中の本編部分に 1秒近い音ズレが発生し、CM部分だけをカットして残した本編を個別のファイルとして multiAVCHDに食わせると今度はその中のいくつかの本編では音が出ない、という現象が発生した。


  3. 現象
  4. 音声の再生されない CMカットしたファイルでは、一繋がりのファイルの 2番め以降の途中の本編チャプターで音ズレが発生するので(下図 ①)、チャプター単独の音ズレの補正は諦めて、単独のチャプター毎に前後をトリミングして取り出した個別ファイルを使って対策することにした(下図 ②)。そのままだと音が出ないのでこのファイルだけを処理することにした。

    この「本編 2」のファイルは、そのまま multiAVCHDに読み込ませてオーサリングすると以下のように、ログに「Audio conversion failed!」エラーが表示されて、その場合焼いたBDムービーの該当部分からは音声が再生されない。

    前述のように、全編ファイルを使用したり本編1・2をつないでから multiAVCHDに食わせると(音ズレはするものの)音声は再生されるので、問題は基本的な音声トラックの問題ではなく、multiAVCHDの音声トラックの認識の仕方に問題がありそうだ。そこで実験としてシツコク カットするCMとの境部分を前後に少しずつずらせて確認した所、カットする場所によって音声が再生できたり出来なかったりすることがわかった。i-Frame/p-Frameの違いかと思ったがそうでもなさそう(H264TS_Cutter の設定では 「i-Frameでカット」に設定してあるし)。但し今回境界部分をカットする時点でその音声再生に問題のない位置を特定することは出来ず、しかも見つけた問題のない位置は数秒も本編に食い込んだところでカットしないとならなかったため、シーンの接続が不自然で音声再生に問題を生じないカットの境界を見極めるのは諦めた。

    2015/02/17 追記: その後、PT-3というキャプチャーボードを導入したが、このボードは放送波をそのまま出力する機能しかなくスクランブル解除や復号化などのアプリは自前で Webから探してインストールする必要がある。また、ボード内に圧縮率の高い H.264への変換H/Wは搭載されておらず、記録されるファイルはファイルサイズの大きな MPEG-2形式の TSファイルでそのまま BDムービー化も不可能ではないが、BD 1枚に2時間番組 2本の記録がやっとという具合。この TSファイルは例えば NHKの地デジだとニュース番組とドラマ番組では異なった音声トラックに記録されるので、記録マージンでニュースの終わりが録画されたままのファイルはそのまま MultiAVHCDで変換した場合、ドラマ本篇の音声は無音となってしまう。こうした場合は tsDemuxerRで本篇に食い込んだ部分までカットしてから MultiAVCHD に読み込ませると本篇の音声は問題ないようだ。


  5. 対処方法
  6. 次に、問題ある「本編2」ファイルから音声トラックだけを取り出して変換し、それを multiAVCHDのオーサリングでコンパイルしてみることにした。
    具体的手順は以下の通り。(音声トラックを抽出する方法は、方法1か方法2のどちらか一方を選ぶ)
    ①方法1:
    Mediacoderで、この「本編 2」のファイルを読み込み、Audioタブで Formatを 「AC3」に設定し、

    Videoタブで「Enabled」のチェックを外す。

    こうすることで、音声トラックだけの「*.AC3」という AC3フォーマットに変換された音声ファイルが出来る。このファイルが音声再生に問題ないか、VLCプレーヤなどの再生アプリで確認したら、これを以下の要領で multiAVCHDに読み込ませる。
    ②方法2:
    VLC Player の「メディア」>「ストリーム...」で「メディアを開く」ウインドウを表示させ、「ファイル」タブで問題の *.tsファイルを選択して右下の「ストリーム再生」の横の▼ボタンを押して、「変換」を選ぶ。「変換」ウインドウが開いたら出力ファイル名を指定して「プロファイル」欄で「Audio - MP3」等を選択して「開始」ボタンを押す。
    上記 ①か ②の方法で抽出した音声ファイルを使って以下の手順で オーサリングする。
    ムービーファイルを BDムービー化する通常通りの方法で、ムービーファイルを multiAVCHDに D&Dしてから、 Propatiesウインドウを開いて一番下の「Compilation」欄で「本編 2」に対応するファイルを選択し青く反転した状態で、その上の「Audio」タブで初期状態で表示される音声トラックを選択した状態で「remove」ボタンで削除してから、次に「add」ボタンを押して上記手順で作成された *.AC3ファイルを指定して読み込ませる。外部ファイルが読み込まれると音声トラック情報の頭に(EXT)という文字が表示される。こうすることで「本編 2」ファイル中のビデオトラックだけが使用され、音声トラックは 新規に作成した音声ファイルが使用出来る。

    上記手順で確認した所、音ズレも音声再生も問題ない BDムービーが作成できた。
    なお、ファイルごとの音ズレの補正は 「Delay」の数値を変更することで可能になる。


    2015/02/07 追記:
    その後 キャプチャ―用にPT-3 カードを導入したが、今回も TV録画ファイルの BD化で上記以外にも音声トラックが再生されない問題にぶつかった。それらのファイルは大体 TsMuxerRで処理しようとD&Dで動画ファイルを読み込ませようとしても TsMuxerRが右図のような訳のわからないエラーを吐いてクラッシュしたり、ファイル内のビデオ/音声トラックを認識しなかったりする。(ある意味、ほぼ数秒で結果が分かるので不正ファイルのチェックに使える)

    右図のような警告が表示されても一番下のように、必要な動画トラックと音声トラックが認識されれば、multiAVCHDでも無事音声が再生できる BDディスクが出来あがるようだ。
    もし仮に TsMuxerRで音声トラックが認識されない場合、それらの録画ファイルも、上記 <3.対処方法>の通り、まず Media Corderで音声トラックだけを AC-3に変換(ビデオトラックは無変換で残す:Videoタブの「Enabled」のチェックは外さない)したファイルを multi-AVCHDでオーサリングすれば問題ないようだ。


Access Counter:  総アクセス数