Aviutl+x264guiExで二重音声(FAW)
わりと面倒な二重音声。
簡単にならないか実験したけど、結果は微妙…、という記事。
Aviutlで二重音声
そもそもAviutlの音声は基本的に1系統なので、2系統以上の音声を扱おうとすると、わりと困ってしまう。
まあ、やり方がないわけではなくて、エンコ前に副音声のほうはあらかじめ出力しておき、x264guiEx.iniを改造してmux時に組み込むとか、エンコ後バッチ処理で組み込むとか、そういう方法を使うことになる。
ただ、この「エンコ前に副音声のほうはあらかじめ出力しておく」というのもそれなりに大変。というのも分離した音声を用意すればいいというだけの話ではなく、Aviutl上で行ったカット編集をどう反映させるかとかいう問題。
具体的には、一回aup保存して、音声ファイル名をスイッチして音声のみ出力とか。
ほかには、Trim ExportしたtxtからTrim情報をaaceditでAACに反映させ、そのAACをさらにmuxするとか。しかし、この方法をエンコ前後バッチ処理で書こうとしたら、ファイル名どうしようとか考えてるうちに、だんだん頭が痛くなってきてやめてしまった。(おい
※わたしはバッチファイルを書くのは嫌いです。
で、これなんか違う方法でもう少し簡単にできないか、少し考えてみた&試してみた。
とにかく一度でやってしまいたいんです
分離した主音声と副音声のAACがあるとして、そこから主音声、副音声のFAW half size(8bit wav)をまず作る。
このままだと、どちらか片方しか読みこむことができない。これが問題なので、なんとか両方読み込み、一度にカット編集、出力するようにしたい。
そこで、2つのFAW half size(8bit wav)を交互に混ぜあわせて、16bit wav化してしまう。この16bit wavをAviutlに読み込ませ、カット編集を行い、出力時に分離してやれば、二重音声も同時にカット編集できるはず、というのが基本的な考え。
混ぜ合わせるってどういうことか
FAWのhalf sizeは8bitのwav形式なため、Aviutlに読み込まれるときには16bit wavに変換される。この変換は、
wav16bit_上位8bit = wav8bit - 128;
wav16bit_下位8bit = 0;
のように計算されるので、実は下位8bitは空いている、といっていい。そこで、この空いている下位8bitを利用することにして、
wav16bit_上位8bit = wav8bit(主音声) - 128;
wav16bit_下位8bit = wav8bit(副音声) - 128;
のように混ぜあわせていく。これは見た目は16bit wavファイルに偽装できているので、普通にAviutlに読み込ませたり、カット編集できたりする。
あとは、出力段階でこれを分離して、もとのhalf sizeっぽくしてやれば、普通のhalf size FAWと変わりなくfawclが解除してくれる。
手順 ~ faw_mixer と x264guiEx 1.71
1. 主音声、副音声のFAW half size(8bit wav)をまず作る。delayはここで修正される。
fawcl.exe -s2 <主音声aac> <主音声half size FAW>
fawcl.exe -s2 <副音声aac> <副音声half size FAW>
2. で、今回新しく作ったfaw_mixerを使って、2つのhalf size FAWを混ぜ合わせる。
faw_mixer.exe -i <主音声half size FAW> -i <副音声half size FAW> -o <FAW half size mix>
3. 出力した<FAW half size mix>をAviutlに映像データとともに読み込ませ、カット編集等を行う。
4. x264guiEx 1.71の音声エンコーダで、FAWのhalf size mixモードを指定するか、FAW Checkにチェックを入れる。(FAW Checkが自動的にモードを切り替える。)

5. このhalf size mixモードが動くと、自動的に主音声・副音声に分離、その後自動的に両音声をmuxする。
x264guiEx ダウンロード>>
※今回の拡張を使うにはx264guiEx.iniの更新が必要
faw mixer ダウンロード>>
x264guiExの導入>
結局どうなのよ
メリット
・faw mixという手順を踏んでおけば、あとは簡単に二重音声を扱うことができる。(x264guiEx 1.71以降が自動でmuxする)
・つまり、めんどくさいバッチ処理を書いたり、エンコ後に色々作業したりしなくていい。
デメリット
・FAW half size限定。
・前処理段階で一工程増える。
・aacfaw.aui, chapter.auf, fawpreviewなどのFAW関連ツールが対応していないため、この辺りは正常に使用できない。
実用的かといわれると、どうだろう…。自信ない。特にchapter.aufの無音検索が使えないのが痛い。
chapter.auf, fawpreviewあたりでも正常に扱えたらよかったのだけど、やはり無理だった。どうもhalf sizeの検出そのものに失敗しているのかな?
面白そうだなと思ったら使ってみてくれればと。
まあでも、やはり二重音声はいろいろ大変。なんかほかにいい方法ないものか…。全自動でできるいい方法ありましたら教えてください。
さて、あとは座談会を見て…。
http://live.nicovideo.jp/watch/lv126897261
簡単にならないか実験したけど、結果は微妙…、という記事。
Aviutlで二重音声
そもそもAviutlの音声は基本的に1系統なので、2系統以上の音声を扱おうとすると、わりと困ってしまう。
まあ、やり方がないわけではなくて、エンコ前に副音声のほうはあらかじめ出力しておき、x264guiEx.iniを改造してmux時に組み込むとか、エンコ後バッチ処理で組み込むとか、そういう方法を使うことになる。
ただ、この「エンコ前に副音声のほうはあらかじめ出力しておく」というのもそれなりに大変。というのも分離した音声を用意すればいいというだけの話ではなく、Aviutl上で行ったカット編集をどう反映させるかとかいう問題。
具体的には、一回aup保存して、音声ファイル名をスイッチして音声のみ出力とか。
ほかには、Trim ExportしたtxtからTrim情報をaaceditでAACに反映させ、そのAACをさらにmuxするとか。しかし、この方法をエンコ前後バッチ処理で書こうとしたら、ファイル名どうしようとか考えてるうちに、だんだん頭が痛くなってきてやめてしまった。(おい
※わたしはバッチファイルを書くのは嫌いです。
で、これなんか違う方法でもう少し簡単にできないか、少し考えてみた&試してみた。
とにかく一度でやってしまいたいんです
分離した主音声と副音声のAACがあるとして、そこから主音声、副音声のFAW half size(8bit wav)をまず作る。
このままだと、どちらか片方しか読みこむことができない。これが問題なので、なんとか両方読み込み、一度にカット編集、出力するようにしたい。
そこで、2つのFAW half size(8bit wav)を交互に混ぜあわせて、16bit wav化してしまう。この16bit wavをAviutlに読み込ませ、カット編集を行い、出力時に分離してやれば、二重音声も同時にカット編集できるはず、というのが基本的な考え。
混ぜ合わせるってどういうことか
FAWのhalf sizeは8bitのwav形式なため、Aviutlに読み込まれるときには16bit wavに変換される。この変換は、
wav16bit_上位8bit = wav8bit - 128;
wav16bit_下位8bit = 0;
のように計算されるので、実は下位8bitは空いている、といっていい。そこで、この空いている下位8bitを利用することにして、
wav16bit_上位8bit = wav8bit(主音声) - 128;
wav16bit_下位8bit = wav8bit(副音声) - 128;
のように混ぜあわせていく。これは見た目は16bit wavファイルに偽装できているので、普通にAviutlに読み込ませたり、カット編集できたりする。
あとは、出力段階でこれを分離して、もとのhalf sizeっぽくしてやれば、普通のhalf size FAWと変わりなくfawclが解除してくれる。
手順 ~ faw_mixer と x264guiEx 1.71
1. 主音声、副音声のFAW half size(8bit wav)をまず作る。delayはここで修正される。
fawcl.exe -s2 <主音声aac> <主音声half size FAW>
fawcl.exe -s2 <副音声aac> <副音声half size FAW>
2. で、今回新しく作ったfaw_mixerを使って、2つのhalf size FAWを混ぜ合わせる。
faw_mixer.exe -i <主音声half size FAW> -i <副音声half size FAW> -o <FAW half size mix>
3. 出力した<FAW half size mix>をAviutlに映像データとともに読み込ませ、カット編集等を行う。
4. x264guiEx 1.71の音声エンコーダで、FAWのhalf size mixモードを指定するか、FAW Checkにチェックを入れる。(FAW Checkが自動的にモードを切り替える。)

5. このhalf size mixモードが動くと、自動的に主音声・副音声に分離、その後自動的に両音声をmuxする。
x264guiEx ダウンロード>>
※今回の拡張を使うにはx264guiEx.iniの更新が必要
faw mixer ダウンロード>>
x264guiExの導入>
結局どうなのよ
メリット
・faw mixという手順を踏んでおけば、あとは簡単に二重音声を扱うことができる。(x264guiEx 1.71以降が自動でmuxする)
・つまり、めんどくさいバッチ処理を書いたり、エンコ後に色々作業したりしなくていい。
デメリット
・FAW half size限定。
・前処理段階で一工程増える。
・aacfaw.aui, chapter.auf, fawpreviewなどのFAW関連ツールが対応していないため、この辺りは正常に使用できない。
実用的かといわれると、どうだろう…。自信ない。特にchapter.aufの無音検索が使えないのが痛い。
chapter.auf, fawpreviewあたりでも正常に扱えたらよかったのだけど、やはり無理だった。どうもhalf sizeの検出そのものに失敗しているのかな?
面白そうだなと思ったら使ってみてくれればと。
まあでも、やはり二重音声はいろいろ大変。なんかほかにいい方法ないものか…。全自動でできるいい方法ありましたら教えてください。
さて、あとは座談会を見て…。
http://live.nicovideo.jp/watch/lv126897261
スポンサーサイト