携帯動画変換君でOn2VP6を扱う方法

暇なときにググっていた所、遂に発見

Forbidden - ちみちみこんなとこ開いちゃダメだよ! -

以下抜粋

# 3GP_Converter AVS-Mode skelton
DirectShowSource("<%InputFile%>")
ConvertToYV12()
LanczosResize(480,272)
return last

http://sanomoto.sakura.ne.jp/log/200704.html#08
  • 「3GP_Converter.ini」を開いて「Ext3=AVI:\cores\AVS_Skelton.avs」と「Ext4=MPG:\cores\AVS_Skelton.avs」の2行追加。

[Avisynth]
Ext0=WMV:\cores\AVS_Skelton.avs
Ext1=WMA:\cores\AVS_Skelton.avs
Ext2=ASF:\cores\AVS_Skelton.avs
Ext3=AVI:\cores\AVS_Skelton.avs
Ext4=MPG:\cores\AVS_Skelton.avs

http://sanomoto.sakura.ne.jp/log/200704.html#08
  • Transcoding.iniの内容を以下の内容に全て上書き

[Info]
Title=機種別設定:PSP 3.30用/ffmpeg差し替え(x264組み込み)
Description=PSP用、動作保証なし。

[Item0]
Title=AVC 480x270/23.98fps/512+128kbps/2pass
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -title "Movie" -timestamp "<%TimeStamp%>" -s 480x270 -r 24000/1001 -b 512k -passlogfile "2pass-log" -pass 1 -vcodec h264 -coder 1 -profile 51 -level 30 -bufsize 128kb -g 300 -bf 3 -mbd 2 -cmp 2 -subcmp 2 -trellis 3 -partitions parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 -aspect 16:9 -an "<%OutputFile%>.MP4""
Command1=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -title "Movie" -timestamp "<%TimeStamp%>" -s 480x270 -r 24000/1001 -b 512k -passlogfile "2pass-log" -pass 2 -vcodec h264 -coder 1 -profile 51 -level 30 -bufsize 128kb -g 300 -bf 3 -mbd 2 -cmp 2 -subcmp 2 -trellis 3 -partitions parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 -aspect 16:9 -acodec aac -ac 2 -ar 48000 -ab 128k -f psp "<%OutputFile%>.MP4""
Command2="rm "2pass-log-0.log""
Command3=""<%AppPath%>\cores\old\ffmpeg" -y -i "<%InputFile%>" -f image2 -ss 5 -vframes 1 -fixaspect -s 160x120 -an "<%OutputFile%>.jpg""

[Item1]
Title=AVC 480x270/29.97fps/512+128kbps/2pass
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -title "Movie" -timestamp "<%TimeStamp%>" -s 480x270 -r 30000/1001 -b 512k -passlogfile "2pass-log" -pass 1 -vcodec h264 -coder 1 -profile 51 -level 30 -bufsize 128kb -g 300 -bf 3 -mbd 2 -cmp 2 -subcmp 2 -trellis 3 -partitions parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 -aspect 16:9 -an "<%OutputFile%>.MP4""
Command1=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -title "Movie" -timestamp "<%TimeStamp%>" -s 480x270 -r 30000/1001 -b 512k -passlogfile "2pass-log" -pass 2 -vcodec h264 -coder 1 -profile 51 -level 30 -bufsize 128kb -g 300 -bf 3 -mbd 2 -cmp 2 -subcmp 2 -trellis 3 -partitions parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 -aspect 16:9 -acodec aac -ac 2 -ar 48000 -ab 128k -f psp "<%OutputFile%>.MP4""
Command2="rm "2pass-log-0.log""
Command3=""<%AppPath%>\cores\old\ffmpeg" -y -i "<%InputFile%>" -f image2 -ss 5 -vframes 1 -fixaspect -s 160x120 -an "<%OutputFile%>.jpg""

