携帯動画変換君は動画を手軽に変換できるソフトです。
携帯向けの動画をエンコードするのはもちろん、PSPや一般の動画でも可能です。
今回は最新のffmpegを使うことや注意点をいくつか書きます。
(ほとんどメモ書き)
- メリット
- 読み込めなかった動画形式を読み込むことができるようになる。(flvとか)
- 内部が最適化されていたり、オプションの種類が増えたりするため、高速化と品質向上が期待できる。
- デメリット
- 最新版ではオプションが廃止されたり変更されることもあるので、そのたびに設定しなおさないといけない。
必要なもの
携帯動画変換君
http://mobilehackerz.jp/contents/3GPConv
MobileHackerz Knowledgebase Wiki (携帯動画変換君についてのいろんな情報がある)
http://mobilehackerz.jp/archive/wiki/
お気に入りの動画を携帯で見よう (ffmpegのバイナリを拾える。)
http://blog.k-tai-douga.com/
準備
Transcoding.ini (FFmpeg rev.18302 , W63Hで動作確認)
[Item0]
Title=[携帯向]Baseline H.264/2pass/600kbps/24fps/320x240 AAC/ST/48kbps/44.1kHz
Command0=""<%AppPath%>\cores\ffmpeg" -bufsize 4096k -pass 1 -passlogfile "<%TemporaryFile%>" -y -i "<%InputFile%>" -timestamp "<%TimeStamp%>" -keyint_min 8 -g 24 -sc_threshold 40 -partitions parti4x4+partp8x8+partp4x4 -flags bitexact+aic -subq 7 -me_method full -me_range 16 -qmin 10 -qmax 51 -level 13 -vcodec libx264 -s 320x240 -r 24 -b 600k -acodec libfaac -ac 2 -ar 44100 -ab 48k -f 3g2 -threads 0 "<%TemporaryFile%>_1.3g2""
Command1=""<%AppPath%>\cores\ffmpeg" -bufsize 4096k -pass 2 -passlogfile "<%TemporaryFile%>" -y -i "<%InputFile%>" -timestamp "<%TimeStamp%>" -keyint_min 8 -g 24 -sc_threshold 40 -partitions parti4x4+partp8x8+partp4x4 -flags bitexact+aic -subq 7 -me_method full -me_range 16 -qmin 10 -qmax 51 -level 13 -vcodec libx264 -s 320x240 -r 24 -b 600k -acodec libfaac -ac 2 -ar 44100 -ab 48k -f 3g2 -threads 0 "<%TemporaryFile%>_2.3g2""
Command2=""<%AppPath%>\cores\QT3GPPFlatten" "<%TemporaryFile%>_2.3g2" "<%TemporaryFile%>_3.3g2" -c QT_3GPP2_QVGA_AAC.ini"
Command3=""<%AppPath%>\cores\ATOMChanger" "<%TemporaryFile%>_3.3g2" "<%OutputFile%>.3g2" "Add_mfra.ini""
Command4="rm "<%TemporaryFile%>-0.log""
Command5="rm "<%TemporaryFile%>_*.3g2""
メモ
携帯動画変換君にデフォルトで入っているffmpeg.exeは、オリジナルでコンパイルされたものなので、
最新のものでは使えなくなる動作もある(変換の中断など。)
最新のコマンドは "ffmpeg -h" で確認できる。
H.264にはBaseline, Main, Highと段階的に品質が区分されていて、
さらにlevel値も16段階に区分されている。
機種にあわせた設定が必要。"あう"の携帯は大抵Baselineでlevel値は1.3前後でないとだめ。
NiconicoやZoomeならHighでもBitrateが指定内であれば問題ないはず。
BaselineとMainとHighの違いは、オプションの指定にあり、
BaselineはBフレーム、CABAC、重み付け予測などのオプションを除いたもので、
Mainから徐々にその数が増えていき、Highになると様々なオプションを指定することになる。
基本的に、同じBitrateであればBaselineよりHighのほうが高画質になるが再生時の負荷も高まる。
参照: http://mobilehackerz.jp/archive/wiki/index.php?%A5%B3%A1%BC%A5%C7%A5%C3%A5%AF