利用ffmpeg只能获取到本地视频的信息。
function video_time($file) {
ob_start();
passthru(sprintf(FFMPEG_PATH, $file)); //passthru()类似exec()
$info = ob_get_contents();
ob_end_clean();
// 通过使用输出缓冲,获取到ffmpeg所有输出的内容。
$ret = array();
// Duration: 01:24:12.73, start: 0.000000, bitrate: 456 kb/s
if (preg_match("/Duration: (.*?), start: (.*?), bitrate: (\d*) kb\/s/", $info, $match)) {
$ret['duration'] = $match[1]; // 提取出播放时间
return $ret;
}
return "";
}
如果是线上视频,可通过先下载到本地,获取到信息后再删除。