
길이가 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의 파일이 되어야 합니다.