2010年6月7日月曜日

携帯動画変換君でPSP向けに変換してみた(x264エンコードエラー回避ver)

FFmpegのverは23439です。
x264のエンコードエラーを回避してみました。PSPverは6.20です。
ちなみにneroAacenc使ってます。2pass .ffpreset作成付き(windowsです。) ※たぶん上級者向け。
[ItemXX]
Title=FFmpeg ver 23439
Command0=""<%AppPath%>\cores\ffmpeg2" -threads 2 -y -i "<%InputFile%>" -pass 1 -passlogfile "<%OutputFile%>" -vcodec libx264 -fpre <%AppPath%>\cores\ffpresets\libx264-psp+ver.ffpreset -s 720x480 -an "<%TemporaryFile%>_1.mp4""
Command1=""<%AppPath%>\cores\ffmpeg2" -threads 2 -y -i "<%InputFile%>" -ac 2 -ar 48000 -f wav "<%TemporaryFile%>.wav""
Command2=""<%AppPath%>\cores\Nero\neroAacEnc" -br 64000 -lc -if "<%TemporaryFile%>.wav" -of "<%TemporaryFile%>_2.aac""
Command3=""<%AppPath%>\cores\MP4Box" -add "<%TemporaryFile%>_1.mp4" -add "<%TemporaryFile%>_2.aac" -new "<%TemporaryFile%>2.mp4""
Command4=""<%AppPath%>\cores\ffmpeg2" -threads 2 -y -i "<%inputFile%>" -pass 2 -passlogfile "<%OutputFile%>" -vcodec libx264 -fpre <%AppPath%>\cores\ffpresets\libx264-psp+ver.ffpreset -s 720x480 -an "<%TemporaryFile%>_v.mp4""
Command5=""<%AppPath%>\cores\ffmpeg2" -threads 2 -y -i "<%InputFile%>" -ac 2 -ar 48000 -f wav "<%TemporaryFile%>.wav""
Command6=""<%AppPath%>\cores\Nero\neroAacEnc" -br 64000 -lc -if "<%TemporaryFile%>.wav" -of "<%TemporaryFile%>_a.aac""
Command7=""<%AppPath%>\cores\MP4Box" -add "<%TemporaryFile%>_v.mp4" -add "<%TemporaryFile%>_a.aac" -new "<%OutputFile%>.MP4""
Command8="rm "<%OutputFile%>-0.log""
Command9="rm "<%TemporaryFile%>_v.mp4""
Command10="rm "<%TemporaryFile%>_a.aac""
Command11="rm "<%TemporaryFile%>_2.aac""
Command12="rm "<%TemporaryFile%>_1.mp4""
Command13="rm "<%TemporaryFile%>2.mp4""
Command14="rm "<%TemporaryFile%>3.mp4""
Command15="rm "<%TemporaryFile%>.wav""
Command16="rm "<%TemporaryFile%>.MP4""

これをコピペして、テキストファイルに貼って、そのテキストファイルを.iniに変換します。別に今あるTranscodingに貼ってもOK。Itemの連番を忘れないように。
ここから新しいFFmpegをダウンロードしてください※FFmpeg rev.23439推奨。
ffmpegはffmpeg2とリネームしてください。(まぁ上の.iniをffmpegに書き直してもいいんだけどね。)
neroAacencをダウンロードしてフォルダにぶち込んでください。やり方はここに書いてあります。
リネームしたffmpegをcoresに入れてください。
それとcoresの中に、ffpresetsというフォルダを作ってください。
その中に

coder=1
b=700k
bt=700k
flags=+bitexact+alt+mv4+loop
partitions=+parti4x4+partp4x4+partp8x8+partb8x8
mbd=2
me_method=tesa
subq=9
me_range=64
keyint_min=1
b_strategy=2
qmin=20
qmax=51
qdiff=8
trellis=1
cmp=chroma
level=30
flags2=+mixed_refs+fastpskip

をコピペしてください。それをテキストファイルに貼って、.ffpresetというファイルに変換してください。※メモ帳で開けます。
名前は libx264-psp+ver としてください。
そしてffpresetsフォルダにぶち込んでください。
携帯動画変換君を起動したらFFmpeg ver 23439と書いてるやつがあると思います。それで変換してください。
そしたらたぶん変換が成功して、MP4動画が出来ると思います。※弄りたい方はどうぞお好きに弄ってください。

