в настоящее время я работаю над сценарием загрузки видео (на 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.
У вас есть идеи, как я могу исправить эту проблему?