我是使用gstreamer的新手。我想将视频和音频从我的C920网络摄像头流传输到另一台PC,但是组合时我总是出错。
现在,我可以使用以下方法将h264视频从C920流式传输到另一台PC:
gst-launch-1.0 v4l2src device=/dev/video1 ! video/x-h264,width=1280,height=720,framerate=30/1 ! h264parse ! rtph264pay pt=127 config-interval=4 ! udpsink host=172.19.3.103
并使用以下命令查看它:
gst-launch-1.0 udpsrc port=1234 ! application/x-rtp, payload=127 ! rtph264depay ! avdec_h264 ! xvimagesink sync=false
我还可以从C920中获取音频,并将其与测试图像一起记录到文件中:
gst-launch videotestsrc ! videorate ! video/x-raw-yuv,framerate=5/1 ! queue ! theoraenc ! queue ! mux. pulsesrc device="alsa_input.usb-046d_HD_Pro_Webcam_C920_F1894590-02-C920.analog-stereo" ! audio/x-raw-int,rate=48000,channels=2,depth=16 ! queue ! audioconvert ! queue ! vorbisenc ! queue ! mux. oggmux name=mux ! filesink location=stream.ogv
但是我正在尝试使类似的东西(如下)起作用。.这个不起作用,想必这是我做的一个非常糟糕的组合!
gst-launch v4l2src device=/dev/video1 ! video/x-h264,width=1280,height=720,framerate=30/1 ! queue ! mux. pulsesrc device="alsa_input.usb-046d_HD_Pro_Webcam_C920_F1894590-02-C920.analog-stereo" ! audio/x-raw-int,rate=48000,channels=2,depth=16 ! queue ! audioconvert ! queue ! x264enc ! queue ! udpsink host=127.0.0.1 port=1234
在将视频链接到多路复用器之前,应先对视频进行编码。另外,我看不到您在声明使用的混合器类型,也没有将音频放入混合器中。
我不确定在gstreamer中以这种方式甚至可以通过相同的rtp流发送音频和视频。我知道gstreamer中的rtsp服务器实现允许音频和视频在一起,但是即使在其中,我也不确定是否只是从实现中抽象出了两个流。
您可能只想用来分隔流并将它们传递给gstrtpbin元素。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句