FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。
FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。
在PHP中使用ffmpeg,可以用开源composer包 php-ffmpeg,不过使用前提是安装了ffmpeg。
另一篇博文有写,ubuntu安装ffmpeg,centos安装ffmpeg
我项目用的框架是Laravel,用ffmpeg目的是获取视频时长。
开始按照github文档编码测试,问题出现了,用命令行可以成功调用ffmpeg,但是同样的代码换到Controller,(ffmpeg已配置系统环境变量),报错 Unable to load FFProbe,代码如下
$ffprobe = FFProbe::create();
$ffprobe->format($fileUrl)->get('duration');
解决方式: 指定ffmpeg、ffmprobe的安装路径
$config = [
'ffmpeg.binaries' => '/usr/bin/ffmpeg',
'ffprobe.binaries' => '/usr/bin/ffprobe'
];
$ffprobe = FFProbe::create($config);
$videoDuration = $ffprobe->format($fileUrl)->get('duration');
再测试可以成功获取到视频时长了!