2013-02-09 72 views
3

我已經安裝了FFmpeg的,我知道它的功能,但我想從通過PHP中的FLV視頻的持續時間,但是當我使用此代碼:獲得視頻持續時間與ffmpeg的,PHP函數

功能mbmGetFLVDuration ($文件){

/* 
* Determine video duration with ffmpeg 
* ffmpeg should be installed on your server. 
*/ 

//$time = 00:00:00.000 format 
$ffmpeg = "../ffmpeg/ffmpeg"; 

$time = exec("$ffmpeg -i $file 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//"); 

$duration = explode(":",$time); 
$duration_in_seconds = $duration[0]*3600 + $duration[1]*60+ round($duration[2]); 

return $duration_in_seconds; 

}

和:

$持續時間= mbmGetFLVDuration( 'http://www.videoaddsite.com/videos/intro.flv'); echo $ duration;

我得到了220的輸出。視頻是3:40。任何人都可以幫我解決我做錯了什麼,或者如果有什麼我可以使用的?

+0

您在幾秒鐘獲得輸出..220秒= 3:40分鐘 – Deadlock 2013-02-09 20:16:59

回答

3

我沒有看到問題。 3:20是220秒。

要獲得分和秒用這個轉換:

<?php 
$seconds = 220; 
$minutes = $seconds/60; 
$real_minutes = floor($minutes); 
$real_seconds = round(($minutes-$real_minutes)*60); 
?> 

$real_minutes將是3和$real_seconds將是40

+0

哈我現在覺得啞巴了。我一直在努力工作,我傾向於查看小事情。還沒有嘗試過,但非常感謝你! – keithp 2013-02-09 20:48:00

+0

如果此答案解決了您的問題,請將其標記爲「已接受」。 – 2013-02-10 00:12:41

0
$ffmpeg = "../ffmpeg/ffmpeg"; 

$time = exec("$ffmpeg -i $file 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//"); 

$duration = explode(":", $time); 
$duration_in_seconds = ($duration[0] * 3600) + ($duration[1] * 60) + round($duration[2]); 

return $duration_in_seconds; 
相關問題