2014.11.17:リンク切れの修正

FakeAacWav(FAW.exe)というツールを利用して、aac音声を無劣化で編集する方法の紹介です。これを利用すれば、地デジTSファイルのaac音声を無劣化で編集する事が可能。エラーが出て変換・再生できない箇所を除外することも可能です。

FAW.exe
▲FAW.exeで擬似wavファイルを出力している所の画像

ツール自体の使い方は非常に簡単で、
aac → 擬似wav / 擬似wav → aac どちらの変換も
  (1) ドラッグ&ドロップでファイル登録
  (2) 変換ボタンをクリック
の2つの手順を行うだけでOKです。

編集も含めた手順を簡潔にまとめると、
  1. 地デジTSファイルのaac音声をFAWで「擬似的なwav」ファイルに変換する
  2. 動画と音声(擬似wav)を動画編集ツールで同時にカット編集
   (変換時にエラーの出る箇所などをカットする)
  3. 音声部分を無変換・wav形式で別出力 → FAWで再びaac音声に戻す
  4. 映像を好きな形式に変換した後、MUXツールで編集後のaac音声をMUX
以上のような手順。

DGIndexBonTsDemuxなどでテレビ録画TSファイルからaac音声を抽出できて、AviSynthVirtualDubAviUtl等で動画編集できる人向けの情報。

最初に注意
  • 擬似wavのまま再生するとノイズの塊なので注意する事。
  • 音声ファイルは編集後に無変換で出力出来るツールでのみ利用できる。
  • 音声部分にエラーが含まれていたり、音声チャンネルの切り替え部分が存在すると(擬似wavにした時点でそこをカット編集しないと、無劣化でaacに出力し直しても)シーク操作などで大きな音ズレが発生する。(通常再生なら大丈夫な場合が多い)
  • エラーや音声チャンネルの切替がなければ「FakeAacWavを利用してカット編集したaacファイル」をMUXした動画の再生・シークで、音ズレや再生異常の心配はない。(厳密に言うと±10ms以下の音ズレはある)

ダウンロード

 Friio関係ファイル置き場 ≫ FakeAacWav Ver0.xxなモノをダウンロード
最新版をダウンロードする。

インストール

インストール不要。ダウンロードファイルを解凍して任意のフォルダに設置後、FAW.exeをダブルクリックすればFakeAacWavは起動する。

使い方1:大まかな流れ

地デジを録画したTSファイルを例にとって解説。

  1. (DGIndex| BonTsDemuz)などでaac音声を抜き出し
  2. aacファイルをFAW.exeで擬似wav化する(このページ下段に画像入り解説アリ)
  3. AviUtlVirtualDubなどを利用して「1.」で作成した動画(d2v | m2v)ファイルを読み込みする。(AviUtlは 直接読み込み可能なプラグインあり。VirtualDubはAviSynth経由)
  4. 動画を読み込んだ後、擬似wavファイルも読み込み、そのままカット編集を行う。
  5. カット編集後の擬似wavファイルを無変換出力する。
  6. カット編集後→無変換出力した擬似wavファイルを、再びFAW.exeにドラッグ&ドロップすると、カット編集後のaacファイルが無劣化で出力される
  7. 「4.」でカット編集した動画部分は、音声を含めずに好きな形式でエンコードし保存する。
  8. Yamb(MP4BOX)mkvtoolnixVirtualDub等、動画と音声をMUXできるツールで変換後の動画と編集後のaac音声を結合させる → 終了。

FAW.exe自体の使い方は非常に簡単だけど、DGIndex、AviSynth、VirtualDub、AviUtlなどを使いこなせていなければ、全ての手順をサクっと行うのは難しいかも。

 

以下手順の詳細

詳細手順: faw.exeで擬似wav化 

FAW.exe
「入力」欄にaacファイルをドラッグ&ドロップし、「変換ボタン」をクリックする。
音声のディレイはこの擬似wavを作成する時点で修正され、[0ms]となる。
ちなみに「FAWサイズ」を調整すれば、ファイルサイズの1/2に縮小する事も可能。
FAW.exeでaacを擬似wav化
▲正常に擬似wavファイルが出来上がった所。
上記の様に5.1ch音声素材でも正常に出力できる。

音声に異常がある場合
FAW.exeの警告
▲最近のバージョンはこんな感じでエラーが出る(wavファイルは出力される)
本編とCMの間で音声ファイルの仕様が異なる場合や、途中で音声にドロップが発生しているファイルの場合は、上記の様なメッセージが出ます。
  1. 編集後もエラー部分が含まれていたり、音声の切替部分を含んでいると
   最終的に作成した動画で大きな音ズレやシーク出来ないなどの問題が発生する。
  2. エラー箇所や音声が異なる部分を全てカットすれば特に問題は発生しない

エラーが出ても、カット編集で取り除けば何とかなる事が多いのでそのまま次へ

