【问题标题】:Ubuntu - Laravel 5.6 - Unable to load ffprobe (using php-ffmpeg)Ubuntu - Laravel 5.6 - 无法加载 ffprobe(使用 php-ffmpeg)
【发布时间】:2018-07-25 19:18:03
【问题描述】:

我的 ubuntu 系统上安装了 ffmpeg 和 ffprobe(可以通过命令行访问)

ffmpeg 和 ffprobe 位于 /usr/bin/

我通过 composer 安装了这些

"php-ffmpeg/binary-driver": "dev-master",
"php-ffmpeg/php-ffmpeg": "^0.11.1",

我已经完成了: 使用 FFMpeg;

// in index() function//

$ffmpeg = FFMpeg\FFMpeg::create([
    'ffmpeg.binaries'  => '/usr/bin/ffmpeg',
    'ffprobe.binaries' => '/usr/bin/ffprobe'
]);

仍然得到

FFMpeg\Exception\ExecutableNotFoundException

无法加载 FFProbe

我已经为此查看了大约 30 个论坛,但没有运气,一些方向会有所帮助

更新 我试过chmod +x /usr/bin/ffprobe

然后重新启动,什么也没做。

然后我尝试了:

sudo chgrp www-data /usr/bin/ffprobe sudo chmod g+x /usr/bin/ffprobe

然后重新启动,什么也没做。

更新 我忘了提到我在 docker 中运行 php-fpm + nginx。我为 php-ffmpeg 添加了 pbmedia 包装器,如果我在没有 docker(php artisan serve)的情况下运行 laravel 项目,它工作正常。

现在的问题是我需要从 docker 中引用 /usr/bin/ffprobe 目录

【问题讨论】:

  • 二进制文件是否可执行? (设置为chmod +x /usr/bin/ffprobe
  • The issue now is that I need to reference the /usr/bin/ffprobe directory from within docker - 你的意思是说/usr/bin/ffprobe 实际安装在主机上但不存在于 docker 图像/容器中?

标签: php ubuntu ffmpeg laravel-5.6


【解决方案1】:

你提到

ffmpeg 和 ffprobe 位于 /usr/bin/

但如果在 /usr/local/bin/ 中引用它们,则稍后您的代码

$ffmpeg = FFMpeg\FFMpeg::create([
    'ffmpeg.binaries'  => '/usr/local/bin/ffmpeg',
    'ffprobe.binaries' => '/usr/local/bin/ffprobe'
]);

这是需要检查的一件事。

另一个是确保二进制文件为 php 运行为的正确用户设置了可执行位。在 ubuntu 下,此用户可能是 www-data(如果您不确定您的 php 脚本是否会发出whoamiid -un 等)。

sudo chgrp www-data /usr/bin/ffprobe
sudo chmod g+x      /usr/bin/ffprobe

【讨论】:

  • 请重看帖子。我在答案出来之前对其进行了编辑。它是 /usr/bin 没有本地的。这就是它们的存储位置
  • 我会试试你明天提到的另一件事,然后告诉你
猜你喜欢
  • 1970-01-01
  • 2015-12-27
  • 1970-01-01
  • 2018-10-20
  • 2015-05-05
  • 2021-05-04
  • 2021-08-15
  • 2018-08-15
  • 1970-01-01
相关资源
最近更新 更多