2013-05-28 69 views
1

我試圖知道使用ffmpeg更準確地轉換視頻的大小,我得到的原始視頻的實際大小和輸出視頻 和大小分開2,邏輯當我獲得另一個視頻的大小時,將乘以該值以知道結果。確切知道轉換視頻的大小

這個的目的是因爲我想用php和ajax做一個進度條,所以按照我的邏輯來做。

<? 
$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