将 v4l2loopback 和 GStreamer 与 MJPEG 相机一起使用
Using v4l2loopback and GStreamer with MJPEG cameras
我有一台 4k 相机,有 MJPEG 和 YUY2 格式。目前,我可以 运行
$ gst-launch-1.0 v4l2src device=/dev/video1 ! "video/x-raw,format=YUY2,width=640,height=480,framerate=30/1" ! tee name=t ! queue ! v4l2sink device=/dev/video20 t. ! queue ! v4l2sink device=/dev/video21
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
并将 video1
图像流式传输到两个不同的设备。
问:如何将 MJPEG 图像从 video1
传递到 video20
和 video21
,它们采用 YUY2
格式。
在 MJPEG 的情况下,您需要向 v4l2src 添加 image/jpeg
个大写字母。在 v4l2src
之后,您需要将其转换为原始视频。
Gstreamer 有 jpegdec
和 avdec_mjpeg
插件。在我当前的版本中 jpegdec
不支持 YUY2
输出,所以我会使用 avdec_mjpeg
。或者,您可以将 jpegdec
与 videoconvert
一起使用(即 ... ! jpegdec ! videoconvert ! ...
)。
下面一行应该可以做到:
gst-launch-1.0 v4l2src device=/dev/video1 ! "image/jpeg,width=3840,height=2160,framerate=30/1" ! avdec_mjpeg ! "video/x-raw,format=YUY2,width=3840,height=2160,framerate=30/1" ! tee name=t ! queue ! v4l2sink device=/dev/video20 t. ! queue ! v4l2sink device=/dev/video21
我有一台 4k 相机,有 MJPEG 和 YUY2 格式。目前,我可以 运行
$ gst-launch-1.0 v4l2src device=/dev/video1 ! "video/x-raw,format=YUY2,width=640,height=480,framerate=30/1" ! tee name=t ! queue ! v4l2sink device=/dev/video20 t. ! queue ! v4l2sink device=/dev/video21
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
并将 video1
图像流式传输到两个不同的设备。
问:如何将 MJPEG 图像从 video1
传递到 video20
和 video21
,它们采用 YUY2
格式。
在 MJPEG 的情况下,您需要向 v4l2src 添加 image/jpeg
个大写字母。在 v4l2src
之后,您需要将其转换为原始视频。
Gstreamer 有 jpegdec
和 avdec_mjpeg
插件。在我当前的版本中 jpegdec
不支持 YUY2
输出,所以我会使用 avdec_mjpeg
。或者,您可以将 jpegdec
与 videoconvert
一起使用(即 ... ! jpegdec ! videoconvert ! ...
)。
下面一行应该可以做到:
gst-launch-1.0 v4l2src device=/dev/video1 ! "image/jpeg,width=3840,height=2160,framerate=30/1" ! avdec_mjpeg ! "video/x-raw,format=YUY2,width=3840,height=2160,framerate=30/1" ! tee name=t ! queue ! v4l2sink device=/dev/video20 t. ! queue ! v4l2sink device=/dev/video21