비트 전송률을 유지하면서 비디오 필터링(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

무언가를 저장하려면 항상 최대 크기가 필요합니다. 초당 100Tb를 지정하면 패딩을 추가하지 않으면 소스 비디오에 해당 공간을 채울 수 있는 정보가 충분하지 않기 때문에 비디오가 그다지 크지 않습니다. 완전히 검은색 프레임에는 정보가 거의 없습니다. 말 그대로 압축하는 것이 가장 쉬운 방법입니다. 따라서 압축 알고리즘을 통과한 후 출력은 단 몇 비트에 불과합니다. 모두 0이 포함된 파일을 압축하는 것과 같습니다. 각 픽셀을 무작위로 만들어 보면 파일 크기가 커질 것입니다.

정보이론을 읽어보시길 권합니다.

관련 정보