如何使用 Gstreamer 在 Windows 上获取来自 UVC 的编码流
How to get encoded stream coming from UVC with Gstreamer on Windows
我想使用 Gstreamer 在 Windows 上获取来自罗技高清网络摄像头 (UVC) 的编码流。我知道在 Linux 上您可以通过 /dev/video1 等访问。
但是,我不知道如何在 Windows 上执行此操作。
我可以通过 Windows 上的 ksvideosrc 获取原始缓冲区,但这并不能解决我的问题。我必须获得硬件编码流。如果你知道任何其他图书馆而不是 Gstreamer,请指导我。
我期待这样的输出,但对于 Windows 版本。
gst-launch-1.0 v4l2src 设备=/dev/video0 !解码箱! ximagesink
我为遇到此问题的人找到了解决方案。
gst-launch-1.0 v4l2src device=/dev/video0 ! image/jpeg,width=1280,height=720 ! decodebin ! ximagesink
这将附加相机的编码流,并使用 decodebin 解码并将输出提供给 Window。如果你不写 image/jpeg 等,它会自动附加到相机的原始缓冲区。
在 C++ 代码中,
就像
GstElement* v4l2src = gst_element_factory_make("v4l2src","Source");
GstElement* srcFilter = gst_element_factory_make("capsfilter","Filter");
然后您将它们添加到管道中并 link 它们。这样就可以了。
注意:如果相机不支持该分辨率和媒体类型,它会给出
streaming stopped, reason not-negotiated (-4)
错误。
我想使用 Gstreamer 在 Windows 上获取来自罗技高清网络摄像头 (UVC) 的编码流。我知道在 Linux 上您可以通过 /dev/video1 等访问。 但是,我不知道如何在 Windows 上执行此操作。
我可以通过 Windows 上的 ksvideosrc 获取原始缓冲区,但这并不能解决我的问题。我必须获得硬件编码流。如果你知道任何其他图书馆而不是 Gstreamer,请指导我。
我期待这样的输出,但对于 Windows 版本。
gst-launch-1.0 v4l2src 设备=/dev/video0 !解码箱! ximagesink
我为遇到此问题的人找到了解决方案。
gst-launch-1.0 v4l2src device=/dev/video0 ! image/jpeg,width=1280,height=720 ! decodebin ! ximagesink
这将附加相机的编码流,并使用 decodebin 解码并将输出提供给 Window。如果你不写 image/jpeg 等,它会自动附加到相机的原始缓冲区。
在 C++ 代码中, 就像
GstElement* v4l2src = gst_element_factory_make("v4l2src","Source");
GstElement* srcFilter = gst_element_factory_make("capsfilter","Filter");
然后您将它们添加到管道中并 link 它们。这样就可以了。
注意:如果相机不支持该分辨率和媒体类型,它会给出
streaming stopped, reason not-negotiated (-4)
错误。