v4l2和gstreamer,这两个优秀框架走到一起,会碰撞出什么样的火花呢?就让我我来做一回月老吧。
1.视频采集,预览. 基于(ximagesink/xvimagesink/glimagesink)应用
这个应用从/dev/video0节点抓取实时流并送给video sink显示。
gst-launch-1.0 v4l2src ! videoconvert ! ximagesink
gst-launch-1.0 v4l2src ! videoconvert ! xvimagesink
gst-launch-1.0 v4l2src ! videoconvert ! glimagesink
2.jpeg解码后显示
与上面不同的是,这个用例抓取的是MJPEG的码流,解码成YUV后送显.
gst-launch-1.0 v4l2src ! jpegdec ! xvimagesink
对比上面两幅图,camera输出的格式是不同的,第一张图是video/raw YUV格式的输出,而下面第二张图却是MJPEG格式的图片输出。这恰好也是摄像头支持的。
3.ximagesink VS xvimagesink.
gst-launch-1.0 v4l2src device=/dev/video0 ! videoconvert ! ximagesink
gst-launch-1.0 v4l2src device=/dev/video0 ! videoconvert ! xvimagesink