Laravel PHP 使用 ffmpeg, Unable to load FFProbe

杨昊
2023-12-01

写在前面

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。
FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。

在PHP中使用ffmpeg,可以用开源composer包 php-ffmpeg,不过使用前提是安装了ffmpeg。

1. 安装ffmpeg

另一篇博文有写,ubuntu安装ffmpeg,centos安装ffmpeg

2. 使用php-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');

再测试可以成功获取到视频时长了!

 类似资料: