我是使用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
答案 0 :(得分:1)
在将视频与多路复用器相关联之前,您应对其进行编码。另外,我没有看到你声明你正在使用的多路复用器类型,也没有把音频放在多路复用器中。
我不确定甚至可以在gstreamer中以这种方式在同一rtp流上发送音频和视频。我知道gstreamer中的rtsp server implementation允许audio and video together,但即使在其中我也不确定它是否仍然是两个流,只是从实现中抽象出来。
您可能只想用来分隔流并将它们传递给gstrtpbin element。