Ошибка при создании миниатюры видео в laravel

Я использую ffmpeg и https://github.com/pawlox/video-thumbnail для создания эскиза. Я уже установил ffmpeg и pawlox/video-thumbnail.

Вот мой код

VideoThumbnail::createThumbnail(url('/storage/app/accident_report_videos/ynvO5D9GzUJsLPj8vPlyiOEND0ag9MeFGr4NFu5k.mp4'), asset('thumbnAils'), '111.jpg', 2, 600, 600);

Ошибка:

error:getimagesize(http://54.255.240.102/storage/app/accident_report_videos/thumbs/ynvO5D9GzUJsLPj8vPlyiOEND0ag9MeFGr4NFu5k.jpg): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found

Путь к видео и путь к миниатюре являются правильными. Но он использует метод thumbnail в videothumbnail.php для создания эскиза. Эта функция генерирует миниатюру. Итак, после этого он вызывает resizeCropImage() функция, в которой они используют getimagesize() Funtion. А также getiamgesize() Функция не получает изображение, потому что оно никогда не генерируется.

1 ответ

Решение

Вы не хотите использовать url() здесь - он сгенерирует полный URL-адрес HTTP, что означает, что вашему серверу потребуется загрузить полный файл MP4 (который может быть гигабайтом!), чтобы сделать его снимок экрана.

(Ваш каталог хранения также обычно недоступен через HTTP...)

Использовать фактический путь через storage_path() помощник.

VideoThumbnail::createThumbnail(storage_path('app/accident_report_videos/ynvO5D9GzUJsLPj8vPlyiOEND0ag9MeFGr4NFu5k.mp4'), storage_path('app/accident_report_videos/thumbs'), '111.jpg', 2, 600, 600);
Другие вопросы по тегам