У меня есть поиск по различным форумам и онлайн-ресурсам о том, как я могу использовать ffmpeg в своем приложении laravel 5.7 на общем хосте, но я не нашел никакого решения.Я фактически установил ffmpeg в свой проект, следуя инструкциям по этой ссылке Как установить FFMPEG в Laravel.
Я также загрузил двоичные файлы и сохранил их на свой локальный диск C: // inмоя система с операционной системой Windows 8.1.Затем я подключил свой бинарный файл, как показано ниже;
$ffprobe = FFMpeg\FFProbe::create([
'ffmpeg.binaries' => 'C:/FFmpeg/bin/ffmpeg.exe', // the path to the FFMpeg binary
'ffprobe.binaries' => 'C:/FFmpeg/bin/ffprobe.exe', // the path to the FFProbe binary
'timeout' => 3600, // the timeout for the underlying process
'ffmpeg.threads' => 12, // the number of threads that FFMpeg should use
]);
Я также установил путь в настройках системных переменных среды, и все отлично работало при обслуживании сайта с сервера XAMPP.
у меня проблема в том, что я загрузил проект на общий хост, к которому у меня нет доступа, чтобы проверить, есть ли на сервере ffmpeg или нет, и провайдер хоста не мог дать мне полезную информацию об этом.Итак, я загрузил двоичные файлы в папку моего файлового менеджера на cpanel и назвал ее «двоичные файлы».Затем я изменил свои коды, как показано ниже;
$ffmpeg = FFMpeg\FFMpeg::create([
'ffmpeg.binaries' => '/home/username/binary_files/bin/ffmpeg.exe', // the path to the FFMpeg binary
'ffprobe.binaries' => '/home/username/binary_files/bin/ffprobe.exe', // the path to the FFProbe binary
'timeout' => 3600, // the timeout for the underlying process
'ffmpeg.threads' => 1, // the number of threads that FFMpeg should use
]);
Но все равно я получаю ошибку, что Невозможно загрузить FFProbe, как показано в этом изображении из кода
public static function create($configuration, LoggerInterface $logger = null)
{
if (!$configuration instanceof ConfigurationInterface) {
$configuration = new Configuration($configuration);
}
$binaries = $configuration->get('ffprobe.binaries', array('avprobe', 'ffprobe'));
try {
return static::load($binaries, $logger, $configuration);
} catch (BinaryDriverExecutableNotFound $e) {
throw new ExecutableNotFoundException('Unable to load FFProbe', $e->getCode(), $e);
}
}
Главное, что я делаю в своем проекте, - это конвертирую видео в правильное закодированное потоковое видео, а также автоматически генерирую миниатюру .png или .jpg из видео во время загрузки.Так что в случае, если существует альтернатива, отличная от ffmpeg, для решения этой проблемы или кому-либо, кто использовал библиотеку ffmpeg в общедоступном общедоступном ранее, это должно помочь.Пожалуйста!