You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel用laravel/FFMpeg遇报错:fromDisk方法未定义或无法加载FFMpeg

解决laravel/FFMpeg的两个常见错误

错误1:Call to undefined method FFMpeg\FFMpeg::fromDisk()

这个问题是因为你直接实例化了FFMpeg\FFMpeg类,但fromDisk()是Laravel封装包提供的Facade方法,并非原生FFMpeg类的方法。

解决方法:

  • 使用Laravel的FFMpeg Facade调用,确保顶部引入:
    use Illuminate\Support\Facades\FFMpeg;
    
  • 正确调用示例(获取视频时长):
    // 从指定磁盘加载视频
    $video = FFMpeg::fromDisk('public') // 替换为你的存储磁盘名,比如s3
        ->open('uploads/videos/example.mp4');
    
    // 获取视频时长(单位:秒)
    $duration = $video->getDurationInSeconds();
    
  • 检查包版本:确保composer.json里的pbmedia/laravel-ffmpeg(laravel/FFMpeg的实际包名)为最新稳定版,旧版本API可能存在兼容性问题。执行composer update pbmedia/laravel-ffmpeg完成更新。

错误2:Unable to load FFMpeg

这个错误说明系统未安装FFmpeg二进制文件,或者Laravel无法识别其路径。

解决方法:

  1. 在系统中安装FFmpeg:

    • Ubuntu/Debian:
      sudo apt update && sudo apt install ffmpeg
      
    • macOS(通过Homebrew):
      brew install ffmpeg
      
    • Windows:从FFmpeg官方渠道下载二进制压缩包,解压后将ffmpeg.exe和ffprobe.exe所在路径添加到系统环境变量PATH中。
  2. 配置Laravel中的FFmpeg路径:

    • 发布配置文件(未执行过的话):
      php artisan vendor:publish --provider="Pbmedia\LaravelFFMpeg\FFMpegServiceProvider"
      
    • 在config/ffmpeg.php中指定二进制文件路径,或在.env文件中设置:
      FFMPEG_PATH=/usr/bin/ffmpeg # 根据你的系统实际路径调整
      FFPROBE_PATH=/usr/bin/ffprobe
      
  3. 验证安装结果:在终端执行ffmpeg -version,若能输出版本信息,说明安装成功。

内容的提问来源于stack exchange,提问作者Ahmed Kamel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 00:25:22