Получение ошибки «Ваша версия FFProbe слишком старая ...» в Laravel во время загрузки файла с помощью FFMpeg - PullRequest
0 голосов
/ 14 июля 2020

в настоящее время я работаю над сценарием загрузки видео (на S3) в Laravel. Я хотел бы получить некоторую информацию о загруженном видео, а позже я также хотел бы создать эскизы (с помощью этого плагина). В качестве первого шага я установил FFMpeg с помощью brew:

$ brew update
$ brew upgrade
$ brew cleanup
$ brew install ffmpeg --force
$ brew link ffmpeg

Затем в composer

$ composer require php-ffmpeg/php-ffmpeg

Когда я проверяю установку, я получаю следующее

which ffmpeg
/usr/local/bin/ffmpeg

which ffprobe
/usr/local/bin/ffprobe

Проверяя версию:

ffmpeg -version
ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
    built with Apple clang version 11.0.3 (clang-1103.0.32.62)
    configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3.1 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack
    libavutil      56. 51.100 / 56. 51.100
    libavcodec     58. 91.100 / 58. 91.100
    libavformat    58. 45.100 / 58. 45.100
    libavdevice    58. 10.100 / 58. 10.100
    libavfilter     7. 85.100 /  7. 85.100
    libavresample   4.  0.  0 /  4.  0.  0
    libswscale      5.  7.100 /  5.  7.100
    libswresample   3.  7.100 /  3.  7.100
    libpostproc    55.  7.100 / 55.  7.100

Путь тоже кажется нормальным

echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Но когда я пытаюсь загрузить видеофайл (пример. mp4) У меня появляется следующее сообщение об ошибке: Ваша версия FFProbe слишком старая и не поддерживает опцию -help, обновите ее.

Вот фрагмент моего кода для проверки загрузки:

    use FFMpeg;


    public function upload(Request $request)
    {
        if ($request->hasFile('files')) {
            $files = $request->file('files');
            foreach ($files as $key => $file) {
                $filename = pathinfo($file->getClientOriginalName(), PATHINFO_FILENAME);
                $extension = $file->getClientOriginalExtension();
                $filename = str_slug($filename).'.'.$extension;
                Storage::disk('s3Files')->put($filename, file_get_contents($file),'public');
                $fileurl = \Config::get('s3.files').$filename;

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

                $filesave = new File();
                $filesave->name = $filename;
                $filesave->type = $file->getClientMimeType();
                $filesave->size = $file->getSize();
                $filesave->duration = $ffprobe->format($fileurl)->get('duration');
                $filesave->save();

            }
        }
    }

Теперь я потратил часы, пытаясь найти решение (также проверяя эту ветку здесь, но я не смог решить проблему.

Моя среда разработки работает на Ma c OS X 10.15.5 с Nginx и PHP 7.4.

У вас есть идеи, как я могу исправить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...