詳細手順2:AviSynthでd2vファイルの読み込み。

LoadPlugin("E:\xxxx\xxxx\DGDecode.dll")
MPEG2Source("G:\sample.d2v")
return last
 ▲DGIndexで作成したd2vファイルを利用して動画編集する場合の、必要最低限なAviSynthスクリプトファイル。
この時点で
LoadPlugin("E:\xxxx\xxxx\DGDecode.dll")
v = MPEG2Source("G:\sample.d2v") 
a = WavSource("G:\sample.wav") 
AudioDub(v, a) 
return last
 ▲上記の様に擬似wavファイルをAviSynthに読み込んでも大丈夫。
 AviSynthのWavSourceは無劣化・無変換でwavファイルを出力する。

このテキストを「拡張子.avs」で保存し、VirtualDubやAviUtlで開く。

詳細手順3: 動画と音声のカット編集→wav出力 →aac形式に戻す

以下、VirtualDubModを利用した説明画面

動画編集ツールで動画と擬似wavを読み込んだら、普通に動画のカット編集する。
編集後、音声は別個(無変換の)wavファイルとして保存する。
VirtualDubの場合は、「ストームリスト」の「WAVE保存」を選択する。
faw.exeで擬似wavファイル出力、編集
▲クリックで拡大
無変換でwav出力できる動画編集ツールなら、何を利用しても大丈夫っぽい。

擬似wavファイルをaacに戻す
擬似wavをaacに戻す
▲出力した擬似wavは、再びFAW.exeにドラッグ&ドロップして「変換」ボタンを押せばaacファイルとして出力される。

あとは作成した動画と音声を、好きな結合ツールでMUXすれば完成。
動画と音声をmux
▲クリックで拡大: mkvtoolnixでMUXしている図。

AviUtlの場合

最近使っていないので良くわかりません(^_^;
DTV関係ファイル置き場には「aviutl FAWぷれびゅ~プラグイン」と言うものがあり、擬似wavファイルでも無音部分の検出や自動チャプター機能が使えます。
ReadMeを読むと「チャプターとしての使用は想定しておらず、専らCMカット編集向けです。」との事です。

FAW.exeの音ズレについて1

添付のReadmeファイルにFAW.exeを使った場合に発生する音ズレに関する詳しい解説が書いてあります。

少なくとも放送波なTSファイルに入っているAACファイルのサンプルの単位は1024(すべてかな?)のようです。
具体例:delayが-379msで、サンプリング周波数が48000Hzの場合

・・・・(中略)・・・・

その編集箇所で最大で約±10.67msのズレが発生するのみです。ただし、AACファイルが異常であった場合には、エラーの程度に応じて、それ以上の誤差が生じる可能性は高くなります。

と言う事で、編集箇所によっては最大で約±10.67msのズレが発生する可能性があると言う事のようです(人間の耳で感知できるレベルじゃないので問題ない)

FAW.exeの音ズレについて2

  • 通常のステレオ放送や一部の二ヶ国語放送などは、カット編集しても通常再生・シーク時、共に音ズレは発生しませんでした。
  • CM時の音声切替 / aacファイルに異常があった場合に発生するエラー などで、大きく音ズレする事があります。
  • CM時の音声切替(モノラル/ステレオ/5.1ch/2ヶ国語)などを含んだファイルは、大抵のプレーヤーで通常再生可能ですが、シーク操作や途中からの再生を行うと正しく再生できなくなります。
  • 音声切替やエラーが発生している箇所は、編集の際になるべく全部削除してしまいましょう。

あとがき

信じられないくらい便利で簡単だった。今まで何やってたんだ俺。。。

faw.exeはBonTSDemuxより先(2008年10~11月頃)に試していたんだけど、当時はカット編集後に「音声チャンネル切り替え部分」や「音声エラー部分」を含めようとして挫折していた(^_^;

「地デジ.ts→AVI形式へのエンコードをごく簡単に」さんの3種の音ズレ

同様に「CM3+本編3+CM4」でdemux→FakeAacWav→03.d2vと03.wav。

avisynthで

video1 = mpeg2source("01.d2v")
audio1 = wavSource("01.wav")
video2 = mpeg2source("02.d2v")
audio2 = wavSource("02.wav")
video3 = mpeg2source("03.d2v")
audio3 = wavSource("03.wav")

AudioDub(video1, audio1)++AudioDub(video2, audio2)++AudioDub(video3, audio3)

これが[本編5.1ch音声]と[CMステレオ音声]みたいなパターンで本編とCM両方を含んだ場合の解決方法だと勘違いしてた(^_^;

MUX後の動画ファイルが音ズレしまくって諦めて、5.1ch音声音声を諦めてBonTsDemuxのみ利用する事にして今日まで録画ファイル撮り貯めてた・・・・

そうか、あの時CM部分を全部諦める or 別保存していれば良かったんや。。。