是非とも見なかったことに…
スポンサーサイト

一定期間更新がないため広告を表示しています

- - -
FreeBSD ffmpeg H264
FreeBSD で動画を H.264 に変換するときのメモ。オプションが複雑すぎて憶えてられないです。
1pass コマンド
ffmpeg -i /path/to/infile.avi -y -s 704x396 -b 700k ¥ -vcodec libx264 -mbd 2 -trellis 2 -aic 2 -cmp 2 -subcmp 2 ¥ -acodec libfaac -ac 2 -ab 128k ¥ -f mp4 outfile.mp4
2pass は面倒なのでスクリプト作りました。(6/10 追記:もうちょっと綺麗になるようにできたので書き直しました)
2pass 用スクリプト
#!/bin/sh # input file name IFILE=$1 # output file name OFILE=$1 # size = 4cif or vga or wxga and so on... SIZE="704x396" # bit rate BT="500k" #################### # 2-pass #################### ffmpeg -i $IFILE -y -s $SIZE -b $BT -bt $BT -deinterlace ¥ -vcodec libx264 -r 23.97 -mbd 2 -trellis 2 -aic 2 -cmp chroma -flags loop ¥ -nr 600 -deblockalpha 0 -deblockbeta 0 -crf 16 -refs 1 -coder 0 -chromaoffset 10 ¥ -me umh -me_range 16 -subq 7 -partitions +parti4x4+partp8x8+partp4x4+partb8x8 ¥ -bf 16 -b_strategy 1 -directpred 3 -bidir_refine 1 -flags2 wpred+mixed_refs+brdo ¥ -g 240 -keyint_min 25 -level 30 -qmin 16 -qmax 31 -sc_threshold 40 -i_qfactor 0.71 ¥ -an ¥ -f mp4 -pass 1 $OFILE.mp4 && ¥ ffmpeg -i $IFILE -y -s $SIZE -b $BT -bt $BT -deinterlace ¥ -vcodec libx264 -r 23.97 -mbd 2 -trellis 2 -aic 2 -cmp chroma -flags loop ¥ -nr 600 -deblockalpha 0 -deblockbeta 0 -refs 1 -coder 0 -chromaoffset 10 ¥ -me umh -me_range 16 -subq 7 -partitions +parti4x4+partp8x8+partp4x4+partb8x8 ¥ -bf 16 -b_strategy 1 -directpred 3 -bidir_refine 1 -flags2 wpred+mixed_refs+brdo ¥ -g 240 -keyint_min 25 -level 30 -qmin 16 -qmax 31 -sc_threshold 40 -i_qfactor 0.71 ¥ -acodec libfaac -ac 2 -ar 48000 -ab 96000 -vol 410 ¥ -f mp4 -pass 2 -passlogfile "ffmpeg2pass" $OFILE.mp4 && ¥ rm ffmpeg2pass-0.log x264_2pass.log && ¥ echo "encoding Finished."
このスクリプトだと、大抵の動画が 108MB に収まり、そこそこ綺麗(なはず)です。ホントは 104MB に収めたいのですが、なかなかどうしてうまくいきません。orz
使い方
% sh this_script.sh "/path/to/どーがファイル(拡張子は何でもおk)"
1pass の場合は以下です。
1回で
#!/bin/sh # input file name IFILE=$1 # output file name #OFILE=`echo "$1" | sed "s/¥.[A-Za-z0-9]*$//"` OFILE=$1 # size = 4cif or vga or wxga and so on... SIZE="704x396" # bitrate BT="768k" ffmpeg -i $IFILE -threads 2 -y -s $SIZE -b $BT -bt $BT -deinterlace ¥ -vcodec libx264 -r 23.97 -mbd 2 -trellis 2 -aic 2 -cmp +chroma ¥ -nr 1000 -deblockalpha 0 -deblockbeta 0 -crf 22 -refs 1 -coder 0 ¥ -bf 8 -me umh -me_range 16 -subq 6 -partitions +parti4x4+parti8x8+partp8x8 ¥ -g 240 -keyint_min 25 -level 13 -qmin 10 -qmax 22 -sc_threshold 40 -i_qfactor 0.71 ¥ -acodec libfaac -ac 2 -ar 48000 -ab 128000 -vol 400 ¥ -f mp4 $OFILE.mp4 && ¥ echo "encoding Finished."
FreeBSD - -
スポンサーサイト
- - -
<< NEW | TOP | OLD>>