Фатальная ошибка: необработанное исключение "Alchemy\BinaryDriver\Exception\ExecutableNotFoundException" с сообщением "исполняемый файл не найден, предложено

Я установил https://github.com/PHP-FFMpeg/PHP-FFMpeg в Linux

путь хостинга

/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')

Пусть кто-нибудь даст мне знать, где обновить путь.

Спасибо

2 ответа

Согласно документации:

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/deveducate/public_html/videoconversion/convert_to_mp4.php

ПРИМЕЧАНИЕ. В документах также говорится об этом, поэтому вы можете просто добавить их в системный путь:

Эта библиотека требует работающей установки FFMpeg. Вам понадобятся как двоичные файлы FFMpeg, так и FFProbe, чтобы использовать его. Убедитесь, что эти двоичные файлы можно найти в системной переменной PATH, чтобы воспользоваться преимуществами обнаружения двоичных файлов, в противном случае вам придется явно указать путь к двоичным файлам при загрузке.

У меня была аналогичная проблема, и я наконец решил ее:

  • Убедитесь, что ffmpeg установлен (apt get install ffmpeg)
  • Кроме того, если у вас есть PHPopenbasedirограничение, обязательно добавьте к нему ffmpeg и ffprobe:open_basedir="/tmp:/usr/share/php::/usr/bin/ffmpeg:/usr/bin/ffprobe"
Другие вопросы по тегам