ffmpeg がビデオをカットするとサイズが小さくなるのはなぜですか?

1. 背景

携帯電話を使用して 1080 * 1920 のビデオを録画しました。サイズは 345 MB、長さは 3 分 50 秒です。
これを Mac に直接コピーし、ffmpeg (再エンコード) を使用して最後の 5 秒を切り取り、3 分 45 秒のビデオを取得します。ただし、サイズは 78 MB (解像度は変わりません)。肉眼では画質の低下はありません。
ffmpegでビデオをカットするコマンドは次のとおりです。

 ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:20 -y output.mp4

2、問題

なぜ5秒削除するだけでサイズがこんなに小さくなるのですか?

3. 理由

簡単に言うと、携帯電話のハードウェアエンコード効果が貧弱すぎる + ffmpeg が再エンコードされている

  1. 携帯電話はハードウェア コーディングを実行します。これには、計算リソースに優しく、高い CPU 計算負荷を必要としないという利点があります。欠点は、エンコード効果が非常に低いことです。簡単に表れるのは、ビデオ サイズが比較的大きいことです (特定のソフト エンコードとハード エンコードは自分でクエリできます)。
  2. ffmpeg のビデオカット時に再エンコードしたため (音声と画像を完全に揃えるため)、ffmpeg は独自の最高のソフトウェア エンコード アルゴリズムを使用し、良好な圧縮量を実現しました。確かに私のM1 proではエンコード時のCPU負荷が90%に達しており、モバイル端末では到底許容できないCPU負荷であることがわかります。

おすすめ

転載: blog.csdn.net/qq_29007291/article/details/126630708