久しぶりに更新。
・「非afs時もAviutlのキーフレーム設定検出をスキップ」をデフォルトに。
キーフレーム設定をする人はあんまり多くないんじゃないかと思うので。
キーフレーム設定をする人はチェックを外すのを忘れないようにしてください!・ログウィンドウのちらつきを改善。
・「音声のみ出力」時、「音声一時ファイルを別の場所」にすると戻ってこない問題を修正。
・音声エンコード時に「最小化」が効かないことがあるのを修正。
・x264からのメッセージ取出しで不要な処理を省略。
・その他ささいな変更。
ダウンロード>>
スポンサーサイト
このコメントは管理人のみ閲覧できます
いつもお世話になってます。
初歩的な質問で恐縮なのですが、"音声無し"にチェックを入れて出力した場合、
出来たmp4にtimecodeは埋め込まれているのでしょうか?
自動フィールドシフトを使用したときのtimecodeのことでしょうか。
でしたら、"音声無し"でもtc2mp4modによる埋め込みを行うようにしています。
(ログ出力をinfoにしていれば、)ログウィンドウに
tc2mp4Mod.exe でmuxを開始します...(以下略)
とか出ているかと思います。
更新お疲れさまです。
Windows7 64bitで新しくエンコ環境を作ってみたのですが、MUXでエラーとなってしまいます。いろいろと試した結果、MP4Boxのバージョンによって起きるようです。最新版だとエラーになるので、前使っていたバージョン(MP4Box-0.4.6-rev2698)に戻すと正常終了しました。
環境:
Windows7 64bit Home Premium、aviutl99i8ベース
x264.exe(
http://x264.nl/ 1924:64bit 8bit-depth)
MP4Box-0.4.6-rev2735、x264guiEx_0.29(0.30でも同じエラーです)
--------------------------------------------------------------------------------
[D:\movie\test.mp4] (1pass)
--------------------------------------------------------------------------------
encoded 14395 frames, 41.30 fps, 458.93 kb/s
drop 0 frames
auo [info]: x264エンコード時間 : 0時間 5分48.8秒
--------------------------------------------------------------------------------
[D:\movie\test.mp4] (2pass)
--------------------------------------------------------------------------------
encoded 14395 frames, 23.42 fps, 454.36 kb/s
drop 0 frames
auo [info]: x264エンコード時間 : 0時間10分17.2秒
auo [info]: 音声エンコーダ neroAacEnc.exe で音声をエンコードします。
auo [info]: MP4Box.exe でmuxを開始します。音声用コマンド:2, afs用タイムコード:0, 拡張コマンド:0
auo [error]: 正常にmuxできませんでした。muxコマンドラインは…
"C:\aviutl99i8\MP4Box-0.4.6-rev2735\MP4Box.exe" -add "D:\movie\test.mp4" -add "D:\movie\test.aac" -new "D:\movie\test.mp4.out"
ただし、このコマンドラインは一時ファイル出力場所の変更、ファイル名置き換え(「#」->「#」)などを反映したものです。
エラー発生後には一時ファイルは出力場所へ移動され、ファイル名置き換えも解除されています。
auo [info]: 総エンコード時間 : 0時間16分23.4秒
報告どうもです。
が、私はMP4Box-0.4.6-rev2735でもうまく進みます…
環境はほぼ同環境です。
確認ですが、MP4Box-0.4.6-rev2735.zipを解凍して
一緒に出てくるjs32.dllはMP4Box.exeと
同じフォルダにおいていますでしょうか?
MP4Box-0.4.6-rev2735.zipを解凍したフォルダごとaviutlフォルダに突っ込んでますので、js32.dllはMP4Box.exeと同じフォルダにあります。
古いバージョンとの違いはそのファイルなんですね。
何が原因か私にはさっぱりです。。。
64bit版は触り始めたばかりで、上手くいかないことが多いです。
>でしたら、"音声無し"でもtc2mp4modによる埋め込みを行うようにしています。
そうだったのですね。
ありがとうございました。
>js32.dllはMP4Box.exeと同じフォルダにあります。
失礼しました。
いろいろやってみましたが、
XPModeでmp4box-0.4.6-rev2735をコマンドプロンプトからたたくと
"MSVCR100.dllが見つからないため、このアプリケーションを開始できませんでした…"
つまりVC++2010のランタイムが要ると…
というわけで、こちらをインストールしてみてください。
Microsoft Visual C++ 2010 再頒布可能パッケージ (x86)
http://www.microsoft.com/downloads/details.aspx?FamilyID=a7b7a05e-6de6-4d3a-a423-37bf0912db84&displayLang=ja
※mp4box-0.4.6-rev2735が32bitアプリなのでx86版が必要
メインPCやサブPCにはすでに入っているので全く気づきませんでした。
これもすでにインストールされているなら…ほんとにお手上げかもです。
Microsoft Visual C++ 2010 再頒布可能パッケージ はx64版しか入れてなかったので、x86も入れて試してみました。
結果、、、正常にMUXできました!
またまたお騒がせして申し訳ありません。自分で問題切り分けできないとダメですね。。。ありがとうございました。
(どのバージョンから2010が必要になったのかchangelog等見ても分からず。。)
あと、MPEG2-PSからH.264へのエンコードをよく行うのですが、音ズレに悩まされています。もしよろしければみなさんの使用しているコーデックを教えて頂けると助かります。
自分はVista32bitではCCCPを使用していて、ffdshowのMPEG2のデコーダーをlibmpeg2にすると音ズレしなくなってますが、たまに音ズレ起きます。
Windows7 64bitでもCCCP+ProxyCodec64を使っていますが、こちらは音ズレが解消できていません。。いろいろなコーデックを試してみているんですが、音ズレしたり、最後のフレームが動画の最初にチラッと入り込んだりで、うまくいきません・・・
自分の使用してるコーデックは書きましたが、エンコの手順も一応説明しますと、
①PT2で録画
②TMPGEnc MPEG Editor3でCMカット、MPEG2-PSで出力
③aviutlでDirectShowで読み込み、x264guiExでH.264へ圧縮
が基本です。
AT-Xなどは、
①DGIndexで前後カット
②出力されるaac音声をWAVに変換
③aviutlでd2v、WAVを読み込み、x264guiExでH.264へ圧縮
です。こちらは音ズレすることは無いです。
手順が特殊なのか使用してるコーデックが違うのか、あまり音ズレで悩んでる方はいないようで、検索しても同じ症状が出てきません・・・
DirectShowで読み込んでるのが悪い・・・と言われそうな気もしますが、、、エンコードがかなり速いのでこちらを使いたい・・・
自己解決というか、まだ試行錯誤ですが、一応音ズレしなくなりましたので、ご報告。(検索で飛んできた人の参考にでもなれば・・・汗)
結局DirectShowを使わない方法に落ち着いたんですが、、、TME3でCMカット後の出力設定を
MPEG出力
・映像
VBRで映像品質を90→100にする
・音声
チャンネル・・・ステレオ(2ch)
ストリーム形式・・・LinearPCM(WAV)
量子化ビット数・・・16bit
ビットレートは変えたかったら適当に
出力は「ES(Video+Audio)」を選んで映像と音声を別々に出力します。
これでAT-Xのエンコと同じようにm2vとwavを読み込んでエンコするようにします。エンコ時間もDirectShowで読み込んだ場合とさほど変わりません<-これは画像サイズとかまだいろいろ試してないのですが、少し遅いかもくらい。
まだ回数こなしてないので完璧といえるか分かりませんが、ズレなくなるといいなぁ。
音ズレはわりとわかりにくいので難しいですね。
TME3でCMカット…のあたりで音ズレしかねない気が…
(やったことないのでただの憶測ですが…)
私はAviutlに読み込んでからCMカットしています。
再生時のスプリッターにHaali Media Splitterを使っていると
最近のx264だと-sar指定してもアスペクト比を反映してくれなくて
でも、MP4Boxからparを付ければ反映される状態なんで
今はエンコ後にその作業をしてるんですが
Exのmux中にMP4Boxのコマンドを入れる方法は何かあるでしょうか?
拡張の所かと思ったんですがチャプターはわかるんですが他のコマンドを使う方法がわからなくて
x264guiEx.iniのMux用コマンドのところに
たとえば、拡張オプションにするなら、
mp4_muxer_cmd_ex=" -par 1=4:3 "
チャプター追加もするなら、
mp4_muxer_cmd_ex=" -chap "%chf" -par 1=4:3 "
通常のコマンドに追加してしまうなら、
mp4_muxer_cmd=" -par 1=4:3 -add "%vid" %au %ex %tc %tmp -new "%out" "
といった感じです。
自動フィールドシフト時のtc2mp4modコマンドの場合は
tc2mp4_cmd=" -i "%vid" %au -o "%out" %ex %tc -O "-par 1=4:3 %tmp " "
のようにします。 -O の中でなければなりません。
ただ、Haali Media Splitterのかわりに
x264の--sarを反映してくれる
LAVFilter(
http://forum.doom9.org/showthread.php?t=156191)
を使うほうが無難な気もします…
ありがとうございます
1=4:3の1の意味がまだよくわかってない(動画名の置換なのかな?)ですが無事par反映できました
LAVFilterは0.19を試した時に字幕表示のさせ方がよくわからなくて
結局みっともなくHaaliに戻ったんです;
このコメントは管理人のみ閲覧できます
音声エンコードのビットレートは
x264guiEx.iniの編集のみで自由に変更できます。
x264guiEx.iniをメモ帳などで開き、
たとえば、144行目からの
preset_11=" AAC-LC 320kbps"
preset_11_prm="-lc -br 320000"
preset_11_2pass=1
とあるのを
preset_11=" AAC-LC 512kbps"
preset_11_prm="-lc -br 512000"
preset_11_2pass=1
などと書き換えてください。
このコメントは管理人のみ閲覧できます