无法加载FFmpeg的FFProbe驱动程序

15

嗨,我正在尝试安装php-ffmpeg。
有人可以指导我或者纠正我的步骤吗。

  1. 我在windows上安装了composer,然后进入了我创建的文件夹来运行 install ffmpeg 命令

  2. 运行此命令后,会创建一个 composer.jsoncomposer.lock 文件以及一个 vendor 文件夹。

  3. 然后从这里安装了适用于64位的共享 FFMpeg 生成版

    http://ffmpeg.zeranoe.com/builds/

然后从这个文件夹中复制了 bin 文件夹到我的目录下,像这样设置 create() 中的 ffmpegffprobe 路径

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

目前我遇到这个错误,提示如下:

"Fatal error: Uncaught exception 'Alchemy\BinaryDriver\Exception\ExecutableNotFoundException' with message 'Executable not found, proposed : /vendor/bin/' in D:\xampp\htdocs\health\vendor\alchemy\binary-driver\src\Alchemy\BinaryDriver\AbstractBinary.php:160 Stack trace: #0 D:\xampp\htdocs\health\vendor\php-ffmpeg\php-ffmpeg\src\FFMpeg\Driver\FFProbeDriver.php(48): Alchemy\BinaryDriver\AbstractBinary::load('/vendor/bin/', NULL, Object(Alchemy\BinaryDriver\Configuration)) #1 D:\xampp\htdocs\health\vendor\php-ffmpeg\php-ffmpeg\src\FFMpeg\FFProbe.php(207): FFMpeg\Driver\FFProbeDriver::create(Array, NULL) #2 D:\xampp\htdocs\health\vendor\php-ffmpeg\php-ffmpeg\src\FFMpeg\FFMpeg.php(117): FFMpeg\FFProbe::create(Array, NULL, NULL) #3 D:\xampp\htdocs\health\ff.php(6): FFMpeg\FFMpeg::create(Array) #4 {main} Next exception 'FFMpeg\Exception\ExecutableNotFoundException' with message 'Unable to load FFProbe' in D:\xampp\htdocs\health\vendor\php-ffmpeg\php-ffmpeg\src\FFMpeg\Driver\FFProbeDriver.php:50 Stack trace: #0 D:\xampp\htdocs\he in D:\xampp\htdocs\health\vendor\php-ffmpeg\php-ffmpeg\src\FFMpeg\Driver\FFProbeDriver.php on line 50".

那我可能做错了什么或者漏掉了哪些步骤。有人能指点一下我吗?

5个回答

1

如果您使用的是PC,您需要在计算机上安装FFmpeg,否则您需要在服务器上安装FFmpeg

Ubuntu上安装FFmpeg

sudo add-apt-repository ppa:mc3man/trusty-media  
sudo apt-get update  
sudo apt-get install ffmpeg  
sudo apt-get install frei0r-plugins  

无法在此处提供其他机器的完整细节,请按照给定链接进行操作。以下是说明如何操作的链接。

https://github.com/adaptlearning/adapt_authoring/wiki/Installing-FFmpeg

在Mac上
brew install ffmpeg

1

如果您在Web服务器上安装了FFMPEG,并使用composer进行安装,但出现了PHP错误,请注意以下解决方法。

由于某些原因(我不知道是什么原因),FFMPEG二进制文件未到达/usr/local/bin目录。

通过运行以下命令查看终端:ls /usr/local/bin没有ffmpeg或ffprobe!

这里有一个二进制文件的链接。下载您需要的文件。如果您不确定您的服务器是32位还是64位,请运行uname -m。如果您的系统运行在32位(i686或i386)或64位(x86_64)。

我只是将ffmpeg和ffprobe二进制文件下载到我的本地计算机,然后通过FTP上传到public_html/,但您可以将它们放在任何位置。

接下来,在终端中将二进制文件移动到正确的位置:

sudo cp -f public_html/ffmpeg /usr/local/bin

sudo cp -f public_html/ffprobe /usr/local/bin

确保它们已到达

ls /usr/local/bin

你应该看到两个文件,并且它们会以白色文本显示。

之后,你需要让这两个二进制文件都可执行。

在终端中:

sudo chmod +x /usr/local/bin/ffmpeg

sudo chmod +x /usr/local/bin/ffprobe

完成了!

`


谢谢,这在 Laravel 8 和 Mac 11.6 BigSur 上运行良好。 - DragonFire

1

好的,我之前遇到了这个问题,这是我解决它的方法。

  1. 确保你在你的机器上安装了正确的ffmpeg文件;如果你在本地运行,则需要在linux服务器或mac/windows上下载。你可以从ffmpeg.org下载。一定要为你的CPU下载正确的静态构建(我的是64位,所以我下载了一个64位的静态构建)

  2. 在服务器上提取tar文件...如果你使用的是env文件,请像下面这样引用(不要忘记加引号)

  3. 确保您的引用路径中有引号。

    FFMPEG_PATH = "/home/.../usr/bin/ffmpeg/ffmpeg"

    FFPROBE_PATH = "/home/.../usr/bin/ffmpeg/ffprobe"

如果你没有使用env文件,可以直接引用如下:

$ffmpeg = FFMpeg::create(
  array(
    'ffmpeg.binaries'  => "/home/.../usr/bin/ffmpeg/ffmpeg",
    'ffprobe.binaries' => "/home/.../usr/bin/ffmpeg/ffprobe",
    'timeout'          => 10,
    'ffmpeg.threads'   => 12,
   )
);

0

如果有人在Windows上遇到类似的问题,这个库会删除反斜杠

(D:\binaries\ffmpeg\ffmpeg.exe)

因此,您应该使用正斜杠

(D:/binaries/ffmpeg/ffmpeg.exe)

这将在Windows上运行。希望能帮到你。


-1

"ffmpeg.binaries"和"ffprobe.binaries"上,ffmpeg.exe/ffprobe.exe的可能正确路径


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接