python Gstreamer将视频逐帧保存为图片
将视频流保存为图片和播放视频的区别并不是很大,主要思路就是利用图片格式转换元件将原视频逐帧转换图片格式,利用multifilesink元件对图片进行接收存储。
元件连接如下:
src元件——>demux或depay元件——>decode元件——>图片格式转换元件——>接收元件
对于元件选择的说明:
src元件:
根据播放视频类型的不同选择不同的src元件(如本地视频使用filesrc,rtsp码流视频使用rtspsrc)。
demux或depay元件:
播放本地视频根据视频格式不同(mkv或mp4等)选择相应的demux分流元件,播放rtsp流视频根据视频的编码格式选择相应的depay解协议元件。
decode元件:
根据视频流编码格式的不同选择相应的decode解码元件。
图片格式转换元件:
这里使用的是jpegenc元件,将视频流中的图片转化为jpg的格式。
接收元件:
使用multifilesink元件,接收多个图片文件输出。可通过设置此元件的属性来设置保存图片文件的总量或每个文件之间的间隔,如可以设置非逐帧保存。
播放视频的代码详见我之前的博客。