阿里云OSS获取视频封面的最简单的办法
在视频的 URL 后面加上以下参数就可以了:
?x-oss-process=video/snapshot,t_1000,f_jpg,w_800,h_600,m_fast
完整的地址就是:
https://<bucket>.<endpoint>/<video>.mp4?x-oss-process=video/snapshot,t_1000,f_jpg,w_800,h_600,m_fast
各项参数含义:
t_<毫秒数>
指定截图时间点,t_1000
表示 在视频 第 1000 毫秒(1 秒) 截图。f_<格式>
指定输出图片格式,f_jpg
表示生成 JPG,同理f_png
表示生成 PNG,还支持f_webp
。w_<宽度>
输出图片的宽度(像素)。h_<高度>
输出图片的高度(像素)。m_<模式>
指定截图模式,m_fast
表示快速模式,取关键帧,速度快,但位置可能不完全精确,m_exact
表示精准模式,解码到指定时间点,截图更精确,但速度较慢,绝大部分场景下用m_fast
即可。
综上,?x-oss-process=video/snapshot,t_1000,f_jpg,w_800,h_600,m_fast
表示截取视频第1秒的画面,生成 JPG 格式图片,输出尺寸 800x600 像素,使用快速模式(关键帧附近)。
当然,你也可以只写最简参数,比如:
?x-oss-process=video/snapshot,t_2000,f_jpg
表示在第2秒截一张 JPG 图,不缩放。
云存储的出现确实解决了很多开发者的痛点。