繁体   English   中英

如何使用Gstreamer从网络摄像头流式传输视频?

[英]How to stream video from webcam using Gstreamer?

如何使用Gstreamer从网络摄像头流式传输视频(如果可能,还可以传输音频)? 我已经尝试过从源流式传输视频 ,但是我无法从Windows上的网络摄像头流式传输视频。 我该怎么做?


客户:

    VIDEO_CAPS="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H263-1998"
DEST=localhost
VIDEO_DEC="rtph263pdepay ! avdec_h263"
VIDEO_SINK="videoconvert ! autovideosink"
LATENCY=100
gst-launch -v gstrtpbin name=rtpbin latency=$LATENCY                                    \
           udpsrc caps=$VIDEO_CAPS port=5000 ! rtpbin.recv_rtp_sink_0                   \
             rtpbin. ! $VIDEO_DEC ! $VIDEO_SINK                                     \
           udpsrc port=5001 ! rtpbin.recv_rtcp_sink_0                                   \
           rtpbin.send_rtcp_src_0 ! udpsink host=$DEST port=5005 sync=false async=false

服务器:

DEST=127.0.0.1
VOFFSET=0
AOFFSET=0
VELEM="ksvideosrc is-live=1"
VCAPS="video/x-raw,width=352,height=288,framerate=15/1"
VSOURCE="$VELEM ! $VCAPS"
VENC="avenc_h263p ! rtph263ppay"
VRTPSINK="udpsink port=5000 host=$DEST ts-offset=$VOFFSET name=vrtpsink"
VRTCPSINK="udpsink port=5001 host=$DEST sync=false async=false name=vrtcpsink"
VRTCPSRC="udpsrc port=5005 name=vrtpsrc"
gst-launch gstrtpbin name=rtpbin
            $VSOURCE ! $VENC ! rtpbin.send_rtp_sink_2
          rtpbin.send_rtp_src_2 ! $VRTPSINK 
              rtpbin.send_rtcp_src_2 ! $VRTCPSINK
            $VRTCPSRC ! rtpbin.recv_rtcp_sink_2

您将必须使用GStreamer 1.3.90或更高版本,以及只能从该版本开始使用的ksvideosrc元素。

然后您就可以像输入其他任何内容一样对它进行流传输了……详细信息取决于要使用的编解码器,容器格式,流传输协议和网络协议。 音频也是如此,基本上与视频完全相同。

http://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/tests/examples/rtp在这里,您可以找到一些使用RTP进行流式传输的示例。 服务器端和客户端示例,仅音频,仅视频或两者。 而且还可以从真实的音频/视频捕获源中流式传输(尽管对于Linux,但是在Windows上,其工作原理完全相同...仅与Windows特定的元素相同)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM