2007年9月30日日曜日

MP4(MPEG4-AVC/H.264)を作成する


昨日あんなことを考えたわけだけど、実際WindowsでMP4なんてどうやって作るかって話です。

1.携帯動画変換君をダウンロード
作者様のサイトからダウンロード。

2.携帯動画変換君で使われているffmpegを更新
私が今まで作成した動画の中にはOn2 VP6でエンコードしたflvがあるんですが、
携帯動画変換君で使われているffmpegはOn2 VP6には対応してないようなので更新します。
Unofficial FFmpeg Win32 Buildsからffmpeg-r9017-win32.tar.bz2をダウンロード。
展開して出てきたファイルを全て携帯動画変換君の[ cores ]フォルダに上書きコピー。
(Revision 9017を選んだ理由は一応あります。新しすぎるのはH.264エンコードが出来なかったりするようだからです)

3.エンコード設定ファイルを編集
携帯動画変換君の[default_setting\Transcoding_PC_H264.ini]に以下を追加する
[Item4]
Title=2pass Enc
TitleE=2pass Enc
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -timestamp "<%TimeStamp%>" -flags bitexact -vcodec h264 -s 横幅x縦幅 -r 29.97 -b 画像ビットレートk -passlogfile "<%OutputFile%>" -pass 1 -acodec aac -ac 2 -ar 48000 -ab 音声ビットレートk -f psp -vlevel 30 "<%OutputFile%>.MP4""
Command1=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -timestamp "<%TimeStamp%>" -flags bitexact -vcodec h264 -s 横幅x縦幅 -r 29.97 -b 画像ビットレートk -passlogfile "<%OutputFile%>" -pass 2 -acodec aac -ac 2 -ar 48000 -ab 音声ビットレートk -f psp -vlevel 30 "<%OutputFile%>.MP4""
Command2="rm "<%OutputFile%>-0.log""
(青文字の部分はエンコードする動画に合わせて変更してください。例えば次のような感じです)
[Item4]
Title=2pass Enc
TitleE=2pass Enc
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -timestamp "<%TimeStamp%>" -flags bitexact -vcodec h264 -s 640x480 -r 29.97 -b 1500k -passlogfile "<%OutputFile%>" -pass 1 -acodec aac -ac 2 -ar 48000 -ab 192k -f psp -vlevel 30 "<%OutputFile%>.MP4""
Command1=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -timestamp "<%TimeStamp%>" -flags bitexact -vcodec h264 -s 640x480 -r 29.97 -b 1500k -passlogfile "<%OutputFile%>" -pass 2 -acodec aac -ac 2 -ar 48000 -ab 192k -f psp -vlevel 30 "<%OutputFile%>.MP4""
Command2="rm "<%OutputFile%>-0.log""


4.設定の適用
Setup.exeを起動→「MP4ファイル H.264(省略)PC向け一般設定」を選択。
プルダウンメニューから先ほど追加した設定タイトルを選択。

5.エンコード
エンコードしたい動画をドラッグアンドドロップ。
私の場合2passエンコードなのでエンコード時間が結構かかります。

参考:ニコニコ動画を変換するさいのffmpeg設定例(Thirのはてな日記)