2013-02-09 153 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;