ffmpegでビデオを加速してもファイルサイズが縮小しない

ffmpegでビデオを加速してもファイルサイズが縮小しない

私はフォローアップをしています。

再生速度を上げる
https://trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20video

ただし、再生速度を1.5倍にすると、ビデオのサイズが同じ/ほぼ同じレベルに減少すると予想しましたが、結果は次のとおりです。

-rwxrwxr-x 1 me me 10000000 2021-10-10 16:56 original_video.mp4*
-rwxrwxr-x 1 me me 10060896 2022-01-02 16:27 speed_up_output.mkv*

つまり、ファイルサイズが大きくなります。

再生速度を上げてビデオサイズをどのくらい減らすことができますか?

ベストアンサー1

そのリンクに記載されているほとんどのコマンドが変更されます。遊ぶスピード。フレーム数を減らすために必ずしも再生速度を変更する必要はない。

補間フィルタを使用すると、フレーム数を減らすことができますが、これはかなり損失の大きいプロセスです。
1フレームずつ削除できますが、ほとんどの人はフレームレートが24fps未満であることがわかります。

フレーム数を減らすとデータ量が減ります。 ~のため圧縮されていないビデオでは線形相関が期待できます。 この記事いくつかの例が含まれています。 x-ticsが均一に分布していないので、これらのグラフはひどいです。

ほとんどのエンドユーザーシナリオでは、圧縮ビデオを使用してください。 H264は広く使用されている圧縮機です。別名差動を使用します。予想される額縁。削除されたフレームは光学フロー検出を妨げ、ビデオ圧縮を困難にします(フレームごとに同じ品質を維持したい場合)。したがって、フレームレートを下げるとファイルサイズが非線形になります。関連:https://superuser.com/questions/283515/video-encoding-how-much-does-the-video-file-size-increase-with-fps

私はffmpegのデシメーションフィルタを使ってこれを試しました。

ffmpeg -i raw_footage.ts -an -c:v libx264 -crf 21 30fps.mkv
ffmpeg -i 30fps.mkv -filter:v decimate=cycle=2 -c:v libx264 -crf 21 -t 30 15fps.mkv

ファイルサイズ:

  • 30fps.mkv 9,4M
  • 15fps.mkv 8,2M

フレームレートが低下するため、ビデオは非常に不安定で視聴するのが難しくなります。私の考えでは完全に屠殺されました。ただし、ファイルサイズは12%だけ縮小しました。良い取引ではありません。

ほとんどのユースケースでは、フレームレートを維持し、フレームごとに画質を下げる方がはるかに簡単です。

ffmpeg -i original_video.mp4 -c:v libx264 -crf 31 -c:a aac -b:a 64k -movflags +faststart output.mp4

crfクオリティのある構成なので、数値が高いほど「より多くの圧縮」を意味します。

実行している作業に応じてより高いレベルに切り替えます。輪郭それも役に立ちます。形状解像度を下げることも役立ちます。可能であれば、libx265などのより良いコンプレッサーを使用できます。

おすすめ記事