를 사용하여 고정된 파일 크기를 어떻게 타겟팅합니까 ffmpeg?

를 사용하여 고정된 파일 크기를 어떻게 타겟팅합니까 ffmpeg?

길이가 15초이고 크기가 465,195KB인 비디오 파일이 있습니다. 약 46,000KB 정도로 줄이고 싶습니다. 이를 수행하는 쉬운 방법이 있습니까? 허용되는 최대 비트 전송률을 시도했습니다.

ffmpeg -i input -q:v 0 -b:v 900000k output

그런데 여전히 3,500KB에 불과한 파일을 받습니다.

미리 감사드립니다

답변1

를 사용하여 고정된 파일 크기를 어떻게 타겟팅합니까 ffmpeg?

를 사용하여 트랜스코딩하려는 경우 x264다음을 따르세요.인코딩 가이드특정 파일 크기를 대상으로 지정하는 방법에 대한 예를 제공합니다.

target bitrate = target filesize / duration

ie     bitrate = 46000           / 15

ie     bitrate = 3067 (kbit / s)

아마도 오디오를 위해 그 중 일부가 필요할 것입니다. 가이드에서는 대략적인 기본값으로 128k를 사용하므로 목표 비트 전송률은2939킬로비트/초. 그런 다음2패스인코딩 사양:

ffmpeg -y -i input -c:v libx264 -preset medium -b:v 2939k -pass 1 -c:a libfdk_aac -b:a 128k -f mp4 /dev/null && \
ffmpeg -i input -c:v libx264 -preset medium -b:v 2939k -pass 2 -c:a libfdk_aac -b:a 128k output.mp4

이 방법은 일반적으로 특정 출력 파일 크기를 대상으로 하고 프레임 간 출력 품질이 덜 중요할 때 사용됩니다.

물론 오디오 코딩 등의 측면에서 필요에 맞게 이를 조정할 수 있지만 최종적으로는 46000kB의 파일이 되어야 합니다.

관련 정보