PHP计算远程视频时长

使用PHP配合ffmpeg计算远程视频时长

安装 ffmpeg

debian

1
sudo apt install ffmpeg

centos

1
2
sudo yum install epel-release
sudo yum install ffmpeg ffmpeg-devel

php代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/**
* @notes 计算视频时长
* @param $videoUrl
* @return int|mixed 获取的数是秒
*/
public function getVideoDuration($videoUrl)
{
try {
// 设置超时时间
set_time_limit(0);
// 使用FFmpeg获取视频信息
$command = sprintf('ffprobe -v quiet -of csv=p=0 -select_streams v:0 -show_entries stream=duration %s 2>&1', escapeshellarg($videoUrl));
exec($command, $output, $returnVar);
if ($returnVar !== 0) {
throw new Exception("Failed to execute FFmpeg command: " . implode("\n", $output));
}
return $output[0];
} catch (Exception $exception) {
return 0;
}
}