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

本文介绍了V4L2和Gstreamer的结合使用,包括视频采集与预览、JPEG解码显示、ximagesink与xvimagesink的比较、autovideosink的应用、双摄像头拼接案例以及利用v4l2-ctrl抓取并转换原始图片。在Ubuntu 18.04上,提供了从源码和预编译包两种方式安装Gstreamer的指导。
最低0.47元/天 解锁文章
2565





