在 laravel 中生成视频缩略图时出错

Error while generating video thumbnail in laravel

我正在使用 ffmpeg 和 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

视频路径和缩略图路径都正确。但它是使用 videothumbnail.php 中的缩略图方法来创建缩略图。此函数正在生成缩略图。所以在那之后它调用 resizeCropImage() 函数,他们在其中使用 getimagesize() 函数。并且 getiamgesize() 函数无法从中获取图像,因为它从未生成过。

您不想在此处使用 url() - 它将生成完整的 HTTP URL,这意味着您的服务器将不得不 下载 完整的 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);