我已经在 Linux 上安装了 https://github.com/PHP-FFMpeg/PHP-FFMpeg
托管路径是
/public_html/videoconversion/
我收到此错误。
Fatal error: Uncaught exception 'Alchemy\BinaryDriver\Exception\ExecutableNotFoundException' with message
'Executable not found, proposed :
public_html/videoconversion/' in
/home/deveducate/public_html/videoconversion/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/AbstractBinary.php:160 Stack trace:
#0 /home/deveducate/public_html/videoconversion/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Driver/FFProbeDriver.php(48):
Alchemy\BinaryDriver\AbstractBinary::load('public_html/vid...', NULL, Object(Alchemy\BinaryDriver\Configuration))
#1 /home/deveducate/public_html/videoconversion/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/FFProbe.php(226): FFMpeg\Driver\FFProbeDriver::create(Array, NULL)
#2 /home/deveducate/public_html/videoconversion/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/FFMpeg.php(117): FFMpeg\FFProbe::create(Array, NULL, NULL)
#3 /home/deveducate/public_html/videoconversion/convert_to_mp4.php(10): FFMpeg\FFMpeg::create(Array, NULL)
#4 {main} Next exception 'FFMpeg\Exception\ExecutableNotFoundException' with message
'U in /home/deveducate/public_html/videoconversion/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Driver/FFProbeDriver.php on line 50
文件
require 'vendor/autoload.php';
$ffmpeg = FFMpeg\FFMpeg::create(array(
'ffmpeg.binaries' => '/opt/local/ffmpeg/bin/ffmpeg',
'ffprobe.binaries' => '/opt/local/ffmpeg/bin/ffprobe',
'timeout' => 3600, // The timeout for the underlying process
'ffmpeg.threads' => 12, // The number of threads that FFMpeg should
use
), $logger);
$video = $ffmpeg->open('video.mpg');
$video
->filters()
->resize(new FFMpeg\Coordinate\Dimension(320, 240))
->synchronize();
$video
->frame(FFMpeg\Coordinate\TimeCode::fromSeconds(10))
->save('frame.jpg');
$video
->save(new FFMpeg\Format\Video\X264(), 'export-x264.mp4')
任何人都可以让我知道在哪里更新路径。
谢谢
根据文档:
FFMpeg 将自动检测 ffmpeg 和 ffprobe 二进制文件。如果您想显式给出二进制路径,可以传递一个数组作为配置。
示例:
$ffmpeg = FFMpeg\FFMpeg::create(array(
'ffmpeg.binaries' => '/opt/local/ffmpeg/bin/ffmpeg',
'ffprobe.binaries' => '/opt/local/ffmpeg/bin/ffprobe',
'timeout' => 3600, // The timeout for the underlying process
'ffmpeg.threads' => 12, // The number of threads that FFMpeg should use
), $logger);
在您的代码中,您似乎需要对此文件进行更改:
/home/devucate/public_html/videoconversion/convert_to_mp4.php
注意:文档中也提到了这一点,因此您可以将它们添加到系统路径中:
该库需要安装有效的 FFMpeg。您将需要 FFMpeg 和 FFProbe 二进制文件才能使用它。确保这些二进制文件可以通过系统路径找到,以获得二进制检测的好处,否则您应该在加载时显式给出二进制文件路径。
我也遇到了类似的问题,最后解决了:
apt get install ffmpeg
)openbasedir
限制,请确保添加 ffmpeg 和 ffprobe:
open_basedir="/tmp:/usr/share/php::/usr/bin/ffmpeg:/usr/bin/ffprobe"
我也遇到了同样的问题,并通过以下步骤解决了:
ffmpeg 需要安装在您的系统上。使用以下命令在 Linux 中安装 ffmpeg:
sudo apt install ffmpeg
您需要修改您域名的PHP参数中的Open_basedir conf:
{WEBSPACEROOT}{/}{:}{TMP}{/}:/usr/bin/ffmpeg:/usr/bin/ffprobe
最后你的php代码中需要有一个超时参数:
$ffmpeg = FFMpeg\FFMpeg::create( 大批( '超时' => 0, ) );