【备忘】在使用php-ffmpeg/php-ffmpeg开发时遇到Unable to load FFProbe时如何处理?

执行FFProbe::create()时,提示Unable to load FFProbe,php-ffmpeg/php-ffmpeg版本是用的^0.19.0,安装位置/usr/bin/ffprobe,现在提示这个错误要怎么解决呢

说个小技巧:

当在开发跟视频相关的功能时,总是出现:Unable to load FFProbe,这个时候有可能是环境变量问题,这是需要在相关功能之前执行如下代码,很可能你的问题就解决了。

putenv('PATH=' . getenv('PATH') . ':/usr/bin');

有个大前提,必须是你已经下载并安装了php-ffmpeg/php-ffmpeg库所需要的文件,如:

/usr/bin/ffmpeg
/usr/bin/ffprobe

这两个文件必不可少,网上有很多安装教程,自行检索。

安装之后再使用composer安装php-ffmpeg/php-ffmpeg库,然后在代码中使用,如:

function getVideoInfo(){
    //指定环境变量
    putenv('PATH=' . getenv('PATH') . ':/usr/bin');
    // 初始化FFMpeg实例,指向FFmpeg可执行文件的路径(根据实际情况调整路径)
    $ffmpeg = FFMpeg::create([
        'ffmpeg.binaries' => '/usr/bin/ffmpeg',  // 或者其他FFmpeg实际路径
        'ffprobe.binaries' => '/usr/bin/ffprobe', // 或者其他ffprobe实际路径
    ]);

    // 指定要从中提取第一帧的视频文件路径
    $inputVideo = $updata['real_path'];  // 替换为您的视频文件路径

    // 指定输出图像文件的路径和格式(例如,输出为JPEG格式)
    $filename = Tools::rand_str(32) . '.jpg';
    $outer_path = '/uploads/video_cover/' .date('Ymd').'/';
    $outputImagePath = Tools::get_root_path() .'public'. $outer_path;  // 替换为您希望保存第一帧的路径
    if(!file_exists($outputImagePath)){
        mkdir($outputImagePath, 0777, true);
    }
    $outputImage = $outputImagePath. $filename;
    // 打开视频文件
    $video = $ffmpeg->open($inputVideo);

    // 提取第一帧(默认情况下,FFMpeg库将从视频的开始处获取第一帧)
    $frame = $video->frame(TimeCode::fromSeconds(0));

    // 将第一帧保存到指定的图像文件
    $frame->save($outputImage, 'image/jpeg');
    // 使用FFProbe获取视频信息
    $ffprobe = FFProbe::create();
    $videoInfo = $ffprobe->format($inputVideo);
    // 获取视频的时长
    $duration = $videoInfo->get('duration');

    //其它业务逻辑
    //......
}

END

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SDL大华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值