最新ffmpeg用に変換君設定を書き換える(後編)

分割した前回の続き。
前回の記事はこちら…最新ffmpeg用に変換君設定を書き換える(前編)

-acodec aac -ac 2 -ar 48000 -ab 96 → -an
-acodec aac 指定のままだと現在ではffmpeg内蔵AACコーデックが指定されてしまう。
ffmpeg内蔵AACは音質があまり良くない。

これは、AAC指定のオプションが -acodec libaac に変わったり
結構前(たしか2009年5月頃)に、ライセンス絡みの問題で
faac コーデックを入れてffmpeg配布できなくなったり
aac変換出来なくなって、その後に新しくffmpeg内蔵aac(試験中なので音質はあまり良くない)が登場した為。

と言う事で高音質なAACに変換できる外部AACエンコーダを使う。
まずは NeroAACエンコーダーをダウンロード。→前に書いた記事を参照
ダウンロードしたら、解凍してWin32フォルダに入っている「neroAacEnc.exe」を
変換君の「coresフォルダ」に入れる。

次に、設定ファイルを書き換えて、NeroAACエンコーダを使って音声変換するように書き換える。
まずは、ffmpegの音声出力を無効化。
-acodec aac -ac 2 -ar 48000 -ab 96を全て消して -an に書き換え

Command1の行を削除し、以下を追加
Command1=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -vn -acodec pcm_s16le -ac 2 -ar 48000 -vol 256 -f wav "<%TemporaryFile%>.wav""
Command2=""<%AppPath%>\cores\neroAacEnc" -q 0.3 -lc -if "<%TemporaryFile%>.wav" -of "<%TemporaryFile%>.m4a""
Command3=""<%AppPath%>\cores\MP4Box" -add "<%TemporaryFile%>.mp4" -add "<%TemporaryFile%>.m4a" -new "<%OutputFile%>.mp4""

Command4=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -f image2 -ss 5 -vframes 1 -s 160x120 -an "<%OutputFile%>.jpg""
Command5="cmd /c "del "<%TemporaryFile%>*.*"""

Command1は、neroAacEnc.exe に読み込ませる為にwavファイルに変換
(neroAacEncは非圧縮のwavファイルしか受け付けない為)

Command2は、neroAacEnc.exe で先ほどのwavファイルを AAC-LC に変換。

Command3は、Command0で変換した動画(映像のみ)と
Command2で変換した AAC-LC を MP4Box.exe を使って変換。

Command4は、PSP用途のサムネイル出力(160×120のJPEGファイル)

Command5は、処理の過程で出た一時ファイルを削除。

その他必要に応じて書き換える部分

-maxrate
これは最大ビットレート値を指定するオプション。
私は、削除してしまっています。

長くなったけど、書き換えは以上。
最終的には、以下のような感じに。
[Item17]
Title=AVC 480x272/29.97fps/VBR QB25 ステレオ/192kbps
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -metadata creation_time="<%TimeStamp%>" -vcodec libx264 -coder 1 -bufsize 128k -g 300 -s 480x272 -r 30000/1001 -qmin 10 -qmax 51 -qdiff 6 -i_qfactor 1.40 -qcomp 0.7 -crf 25 -an -level 30 -f psp "<%OutputFile%>.MP4""
Command1=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -vn -acodec pcm_s16le -ac 2 -ar 48000 -vol 256 -f wav "<%TemporaryFile%>.wav""
Command2=""<%AppPath%>\cores\neroAacEnc" -q 0.3 -lc -if "<%TemporaryFile%>.wav" -of "<%TemporaryFile%>.m4a""
Command3=""<%AppPath%>\cores\MP4Box" -add "<%TemporaryFile%>.mp4" -add "<%TemporaryFile%>.m4a" -new "<%OutputFile%>.mp4""
Command4=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -f image2 -ss 5 -vframes 1 -s 160x120 -an "<%OutputFile%>.jpg""
Command5="cmd /c "del "<%TemporaryFile%>*.*"""


たしか、携帯動画変換君のffmpegは2005年12月のものだったはず。

今は、2012年3月…約6年ちょっと過ぎてるので
仕様が変わるのも仕方がないのかもしれないね。

その分、書き換えがすごく面倒なんだけど(笑)

手軽で簡単に動画変換したい人は
まずこんなffmpeg書き換えなんて面倒な事しないと思うし
別の動画変換ツールを使った方がいいと思う。 (HandBrake とか)

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中