ffmpegの固定品質(crf)を25~20まで指定してエンコードしてみました。

実験環境
OS:CentOS 5.5 32bit
ffmpeg:0.5.2(rpmforgeでインストール可能)

使用コマンド、オプション

/usr/bin/ffmpeg -y -i "/home/enc/hogehoge.mpg" -vcodec libx264 -crf 20 -nr 50 -deinterlace -s 1280x720 -r 29.97 -coder 1 -flags +loop -cmp +chroma -partitions +parti8x8+parti4x4+partp8x8+partb8x8 -me_method umh -subq 16 -me_range 16 -g 300 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -b_strategy 2 -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -bf 8 -refs 4 -directpred 3 -trellis 1 -flags2 +wpred+mixed_refs+dct8x8+fastpskip -rc_eq 'blurCplx^(1-qComp)' -acodec libfaac -ar 48000 -ab 192k -threads 3 /home/backup/crf20/output.mp4

ソース動画
1.8GBのmpgファイル(地デジファイル)

結果

表1. crfを変動させた時のビットレート、ファイル容量

crf

ビットレート

容量

25

864Kbps

181MB

24

1015Kbps

207MB

23

1198Kbps

239MB

22

1417Kbps

278MB

21

1677Kbps

323MB

20

1981Kbps

377MB



図1. crfを変動させた時のビットレートの変化


crfを1ずつ変動(下げて)させていくことで、ビットレートが約200Kbps位ずつ上がっていってますね。

ちなみに、CentOSのffmpeg(rpmforge)はバージョンが古いのでlibfaacが使えます。(FedoraのRPMFusionではライセンス上の問題で使えなくなりました。ただ、自分でビルドすれば問題なく使えるみたいです。)

感想
crf20でエンコードを行うと結構希望していた画質に近づきました。

しかし、個人的な意見ですが、シャープさが足りない・・・orz

ペガシスだと結構シャープな部分もほんのちょっとだけボヤっとした感じになっちゃってます。

オプションの使い方が悪いのだろうか・・・。

ん~、シャープにするオプションってどれなんだろ。

もう少しだけシャープな映像になれば希望通りの画質になるのに(´ω`)

※ffmpegのcrfについて
http://mobilehackerz.jp/archive/wiki/index.php?%BA%C7%BF%B7ffmpeg%2F%B9%E2%C5%D9%A4%CA%A5%AA%A5%D7%A5%B7%A5%E7%A5%F3


6月 17, 2010 at 10:10 pm by 黒ぶちメガネ
Category: Linux