2013-05-28 1 views
1

ffmpeg를 사용하여 더 정확하게 변환 된 비디오 크기를 알기 위해 원본 비디오 및 출력 비디오의 실제 크기를 얻고 있습니다. 및 2의 크기로 나눌 때 논리 다른 비디오의 크기를 얻으면 값을 곱하여 결과를 알게됩니다.정확히 변환 된 비디오의 크기를 알고

이 목적은 PHP 및 아약스를 사용하여 진행률 표시 줄을 만들고 싶기 때문에 내 논리로 볼 수 있습니다.

<? 
$total = $select_result;// total original file 
$video = 'test.mp4'; 


//loop ajax 
$getID3 = new getID3; 
$file = $getID3->analyze($video); 
$current = $file['filesize']; 


$a = $total/$current; 
$b = $a * 100; 
print number_format($b,0).'%'; 
?> 

는 FFmpeg 명령은 항상이

exec("ffmpeg -i $video -ar 22050 -ab 32 -f mp4 -s 320x240 teste1.mp4") 

그러나 나의 논리에 의해

이 작동하지 않는 것, 각 비디오는 다른 값이,이 계산을 할 수 있습니까? 결과 파일의 크기가 원래 다른 경우

+1

결과 파일 크기를 얻으려면'filesize ("teste1.mp4");를 호출하면됩니까? – Orangepill

+0

기본적으로 ffmpeg 구성에 따라 ffmpeg는 MP4 컨테이너에 대해 CRF 속도 제어 방법과 함께 libx264를 사용합니다. 출력 파일 크기는 인코딩이 끝날 때까지 알 수 없습니다. – LordNeckbeard

답변

0

, 나는 다음과 같은 추천 :

  • 파일 몇 변환하여 평균 비율을 찾아 신규 및 기존 파일 크기 사이의 평균 비율을 얻을.

  • 백분율 계산을하기 전에 현재 크기에 비율을 곱하여 새 파일 크기를 계산하십시오.

  • 백분율 계산 값이 100 %를 초과하면 100 %를 사용하십시오.

심리적 인 이유로 인해 평균보다 최대 배율에 가까운 배율을 사용할 수 있습니다. 프로그램이 100 % 이전에 완료되면 프로그램이 100 %로 진행되는 것보다 빠르게 느껴질 것이며 잠시 동안 머물러있게됩니다.

+1

하지만 어떻게 처리하나요? 코덱을 사용하여 모든 비디오를 변환하려고 생각했지만 작동하지 않는다고 생각합니다. – moderadorkl25