foltiaのトラコン
リクエストがありましたので晒してみます。
5.5G iPod で視聴可能な H264+AAC.MP4 へトラコンするように作成し、現在は iPod touch で視聴しています。iPod touch 向けの調整は行っていません。
音声エンコード
mplayer $inputmpeg2 -vc null -vo null -ao pcm:file=$mp4file.wav:fast wine neroAacEnc.exe -br 128000 -if $mp4file.wav -of $mp4file.aac
- libfaac がイマイチらしいので、わざわざ wine 経由で neroAacEnc を利用
mencoder パス1/2共通オプション
if ($aspect == 16) { $cropopt = "704:360:6:60"; $scale = "640:352"; $frameref = "3"; } else { $cropopt = "704:480:6:0"; $scale = "640:480"; $frameref = "2"; } $mencoder_opts = "\ $inputmpeg2 -o $mp4file.264 -passlogfile $mp4file.log \ -of rawvideo -oac copy -ofps 24000/1001 -sws 9 \ -vf pullup,softskip,crop=$cropopt,scale=$scale,hqdn3d=4:3:6,pp=l5,harddup";
- フィルタは3:2プルダウンされたアニメ専用(CM部分はメタメタになるけど、どうでもいい)
- $frameref は x264 用の値。5.5G のデコーダーバッファの制限か、640x480 の場合は 2 が限界。iPod touch でどうなのかは未調査。
x264 パス1/2共通オプション
$x264opts = "\ level_idc=30:nocabac:vbv_maxrate=1400:vbv_bufsize=1024:nofast_pskip:bitrate=800:\ keyint=240:keyint_min=1:scenecut=65:qp_step=4:ratetol=1:ssim:\ bframes=0:deblock=0,0:frameref=$frameref:mixed_refs:partitions=all"
- partitions は all より p4x4 以外全てのほうが良いらしい
ビデオエンコード パス1
mencoder $mencoder_opts -ovc x264 \ -x264encopts pass=1:turbo=1:$x264opts 2>&1 | grep info >$mp4file.txt
- SSIM 値をログに残してる(結局ほとんど見てないけど)
ビデオエンコード パス2
mencoder $mencoder_opts -ovc x264 \ -x264encopts pass=2:me=umh:me_range=32:subq=7:$x264opts 2>&1 | grep info >>$mp4file.txt
- モーション検索系はパス2でのみ強化
多重化
MP4Box -ipod -fps 23.976025 -add $mp4file.264 -add $mp4file.aac -lang jpn -new $mp4file.orig
- "-ipod" が 5.5G 向けの UUID ハックをやってくれるはずだが上手く動いてくれなかったので、次の AtomicParsley でも同じことをやってる。最新の MP4Box なら大丈夫かも。
タグ付け
AtomicParsley $mp4file.orig --DeepScan --iPod-uuid 1200 --output $mp4file --stik \"TV Show\" \ $movietitle $tvshowname $tvepisode $tvepisodenum
ipodtranscode.pl
長々と書きましたが、実際に利用している ipodtranscode.plを置いておきます。こっちを見たほうが確実です。
こんな感じで、30分で200MB弱になり、iPod touch で見る分には相当綺麗です。TV出力すると結構粗が目立ちますが、エンコードの問題というより録画ソースの品質が悪いからでしょう。
単体の ffmpeg は逆テレシネとかのフィルタ回りが弱いので使ってないです。ちなみに、MPEG-2 TS トラコンを考えていたときに見つけた avidemux が mencoder 以上に強力なフィルタを持っているっぽいので、移行を考えています。Windows なら avisynth がいいんでしょうなぁ。
そういえば tsniff 作ってから、まだ1番組も録画してないや……。