フレームをドロップして速度を上げることで、ファイルサイズを大幅に削減したいと考えています。
以下は再エンコード時にのみ機能します:
ffmpeg -r 1000 -i input.mp4 -r 30 -y output.mp4
ffmpeg -itsscale .01 -i input.mp4 -r 30 -y output.mp4
追加すると-c copy
壊れます。
-r 1000
メソッドはまったく何も行いません。-itsscale
ビデオの速度は上がりますが、ファイルサイズは縮小されません...すべてのフレームがファイル内に隠れて残っていますか?
再エンコードせずにフレームをドロップしてファイルサイズを縮小する方法はありますか?
答え1
一部のフレームは前のフレームに依存しているため、フレームをドロップするだけではビデオが正常に動作しません。これは、ファイル サイズを縮小するために多くのコーデック/形式で使用される最適化です。
したがって、ビデオのサイズを縮小したい場合は、必ず再エンコードする必要があります。
より良い解決策については、投稿をご覧ください ffmpeg でビデオのサイズを縮小するにはどうすればよいですか?
この高投票の投稿に対する回答には、さまざまな解決策がリストされています。
- 同じ品質でより多くの圧縮が可能な、はるかに優れた H.265 ビデオ形式を使用します。
- 使用
-crf 28
(リンク - 解像度を小さくするには、ビデオのサイズを縮小します。
- ビデオに高速アクションシーンが含まれていない場合は、フレーム レートを下げます。
- 圧縮率を上げます。
- 色の深度を下げます。