D-VHSからi-link経由でキャプチャしたものや、Friio, PT1等の機器の出力はMPEGのTS(Transport Stream)形式というものになっています。TSを素材にしてエンコすると、音ずれの問題に悩むことが多いようです。
TSから音声ストリームを抽出する方法は色々ありますが、一体どの方法だと音ずれが起きないのでしょう? 実験してみました。
...
実験対象
- TSDemux
入力のTSファイルと出力のprefixを指定すると、m2vと音声ストリームに分解して出力します。途中で音声形式が切り替わるような場合は、自動的に連番が振られます。
出力の音声ストリームのファイル名には「-100ms」のような「ずれ」の時間が記録されているので、今回の実験ではこの分をSoundEngineを使って手動でずらしました。
■ TSDemuxの処理フロー
- CapDVHS
入力のTSファイルと出力のPS(Program Stream)ファイル、抽出するPIDを指定すると、映像と音声だけのPSファイルを出力します。
PSファイルのままでは比較できないので、TMPEGEncのMPEGツールを使って分離しましました。
■ CapDVHSの処理フロー
- Media Player Classic
「ユーティリティ」メニューの「DSMコンバータ」に入力のTSファイルをドロップすると、ストリームのリストが表示されるので、音声 (Audio) を右クリックして「分離する」メニューを選択、出力先を指定すると音声ストリームだけを抽出できます。
■ MPCの処理フロー
- BonTSDemux
入力のTSファイルと音声出力ファイルを指定して、音声ストリームを抽出できます。AACはWAVに変換して出力可能。
「映像と音声の開始位置を同期させる」オプションがあるので、onとoffのどちらも試しました。
■ BonTSDemuxの処理フロー
音ずれしなかったのはTSDemuxとCapDVHS
今回調査した中では、TSDemuxを使った場合とCapDVHSを使った場合の2つのケースが映像とほぼ正確に同期していました(約30ms, 1フレーム分のずれはあったが、一般には知覚できない)。
■ 音声抽出の結果 (数値は秒)
上から順に、TSDemux, CapDVHS, MPC, BonTSDemux (同期off), BonTSDemux (同期on)
TSDemuxを基準として、CapDVHSは-30ms, MPCとBonTSDemux (同期off)は600ms, BonTSDemux (同期on)は400msのずれ。TSDemuxのずれ数値は-437ms。
BonTSDemuxは映像と同期をとるオプションを付けても、ずれが意識できないまでには解消されませんでした。
結論
CapDVHSは補正された出力が得られるのでTSDemuxを使うより楽ですが、稀に処理できないファイルがあるので、その場合はTSDemuxを使うとよいでしょう。
TSDemux自体は「ずれ」の時間をファイル名に書き出すだけで補正はしてくれないので、タイムライン編集をする前に、今回の実験のように音声編集ツールで補正する必要があります。