web-dev-qa-db-ja.com

オーディオとビデオのビットレートを指定する方法

次のメディア情報を含むmovファイルがあります。

Stream 0
Type: Video
Codec: H264-MPEG-4 AVC (part 10)avc1
Language: English
Resolution: 1280x720
Frame rate: 24

Stream 1
Type: Audio
Codec: MPEG AAC Audio (mp4a)
Language: English
Channels: Stereo
Sample rate: 44100HZ

そして、FFmpegを使用して、そのMOVファイルをAVIファイルに変換したいと思います。

私はオーディオとビデオのビットレートを指定できることを知っています( この記事 から):

ffmpeg -i InputFile.mpg -ab 128 -b 1200 OutputFile.avi

しかし、私の場合、元の品質を維持したい場合、オーディオとビデオのビットレートはどのようにする必要がありますか?

42
michael

ビデオとオーディオのターゲットビットレートを指定するには、それぞれ-b:vおよび-b:aオプションを使用します。 kBit/sの場合はK、MBit/sの場合はMのような省略形を使用できます。

例えば:

ffmpeg -i input.mp4 -b:v 1M -b:a 192k output.avi

注意:

  • これは、最後に指定されたビットレートに到達しようとする単純なワンパスエンコードです。これにより、ビデオパーツのビットレート推定が誤ったものになる可能性があります。特定のビットレートをターゲットにする場合は、2パスエンコーディングモードを使用することをお勧めします。その他のヒントについては、 H.264エンコーディングガイド を参照してください。

  • 品質を確認してください:必要ですか?次に、より高いビットレートを使用します。あなたに最適なものを試してみてください。入力と同じビットレートを単純に使用すると、可能性が高くなります 生成損失 により、元の品質よりも品質が大幅に低下します。

  • ffmpegは、AVIコンテナーのデフォルトのビデオおよびオーディオコーデックを選択します。これは、それぞれmpeg4およびlibmp3lameエンコーダーであるため、MPEG-4パートIIビデオおよびMP3オーディオです。 。元のビデオおよびオーディオコーデック(H.264およびAAC)は、AVIコンテナーでサポートされていないため、ここでは使用できません。

  • ほとんどどのコーデックでも特定のビットレートを設定できますが、多くのコーデックには可変ビットレート/固定品質モードがあります。特定のファイルサイズを気にしない場合は、代わりにこのモードを使用してください。 H.264エンコーディングガイド および 定数レート係数 のセクションをお読みください。

58
slhck