ふー、引きこもりをしてた身にとって、仕事に行くだけで結構疲れている今日この頃・・・。
いや、まだ「転入者教育中。」で、仕事は全然してないんだが。 どんだけナマってんだか。
あ、ここから先は、結構マニアックな内容になるんで、興味の無い方は読み飛ばしてください。
ここ最近、外にも出ずに何をしてたかって言うと・・・、いや、大した事はして無かったのだが。
PSPをマルチメディアプレイヤーとして使ってるって事は書いたと思うが、その動画データをPSP用に変換する“エンコーダ”のパラメータをいじって遊んでいたのだ。
エンコーダは“携帯動画変換君“というフリーソフトを使っている。 (Vistaでの動作確認済み。)
これに元データ (MPEG2でもAVIでもVOBでも大丈夫) を放り込んでやって、じーっと待ってるとPSP用のデータが出来上がる。 (一番最初に設定が必要だけど・・。)
はき出された MQA*****.MP4とMQA*****.JPG (*****はランダムに付けられる数字) って言う二つのファイルを、メモステのVIDEOフォルダーに入れてやれば、PSPで再生が出来るようになる。
結構簡単に使える優れ物のソフトなのだが、実は“ffmpeg”というエンコーダ本体のGUI (グラフィカル ユーザー インターフェイス) として動いていて、“Transcoding.ini”ファイルの中にffmpegへ渡すパラメータが記述してあり、これをいじってやることで、エンコードした動画の画質を変えられるのだ。
使っているのは基本的に、H264/MPEG4 AVCのVBR、30fpsでオーディオ部がAAC128kbpsステレオの2Passエンコード。
なるべく高画質で容量を小さくってわがままを、通そうと苦労していたわけだ。
で、行き着いたのが、このパラメータ。
但し、アニメーション用の設定で、元データのファイルネームが動画のタイトルになる。 (PSPのFW Ver4.00以降では、変換後のファイルネームがタイトルになるように変更されたようだ。)
洋画用にはいくつかの変更と、パラメータの追加が必要になる。
Title=AVC 480x272/29.97fps/VBR q2-25 Maxrate 2000 2pass ステレオ/128kbps
Command0=""<%AppPath%>coresffmpeg" -y -i "<%InputFile%>" -title "<%Title%>" -timestamp "<%TimeStamp%>" -bitexact -vcodec h264 -4mv -trell -aic -coder 1 -bufsize 128 -g 300 -vlevel 21 -s 480x272 -r 29.97 -qmin 2 -qmax 25 -maxrate 2000 -passlogfile "<%TemporaryFile%>" -pass 1 -acodec aac -ac 2 -ar 48000 -ab 64 -f psp "<%OutputPath%>MAQ<%RandomNumber5%>.MP4""
Command1=""<%AppPath%>coresffmpeg" -y -i "<%InputFile%>" -title "<%Title%>" -timestamp "<%TimeStamp%>" -bitexact -vcodec h264 -4mv -trell -aic -coder 1 -bufsize 128 -g 300 -vlevel 21 -s 480x272 -r 29.97 -qmin 2 -qmax 25 -maxrate 2000 -passlogfile "<%TemporaryFile%>" -pass 2 -acodec aac -ac 2 -ar 48000 -ab 64 -f psp "<%OutputPath%>MAQ<%RandomNumber5%>.MP4""
Command2="rm "<%TemporaryFile%>-0.log""
Command3=""<%AppPath%>coresffmpeg" -y -i "<%InputFile%>" -f image2 -ss 5 -vframes 1 -s 160x120 -an "<%OutputPath%>MAQ<%RandomNumber5%>.jpg""
更に高画質を追求し、ffmpeg本体の最新版を“ffmpeg2”の名前で追加して作ったパラメータがこれ。
Title=ffmpeg2 AVC 480x272/29.97fps/VBR q10-20 Maxrate 2000k 2pass stereo/128kbps
Command0=""<%AppPath%>coresffmpeg2" -y -i "<%InputFile%>" -title "<%Title%>" -timestamp "<%TimeStamp%>" -threads 0 -vcodec libx264 -trell -aic -coder ac -bufsize 128 -g 300 -level 21 -s 480x272 -r 29.97 -qmin 10 -qmax 20 -keyint_min 20 -sc_threshold 10 -maxrate 2000k -bt 4000k -mbd 2 -me_method umh -subq 7 -trellis 2 -partitions parti4x4+partp8x8 -flags2 bpyramid+wpred+brdo+mixed_refs -pass 1 -passlogfile "<%TemporaryFile%>" -timestamp "<%TimeStamp%>" -acodec libfaac -ac 2 -ar 48000 -ab 256k -f psp "<%OutputPath%>MAQ<%RandomNumber5%>.MP4""
Command1=""<%AppPath%>coresffmpeg2" -y -i "<%InputFile%>" -title "<%Title%>" -timestamp "<%TimeStamp%>" -threads 0 -vcodec libx264 -trell -aic -coder ac -bufsize 128 -g 300 -level 21 -s 480x272 -r 29.97 -qmin 10 -qmax 20 -keyint_min 20 -sc_threshold 10 -maxrate 2000k -bt 4000k -mbd 2 -me_method umh -subq 7 -trellis 2 -partitions parti4x4+partp8x8 -flags2 bpyramid+wpred+brdo+mixed_refs -pass 2 -passlogfile "<%TemporaryFile%>" -timestamp "<%TimeStamp%>" -acodec libfaac -ac 2 -ar 48000 -ab 256k -f psp "<%OutputPath%>MAQ<%RandomNumber5%>.MP4""
Command2="rm "<%TemporaryFile%>-0.log""
Command3=""<%AppPath%>coresffmpeg2" -y -i "<%InputFile%>" -f image2 -ss 5 -vframes 1 -s 160x120 -an "<%OutputPath%>MAQ<%RandomNumber5%>.jpg""
但し、最新のffmpegは2バイト文字 (日本語を含む) を受け付けないので注意
元データの日本語ファイルネームはNG。
元データ置き場のフォルダーネームに日本語が使えるかどうかは未確認。
更に、エンコーダには結構時間が掛かるから、寝る前にスタートしておくのが良いんじゃないかと思う。
やり方を結構端折って書いてるので、詳細が知りたい方 (居ないと思うけど・・。) は、コメントをください。
なんか今回、日本語が無茶苦茶・・・って、いつもの事か。