ffmpeg
を使用するにはどうすればよいですか 品質を下げることでビデオのサイズを小さくするには(利用可能なスペースがあまりないモバイルデバイスで実行する必要があるため、当然、可能な限り最小限に抑えます)?
動画で字幕(*.srtまたは*.sub)を使用できる場合は、変換した動画ファイルのパラメータに合わせて字幕も変換したいと思います。
承認された回答:
この回答は2009年に作成されました。2013年以降、H.264よりもはるかに優れたビデオ形式、つまりH.265が広く利用可能になっています(同じ品質でより多くの圧縮を行う、または同じサイズでより高い品質を提供するという点で優れています)。これを使用するには、libx264コーデックをlibx265に置き換え、CRF値を増やして圧縮レバーをさらに押します。H.265の妥当な範囲は24〜30である可能性があるため、たとえば4または6を追加します。に注意してください。下 CRF値は高いに対応します ビットレート、したがってより高いを生成します 高品質の動画。
ffmpeg -i input.mp4 -vcodec libx265 -crf 28 output.mp4
古いH.264形式を使用してこの手法が適用されていることを確認するには、便宜上以下に引用されているこの回答を参照してください。
ターゲットサイズ(ビット単位)をビデオの長さ(秒単位)で割って、必要なビットレートを計算します。たとえば、ターゲットサイズが1GB(1ギガバイト)の場合 、8ギガビット )および10000秒のビデオ(2時間46分40秒)、800000ビット/秒(800kビット/秒)のビットレートを使用します:
ffmpeg -i input.mp4 -b 800k output.mp4
検討する価値のある追加のオプションは、平均ビットレートを下げますが、より良い品質を維持する一定レート係数を設定することです。 CRFを約18〜24の間で変化させます。ビットレートが低いほど、ビットレートは高くなります。
ffmpeg -i input.mp4 -vcodec libx264 -crf 20 output.mp4