ビデオのファイルサイズを小さくするにはどうすればよいですか?何らかの理由で、電話で巨大なビデオを撮影します。これらの最悪なのは、全体で13 GBを占める20分のビデオです。これらのファイルサイズを縮小するにはどうすればよいですか?これらは、H.264およびMPEG-4 AACでエンコードされたmp4であり、30 fpsで再生します。
品質が低下しても大丈夫です。
解像度を下げるためにavconv
を使用しようとしましたが、これにより小さなサイズのビデオが出力されましたが、サイズは奇妙に増加でした。
これらのファイルのサイズを小さくする良い方法は何ですか?
だから私はそれを理解しました。 ffmpegの「-b」フラグはビットレートを設定します。また、1,000,000がファイルサイズと品質の間の適切なトレードオフを提供する適切な一般使用値であることもわかりました。
だから実行:
ffmpeg -i inputfilename.mp4 -b 1000000 outputfilename.mp4
必要に応じて、別のビットレート値に1000000を代入できます。また、出力ビデオのサイズを設定するために「-s WxH」フラグを含めることができます。したがって、出力ビデオを720pにするには、「-s 1080x720」を含めます
Mp4のサイズを小さくするには、FFmpegで2つの適切な選択肢があります。
以下の両方の詳細:
1。 FFmpegのConstant Rate Factor(CRF)オプションを使用してサイズを変更する:
FFmpegでは、CRF設定は0〜51の範囲で変化し、0はロスレス、51は驚くほど低品質です。デフォルトは23で、特定のビデオのファイルサイズおよびビデオ品質の「スイートスポット」をいくつかの実験で見つける必要があります。
サンプルのコマンドラインは次のとおりです。
ffmpeg -i input.mp4 \
-c:v libx264 -preset slow -crf 22 \
-c:a copy \
output.mp4
このコマンドラインでは、ビデオはre-encodedであり、オーディオは単純にcopiedであることに注意してください。考慮事項:
-crf 24
などを試行します(増分increeasing整数)ビデオ品質とファイルサイズの間。crf 20
など(増分decreasing整数)を試してみます。2。 FFmpegの「ビットレート設定」+「2パスエンコード」オプションを使用してサイズを変更します:
CRFの例と同様にnotと同様に良い結果を生成する別の選択肢は、選択したビットレートを使用し、2パスエンコードを使用することです。次の例は、単一のコマンドです:
ffmpeg -y -i input.mp4 \
-c:v libx264 -preset slow -b:v 1000k -pass 1 \
-c:a copy -f mp4 /dev/null && \
ffmpeg -i input.mp4 \
-c:v libx264 -preset slow -b:v 1000k -pass 2 \
-c:a copy \
output.mp4
この例でも、ビデオは再エンコードされ、オーディオは単にコピーされます。考慮事項:
ビデオ品質とファイルサイズの間に許容できる妥協点が見つかるまで、これを繰り返します。
参照: