在使用ffmpeg进行视频截图时,如果原始视频流的时间戳异常,可能会导致快速seek失效,需要做兼容性处理
关于ffmpeg seek的细节可以参考文档,语法上主要和ss参数的位置有关
快速截图
ffmpeg -ss 00:15:02 -i "http://living.suninf.net/live/xxx.m3u8" -vframes 1–f image2 1.jpeg
低速截图
如果出现报错,比如:Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)
需要做兼容性优化,走低速截图方案,通过把ss放在-i
输入之后,ffmpeg内部逐个遍历ts来进行seek(并兼容失败)
ffmpeg -i "http://living.suninf.net/live/xxx.m3u8" -ss 00:15:02 -vframes 1 2.jpeg