나에게는 많은 비디오가 있는데, 그 중 대부분은 움직임이 거의 또는 전혀 없는 정적 이미지입니다. 특정 시퀀스에만 액션이 많은 애니메이션 장면이 있습니다.
이제 파일 크기를 줄이고 싶지만 crf 또는 특정 비트 전송률을 사용하는 ffmpeg가 최선의 방법은 아닌 것 같습니다. ffmpeg가 움직임이 있는 장면에서는 자동으로 더 높은 비트 전송률을 사용하고 대부분의 장면(버퍼 등)에서는 거의 0 비트 전송률을 사용하도록 하는 옵션이 있습니까?
감사해요
답변1
이것이 CRF가 수행해야 하는 작업입니다. CRF는 지속적인 인식 품질을 유지해야 합니다. 또는 특정 파일 크기를 대상으로 해야 하는 경우 이중 패스 모드( -pass
및 사용 -passlogfile
)를 사용할 수 있습니다. 여기서 첫 번째 패스에서는 비트가 필요한 장면을 검색하고 두 번째 패스에서는 가능한 경우 비트를 할당합니다.
일부 코드에는 다양한 비디오 유형에 대한 조정 옵션이 있습니다. 예를 들어 H.264로 인코딩하는 경우 스틸 또는 애니메이션을 조정해 보십시오. (물론 가능한 경우 코덱을 변경해 보십시오. 또는 이미지 유형에 따라 H.264에 대해 10비트를 활성화하고 가능하면 다시 활성화하십시오.)
장면 변경 감지 및 키프레임은 만져볼 가치가 있습니다. 정적 이미지가 포함된 사진을 원하는 경우가 많습니다. 처음에는 아티팩트가 가득한 정적 이미지를 표시하다가 갑자기 선명해지는 중간에 키프레임을 두는 것이 최악의 인코딩입니다. 이에 대한 옵션은 많습니다. 무차별 대입 방식은 -force_key_frames
.
다른 방법이 작동하지 않으면 -rc_override
프레임별로 양자화기/품질 요소를 수동으로 설정할 수 있습니다. 특히 스틸 프레임이 허용되도록 나머지 옵션을 설정한 경우 이를 사용하여 애니메이션 부분을 수정할 수 있습니다. 하지만 이것은 많은 작업이 필요하기 때문에 최후의 수단입니다!
그러나 스틸 프레임의 내용에 따라 많은 비트를 차지할 수 있습니다. 비디오 인코딩은 가능한 한 적은 비트로 동작을 표현하는 방법을 알아내는 것입니다. 특히 시청자가 아티팩트를 알아차릴 수 있는 충분한 시간이 있기 때문에 복잡한 정지 프레임에는 많은 비트만 필요합니다.
당신이 Stack Exchange에 대해 알고 있는지 잘 모르겠습니다.영상 제작 웹사이트;그곳에 물어보면 좋을 것 같습니다.