【问题标题】:How to stream video from webcam using Gstreamer?如何使用 Gstreamer 从网络摄像头流式传输视频?
【发布时间】:2014-07-23 02:22:03
【问题描述】:

如何使用 Gstreamer 从网络摄像头流式传输视频(如果可能还有音频)?我已经尝试stream video from source,但我无法从 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

【问题讨论】:

    标签: windows streaming video-streaming gstreamer audio-streaming


    【解决方案1】:

    您必须使用 GStreamer 1.3.90 或更高版本以及仅在该版本之后才可用的 ksvideosrc 元素。

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

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

    【讨论】:

    • 现在我没有PC,所以我无法检查是否可以不使用RTP,而是自己使用UDP。你能说说我的看法吗?
    • 你想通过原始 UDP 发送什么?哪种编解码器和容器格式?
    • 现在对我来说并不重要。我会尽量使用可用的。
    • 那为什么不用RTP呢?对于其他一切,它的工作方式基本相同,例如如果您想流式传输 MPEG TS,您可以这样做: ... ! x264enc ! h264解析! mpegtsmux! udpsink 主机=123.123.123.123 端口=4321
    • 好吧,我想我也可以试试RTP。该命令的thanx,如果我理解正确,它是一个发送命令,但我真的是gstreamer的新手,所以我需要一个完整的发送者和接收者命令。再次感谢!
    猜你喜欢
    • 2020-03-22
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多