目標とするビットレート、品質、またはターゲットファイルのサイズ、および使用するコーデックや関連するパラメータを含む、ソースマテリアルのサイズと品質に関する詳細情報を提供する必要があります。
マニュアルまたはffmpeg -h
その両方をお読みください。コマンドラインにはいくつかの問題があります。
- -b 200を使用してビットレートを制限しようとしているときに、一定のレート係数crf=22を使用しています。
- ビットレートはビット/秒で指定され(非常に古いffmpegを使用している場合を除く)、200 bpsは何にも使用できません。追加
k
して、キロビット/秒を取得します。
- オーディオコーデックを指定していませんが、オーディオビットレートを指定している場合、ffmpegはオーディオコーデックを推測しようとしますが、.flvファイルのデフォルトのコーデックがわかりません。
あなたが投稿したコマンドラインは、「中」品質のファイル用であると想定しています。
あなたが試すことができるいくつかの提案:
- 最初にこれを試してください:たとえば、オーディオコーデックを指定する
-acodec libmp3lame
か、オーディオがすでに適切な形式である場合は、を使用して変更せずにコピーすることができます-acodec copy
- 別のレート係数を試してください。たとえば
-crf 30
、数値が大きいほど画質は悪くなりますが、ファイルサイズは小さくなります。
- 別のエンコーダプリセットを試してください。たとえば
-vpre slow
、一般に、プリセットが遅いと、エンコード時にCPUサイクルが多く必要な機能が有効になりますが、画質が向上します。各プリセットの内容については、x264 --fullhelp
またはこのページを参照してください。
- 2パスエンコード、リンクを実行します。
ffmpegのすべてのドキュメントと必要なコーデックパラメータを読みたくない場合は、このチートシートを参照することをお勧めします。ただし、コマンドラインスイッチがffmpegのさまざまなバージョンで変更されているため、例が機能しない場合があります。
コマンドラインの例:
ffmpeg -i inputfile.wmv -vcodec libx264 -crf 25 -s 360x288 -vpre veryslow -acodec libmp3lame -ar 44100 -ab 56k -f flv tmp.flv
パラメータ-s [size]
は、出力ビデオのサイズ(ピクセル単位)です。HDファイルの場合、おそらく1280x720程度が必要です。素材の比率が5:4の場合(360x288の場合)、1280x1024、960x768、または900x720を試してみてください。ソース素材よりも大きいサイズを設定しないでください。ビデオが単にアップスケールされ、(おそらく)品質が目立って向上することなく、ファイルが大きくなります。パラメータはオーディオビットレートです。HDバージョンでもこの-ab
パラメータを増やしたいと思うでしょう。