Контекст
У меня очередь RabbitMQ, содержащая AMQPMessage, эти сообщения ссылаются на видео, которое нужно обработать (вырезать по существу и также закодировать в x264)
Вот код, вызывающий проблему (довольно простой)
$ffprobe = FFProbe::create([
'ffmpeg.binaries' => '/usr/bin/ffmpeg',
'ffprobe.binaries' => '/usr/bin/ffprobe',
]);
Сообщение об ошибке
TL;DR :
Error: "Unable to load FFProbe"
[2019-12-03 14:55:07] messenger.ERROR: Ошибка при обработке сообщения App \ Api \ Message \ AMQPvideoFFMPEG. Отправка для повтора №1 с задержкой 1000 мс. Ошибка: «Не удалось загрузить FFProbe» {«сообщение»: «[объект] (App \ Api \ Message \ AMQPvideoFFMPEG: {})», «class»: «App \ Api \ Message \ AMQPvideoFFMPEG», «retryCount»: 1 , «задержка»: 1000, «ошибка»: «Не удалось загрузить FFProbe», «исключение»: «[объект] (Symfony \ Component \ Messenger \ Exception \ HandlerFailedException (код: 0): невозможно загрузить FFProbe в / app / vendor / symfony / messenger / Middleware / HandleMessageMiddleware.php: 80, FFMpeg \ Exception \ ExecutableNotFoundException (код: 0): Невозможно загрузить FFProbe в / app / vendor / php-ffmpeg / php-ffmpeg / src / FFMpeg / Driver / .php: 50, Alchemy \ BinaryDriver \ Exception \ ExecutableNotFoundException (код: 0): Исполняемый файл не найден, предлагается: / usr / bin / ffprobe в / app / vendor / alchemy / binary-driver / src / Alchemy / BinaryDriver / AbstractBinary. php: 160) "} []
Конфигурация и тесты
На Heroku есть 2 динамометра:
- web $(composer config bin-dir)/heroku-php-nginx -C config/packages/dev/heroku_nginx.conf public/
- worker php bin/console messenger:consume ffmpeg
На этой платформе у меня также есть 3 сборочных пакета, смотрите ниже, с этим конкретным buildpack :
Чтобы убедиться, что все доступно, вот результаты моих проверок:
heroku run "ffmpeg -version" -a project-dev
Running ffmpeg -version on ⬢ project-dev... up, run.6134 (Hobby)
ffmpeg version N-67574-g9d6ad68 Copyright (c) 2000-2014 the FFmpeg developers
built on Nov 12 2014 11:35:09 with gcc 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1)
configuration: --enable-static --disable-shared --disable-asm --extra-libs=-L/app/vendor/libs/lib --extra-cflags=-I/app/vendor/libs/include --prefix=/app/vendor/ffmpeg --enable-libfdk-aac --enable-nonfree --enable-libx264 --enable-gpl
libavutil 54. 11.100 / 54. 11.100
libavcodec 56. 12.100 / 56. 12.100
libavformat 56. 12.103 / 56. 12.103
libavdevice 56. 2.100 / 56. 2.100
libavfilter 5. 2.103 / 5. 2.103
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
heroku run "ffprobe -version" -a projet-dev
Running ffprobe -version on ⬢ projet-dev... up, run.2357 (Hobby)
ffprobe version N-67574-g9d6ad68 Copyright (c) 2007-2014 the FFmpeg developers
built on Nov 12 2014 11:35:09 with gcc 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1)
configuration: --enable-static --disable-shared --disable-asm --extra-libs=-L/app/vendor/libs/lib --extra-cflags=-I/app/vendor/libs/include --prefix=/app/vendor/ffmpeg --enable-libfdk-aac --enable-nonfree --enable-libx264 --enable-gpl
libavutil 54. 11.100 / 54. 11.100
libavcodec 56. 12.100 / 56. 12.100
libavformat 56. 12.103 / 56. 12.103
libavdevice 56. 2.100 / 56. 2.100
libavfilter 5. 2.103 / 5. 2.103
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Все хорошо !
Отказ от ответственности
Этот код хорошо работает на другой платформе (обрабатывается kubernetes), поэтому может потребоваться некоторая корректировка с помощью heroku. Но не могу найти.
Почему возникает эта ошибка, поскольку в моей конфигурации нет ошибок? Что мне здесь не хватает?