跳帧是视频流处理中, 跳过一些帧不处理.
为什么跳帧
一个是设备性能低, 无法实时处理视频流, 导致任务堆积, 造成程序报错无法运行. 例如在分析RTSP视频流的时候, AI推理太慢, 导致视频流接收堆积, 程序报错.
一个是减少设备运行负载, 可以运行更多的任务. 例如某些任务不需要每帧图片进行分析, 通过跳帧既符合需求, 也不浪费设备资源.
跳帧原理
如果是N
帧中取一帧, 可以通过总帧数对N
取余, 判断余数是否等于零, 如果等于则取该帧.
如果是每隔N
帧取一帧, 也是同理, 通过总帧数对N+1
取余, 判断余数.
如果是M
分钟取N
帧, 也是同理, 需要先获取FPS
也就是每分钟的帧数, 公式为总帧数 % (M * FPS / N)
.
实现
1 | import cv2 |