如何使用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
答案 0 :(得分:2)
您必须使用GStreamer 1.3.90或更新版本以及仅在该版本之后可用的ksvideosrc元素。
然后你可以像其他任何输入一样流式传输......细节取决于你想要使用的编解码器,容器格式,流协议和网络协议。音频也是如此,它与视频基本完全相同。
http://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/tests/examples/rtp 在这里,您可以找到一些使用RTP进行流式传输的示例。服务器端和客户端示例,仅音频,仅视频或两者。并且还从真实的音频/视频捕获源流式传输(对于Linux而言,但在Windows上它的工作方式完全相同...只是针对Windows的特定元素)。