【问题标题】:How to get encoded stream coming from UVC with Gstreamer on Windows如何在 Windows 上使用 Gstreamer 获取来自 UVC 的编码流
【发布时间】:2019-07-27 20:16:37
【问题描述】:
我想使用 Gstreamer 在 Windows 上获取来自罗技高清网络摄像头 (UVC) 的编码流。我知道在 Linux 上您可以通过 /dev/video1 等访问。
但是,我不知道如何在 Windows 上执行此操作。
我可以在 Windows 上通过 ksvideosrc 获取原始缓冲区,但这并不能解决我的问题。我必须得到硬件编码流。如果您知道除 Gstreamer 之外的任何其他库,请指导我。
我希望这样的输出,但适用于 Windows 版本。
gst-launch-1.0 v4l2src device=/dev/video0 !解码器! ximagesink
【问题讨论】:
标签:
windows
camera
video-streaming
gstreamer
uvc
【解决方案1】:
我为遇到此问题的人找到了解决方案。
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");
然后您将它们添加到管道中并链接它们。这样就可以了。
注意:如果相机不支持该分辨率和媒体类型,则会给出
streaming stopped, reason not-negotiated (-4)
错误。