使用gstreamer流式传输Logitech C920的视频和音频

时间:2014-05-06 21:52:36

标签: gstreamer gst-launch

我是使用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

1 个答案:

答案 0 :(得分:1)

在将视频与多路复用器相关联之前,您应对其进行编码。另外,我没有看到你声明你正在使用的多路复用器类型,也没有把音频放在多路复用器中。

我不确定甚至可以在gstreamer中以这种方式在同一rtp流上发送音频和视频。我知道gstreamer中的rtsp server implementation允许audio and video together,但即使在其中我也不确定它是否仍然是两个流,只是从实现中抽象出来。

您可能只想用来分隔流并将它们传递给gstrtpbin element