在使用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

其他参考