ビットレートを維持しながらビデオをフィルタリングする (FFmpeg)

ビットレートを維持しながらビデオをフィルタリングする (FFmpeg)

実験的な目的で、ビデオをフィルタリングし(-vfオプションを使用)、明るさなどを変更する必要がありますが、ビットレートは元のビデオと同じままにする必要があります。

テスト目的で、次のような行を使用して RGB 値を変更し、ビデオを完全に黒にします。

ffmpeg -i input.mp4 -vf lutrgb='r=0.0*val:g=0.0*val:b=0.0*val' output.mp4

これまで、この行に-b-minrate/maxrateおよび-qオプションを追加してビットレートを手動で指定しようとしましたが、何をしても、FFmpeg は出力ビデオの br を数キロバイトにまで削減し続けます。

私の質問は、RGB 値を完全に黒に変更した場合でも (極端なケースとして) ビットレートを同じレベルに保つことができるかどうかです。

答え1

何かを保存するには、常に最大サイズが必要です。1 秒あたり 100Tb を指定した場合、ビデオはそれほど大きくなりません。パディングを追加しないと、ソース ビデオにそのスペースを埋めるのに十分な情報がないからです。完全に黒いフレームには、ほとんど情報がありません。これは、文字通り圧縮するのが最も簡単なものです。したがって、圧縮アルゴリズムを通過すると、出力はわずか数ビットになります。すべてゼロのファイルを圧縮するようなものです。各ピクセルをランダムにすると、ファイルは巨大になります。

情報理論について読んでみることをお勧めします。

関連情報