[Item2]
Title=H.264 480x272/音NeroAacEnc/fps自動設定(ソースに依存)
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -vn -acodec pcm_s16le -ac 2 -ar 48000 -f wav "<%TemporaryFile%>.wav""
Command1=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -an -vcodec copy -f avi "<%TemporaryFile%>.avi""
Command2=""<%AppPath%>\cores\neroaacenc" -he -q 0.20 -if "<%TemporaryFile%>.wav" -of "<%TemporaryFile%>.aac""
Command3=""<%AppPath%>\cores\ffmpeg" -bitexact -y -i "<%TemporaryFile%>.avi" -vcodec h264 -coder 1 -aspect 480:272 -s 480x272 -profile 51 -bufsize 128kb -g 300 -bf 3 -mbd 2 -cmp 2 -subcmp 2 -trellis 3 -partitions all -qmin 16 -qmax 24 -qcomp 0.8 -level 30 -flags 1 -an -f mp4 "<%TemporaryFile%>.mp4""
Command4=""<%AppPath%>\cores\ffmpeg" -bitexact -y -i "<%TemporaryFile%>.avi" -vcodec h264 -coder 1 -aspect 480:272 -s 480x272 -profile 51 -bufsize 128kb -g 300 -bf 3 -mbd 2 -cmp 2 -subcmp 2 -trellis 3 -partitions all -qmin 16 -qmax 24 -qcomp 0.8 -level 30 -flags 1 -an -f mp4 "<%TemporaryFile%>.mp4""
Command5=""<%AppPath%>\cores\old\ffmpeg" -y -i "<%InputFile%>" -f image2 -ss 5 -vframes 1 -fixaspect -s 160x120 -an "<%OutputFile%>.jpg""
Command6=""<%AppPath%>\cores\MP4Box" -add "<%TemporaryFile%>.aac" -add "<%TemporaryFile%>.mp4" "<%OutputFile%>.mp4""
Command7="rm "<%TemporaryFile%>.log""
Command8="rm "<%TemporaryFile%>.log.temp""
Command9="rm "<%TemporaryFile%>.wav""
Command10="rm "<%TemporaryFile%>.aac""
Command11="rm "<%TemporaryFile%>.avi""

http://sanomoto.sakura.ne.jp/log/200704.html#08

内部で何をやっているのか今一良く判っていませんが
動いてはいるので良しとします。
勉強せねば


※追記 新verが出たのでそちらもみてください
※追記の追記 この記事だけを読む人が居るみたいなので追記しておきます

妙にエラーが出るので、参考元のサイトの記事を読み返してみた所
新verが出ていました。
これを使ったらエラーが出なくなりGood

Title=H.264 480x270/音Nero/FPS維持/4:3
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -vn -acodec pcm_s16le -ac 2 -ar 48000 -f wav "<%TemporaryFile%>.wav""
Command1=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -an -vcodec copy -f avi "<%TemporaryFile%>.avi""
Command2=""<%AppPath%>\cores\neroaacenc" -he -q 0.25 -if "<%TemporaryFile%>.wav" -of "<%TemporaryFile%>.aac""
Command3=""<%AppPath%>\cores\ffmpeg" -bitexact -y -i "<%TemporaryFile%>.avi" -vcodec h264 -coder 1 -aspect 360:270 -s 480x270 -profile 51 -bufsize 128kb -g 300 -bf 3 -mbd 2 -cmp 2 -subcmp 2 -trellis 3 -partitions all -qmin 8 -qmax 24 -qcomp 0.8 -level 30 -flags 1 -an -f mp4 "<%TemporaryFile%>.mp4""
Command4=""<%AppPath%>\cores\ffmpeg" -bitexact -y -i "<%TemporaryFile%>.avi" -vcodec h264 -coder 1 -aspect 360:270 -s 480x270 -profile 51 -bufsize 128kb -g 300 -bf 3 -mbd 2 -cmp 2 -subcmp 2 -trellis 3 -partitions all -qmin 8 -qmax 24 -qcomp 0.8 -level 30 -flags 1 -an -f mp4 "<%TemporaryFile%>.mp4""
Command5=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -f image2 -ss 5 -vframes 1 -s 160x120 -an "<%OutputFile%>.jpg""
Command6=""<%AppPath%>\cores\MP4Box" -add "<%TemporaryFile%>.aac" -add "<%TemporaryFile%>.mp4" "<%OutputFile%>.mp4""
Command7="rm "<%TemporaryFile%>.log""
Command8="rm "<%TemporaryFile%>.log.temp""
Command9="rm "<%TemporaryFile%>.wav""
Command10="rm "<%TemporaryFile%>.aac""
Command11="rm "<%TemporaryFile%>.avi""

http://sanomoto.sakura.ne.jp/log/200704.html

オプションの詳細はFFmpeg - Wikipediaを読むと多少判るかも?


かんたんな解説

  1. 動画から音声のみを抜き出しwav形式にデコード
  2. 動画から映像のみを抜き出しavi形式にデコード
  3. 1で抜き出した音声をaac形式(QB25)にエンコード
  4. 2で抜き出した映像をh264形式にエンコード 1pass目
  5. 2で抜き出した映像を以下略 2pass目
  6. 開始から5秒目のフレームをjpg形式で出力
  7. 3と6で作成した音声と映像をMP4Boxで結合
  8. ここまでの経過で作成された素材を全て削除


こんな感じなのかな?