こんなのメンドクセと思う方もいると思うので簡単なほうをもうひとつ貼っときます。
FFmpeg verは20024です。
[ItemXX]
Title=FFmpeg ver 20024
Command0=""<%AppPath%>\cores\ffmpeg1" -threads 2 -y -i "<%InputFile%>" -pass 1 -passlogfile "<%OutputFile%>" -vcodec libx264 -coder 1 -level 30 -s 720x480 -b 700k -bt 700k -qmin 20 -qmax 51 -qdiff 8 -keyint_min 1 -me_method full -me_range 64 -subq 9 -cmp chroma -trellis 2 -flags bitexact+alt+mv4+loop -flags2 mixed_refs -partitions parti4x4+partp4x4+partp8x8 -an "<%TemporaryFile%>_1.mp4""
Command1=""<%AppPath%>\cores\ffmpeg1" -threads 2 -y -i "<%InputFile%>" -ac 2 -ar 48000 -f wav "<%TemporaryFile%>.wav""
Command2=""<%AppPath%>\cores\Nero\neroAacEnc" -br 64000 -lc -if "<%TemporaryFile%>.wav" -of "<%TemporaryFile%>_2.aac""
Command3=""<%AppPath%>\cores\MP4Box" -add "<%TemporaryFile%>_1.mp4" -add "<%TemporaryFile%>_2.aac" -new "<%TemporaryFile%>2.mp4""
Command4=""<%AppPath%>\cores\ffmpeg1" -threads 2 -y -i "<%inputFile%>" -pass 2 -passlogfile "<%OutputFile%>" -vcodec libx264 -coder 1 -level 30 -s 720x480 -b 700k -bt 700k -qmin 20 -qmax 51 -qdiff 8 -keyint_min 1 -me_method tesa -me_range 64 -subq 9 -cmp chroma -trellis 2 -flags bitexact+alt+mv4+loop -flags2 mixed_refs -partitions parti4x4+partp4x4+partp8x8 -an "<%TemporaryFile%>_v.mp4""
Command5=""<%AppPath%>\cores\ffmpeg1" -threads 2 -y -i "<%InputFile%>" -ac 2 -ar 48000 -f wav "<%TemporaryFile%>.wav""
Command6=""<%AppPath%>\cores\Nero\neroAacEnc" -br 64000 -lc -if "<%TemporaryFile%>.wav" -of "<%TemporaryFile%>_a.aac""
Command7=""<%AppPath%>\cores\MP4Box" -add "<%TemporaryFile%>_v.mp4" -add "<%TemporaryFile%>_a.aac" -new "<%OutputFile%>.MP4""
Command8="rm "<%OutputFile%>-0.log""
Command9="rm "<%TemporaryFile%>_v.mp4""
Command10="rm "<%TemporaryFile%>_a.aac""
Command11="rm "<%TemporaryFile%>_2.aac""
Command12="rm "<%TemporaryFile%>_1.mp4""
Command13="rm "<%TemporaryFile%>2.mp4""
Command14="rm "<%TemporaryFile%>3.mp4""
Command15="rm "<%TemporaryFile%>.wav""
Command16="rm "<%TemporaryFile%>.MP4""

Transcodingに貼ってOKです。※連番を忘れないように。
FFmpeg rev.20024 でググればzipファイルがダウンロード出来るサイトが出ると思うのでそこからzipを落として解凍してください。
この場合のFFmpegのリネームはffmpeg1です。Neroaacencを忘れないようにね。
携帯動画変換君を起動したらたぶんFFmpeg ver 20024と出ているので変換してください。
以上で説明は終わりです。ミスってたらコメントしてください。
ちなみにpartitions=などの後に+がきているのかとはいうと、+が無いと2passの時に何故かエラーが吐かれてしまいます。
それを防ぐためです。
このページで重くなったらゴメンネ。
ここここを参考にしました。
ありがとうございます。
6/8
ちょっと修正
bpyramidを付けるとPSPでは正常に再生されないかもしれない。
再生されたり再生されなかったり・・・
追記
もっと高画質という方はaviutlへ。

0 件のコメント: