1. 準備
    H264とAVC形式への変換を使いたいので、以下を事前にインストール
    sudo apt-get insatll libfaac-dev
    
    sudo apt-get insyall libx264-dev
    
  2. イントール手順
    # wget http://ffmpeg.org/releases/ffmpeg-0.6.tar.gz
        2011.09時点の最新はffmpeg-0.8.2.tar.gz
    #tar xvfzffmpeg-0.6.tar.gz
    # cd ffmpeg-0.6
    # ./configure --enable-libx264 --enable-gpl --enable-libfaac --enable-nonfree

    #  make
    # make install


  3. 動画ファイル(sample.flv)から指定時間(120.005秒)の画像ファイル(sampel.jpg)を作成する。
    # ffmpeg -ss 120.005 -vframe 1 -i sample.flv -f image2 sample.jpg
  4. 動画を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ストリーミングサーバなのに、先出し、後出しの途中再生ができない。

     

  5. 動画を東芝のREGZAが認識できるMPEG2形式に変換する例
    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
  1. 関連サイト

     

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

最終更新:2011年09月10日 09:28