2011-03-11 2 views
2

우리는 사용자가 자신의 컨텐츠를 업로드 할 수 있도록하는 PHP 기반 비디오 공유 사이트를 구축하려고합니다.저품질 비디오의 "팽창"을 막기위한 ffmpeg 비디오 인코딩 전략

우리는 FlowPlayer를 통한 최종 스트리밍을 위해 이러한 모든 비디오를 중간 품질의 mp4 비디오 파일로 변환해야합니다.

system("ffmpeg -i $vidPath -pass 1 -ab 64k -ar 44100 -ac 1 -vcodec flv -b 1500k -cmp 3 -subcmp 3 -mbd 2 $flvPath"); 

문제는이 10 메가 바이트 파일에 1 분 비디오의 모든 종류를 변환하는 것입니다 :

우리의 코드는이 (FLV 예) 같은 것입니다. 고품질의 1 분 비디오 인 경우 10MB 파일로 변환됩니다. 그러나 저화질 비디오 (예 : 2MB)가 일 경우은 10MB 파일로 변환됩니다!

업로드 된 비디오의 크기가 "상한"이지만 ​​동일한 길이의 저품질 비디오가 같은 크기로 "부풀려"오지 않도록 어떤 전략/방법을 채택해야합니까!

+0

안녕하세요 @ 스티브, 동의 해 주셔서 감사합니다. 나는 궁금한데, 어떤 명령 행 옵션을 사용 했습니까? – Charles

+0

비슷한 질문을 던졌습니다 : http://stackoverflow.com/questions/5502654/ffmpeg-bitrate-calculation-optimization, 아마도 일부 답변이 도움이 될 수 있습니다. –

답변

1

-b 플래그를 사용하여 비트 전송률을 적용한 것으로 보입니다. 특정 비트율을 설정하는 대신 -minrate-maxrate 플래그 인 as listed in the documentation을 사용하면 어떻게됩니까?

또 다른 흥미로운 옵션은 최대 파일 크기를 설정하는 -fs입니다. 비디오를 인코딩하기 전에 길이를 결정할 수 있다면, 그 길이에 따라 좋은 상한이 무엇인지 알아낼 수 있습니다.