sudo apt-get insatll libfaac-dev sudo apt-get insyall libx264-dev
動画をMPEG-4/AVC形式に変換
ビットレート固定・・・jwplayerで再生した場合、画質が荒い
ffmpeg -y -i inputfile -f mp4 -vcodec libx264 -acodec libfaac -vb 256k -ab 64k -g 150 -qcomp 0.7 -qmin 10 -qmax 51 -qdiff 4 -subq 6 -me_range 16 -i_qfactor 0.714286 outputfile.mp4
ビットレート固定・・・jwplayerで再生した場合、ある程度、きれいな画質で再生させたが、再生速度の遅延がある。
生データをVLCで再生した場合の再生速度遅延は発生していない事を確認した。
ffmpeg -y -i inputfile -f mp4 -vcodec libx264 -acodec libfaac -cqp 23 -aq 100 -g 150 -qcomp 0.7 -qmin 10 -qmax 51 -qdiff 4 -subq 6 -me_range 16 -i_qfactor 0.714286 outputfile.mp4
以下の設定で再生速度遅延は解消された。
ffmpeg -y -i inputfile -f mp4 -vcodec libx264 -acodec libfaac -r 10 -cqp 23 -aq 100 -g 150 -qcomp 0.7 -qmin 10 -qmax 51 -qdiff 4 -subq 6 -me_range 16 -i_qfactor 0.71 outputfile.mp4
-r : オリジナルのフレームレート×早回しの倍数。例:オリジナルが29.97(fps) のものを10倍早回しにしたければ、299.7 を指定。
値が小さいほどコマ落ちしました。「10」あたりでそれなりの画質で再生されました。
-cpq
-bのかわりに-cqpを使ってみたらビットレートが変化しました。
値としては0から50位で動くようです。
-cqp 48だと290kbpsになりましたが、かなり汚い画像になってしまいました。
20から30位が実用的と思われます。
手元の動画で以下のようになりました。
-cqp 48→ 290kbps
-cqp 45→ 411kbps
-cqp 35→ 1438kbps
-cqp 30→ 2624kbps
-cqp 23→ 6118kbps
-cqp 20→ 8811kbps
■一般に、ビットレートを大きくすると画質・音質は向上するがファイルサイズが大きくなり、ビットレートを小さくするとファイルサイズは小さくなるが画質・音質が落ちる
JW-PlayerMP4を再生する場合の最適な設定値を色々と試した結果、以下の内容となりました。
ffmpeg -y -i inputfile -f mp4 -vcodec libx264 -acodec libfaac -r 10 -cqp 30 -aq 100 -g 150 -qcomp 0.7 -qmin 10 -qmax 51 -qdiff 4 -subq 6 -me_range 16 -i_qfactor 0.71 outputfile.mp4
-r 10 -cqp 30 が劣化が少なく、ビットレート、再生速度ともに我慢て゜きるくらいの画質です。
ただし、Red5ストリーミングサーバなのに、先出し、後出しの途中再生ができない。
ffmpeg -i inputfile -target ntsc-svcd -ab 128k -aspect 16:9 -s 720x480 outputfile.mpg
MP4形式の動画から再エンコード無しでFLV形式に変換
ffmpeg -i inputfile.mp4 -vcodec copy -acodec copy -q 1.0 outputfile.flv
上の二つは画質劣化が大きいです。
採集的には以下のコマンドで作成したファイルが綺麗に再生さりました。
「-sameq」パラメータを追加すると元データ画質そのままでFLVファイルの作成が可能です。但しファイルサイズが3.2倍程度に大きくなります
ffmpeg -i inputfile.mp4 -sameq -ar 44100 -vcodec flv outputfile.flv