通过UDP使用gstreamer进行网络摄像头流媒体

时间:2011-10-06 00:32:12

标签: gstreamer

以下是我正在尝试的内容:

gst-launch -v udpsrc port=1234 ! fakesink dump=1

我测试:

gst-launch -v audiotestsrc ! udpsink host=127.0.0.1 port=1234

一切正常,我可以看到来自audiotestsrc

的包裹

现在让我们使用网络摄像头来源进行测试:

gst-launch -v v4l2src device=/dev/video0 ! queue ! videoscale method=1 ! "video/x-raw-yuv,width=320,height=240" ! queue ! videorate ! "video/x-raw-yuv,framerate=(fraction)15/1" ! queue ! udpsink host=127.0.0.1 port=1234

没有任何反应,转储中没有包裹。

以下是服务器中详细显示内容的logdump

有没有人对此有所了解?

3 个答案:

答案 0 :(得分:18)

尝试这些(您可能必须为此安装gstreamer-ugly插件)

从网络摄像头传输UDP流(通过网络传输)

gst-launch v4l2src device=/dev/video0 ! 'video/x-raw-yuv,width=640,height=480' !  x264enc pass=qual quantizer=20 tune=zerolatency ! rtph264pay ! udpsink host=127.0.0.1 port=1234

从网络摄像头收到的UDP流(通过网络接收)

gst-launch udpsrc port=1234 ! "application/x-rtp, payload=127" ! rtph264depay ! ffdec_h264 ! xvimagesink sync=false

<强>更新

要确定流端的有效负载,只需使用gst-launch -v ...

的详细选项

答案 1 :(得分:4)

也许数据包对于udp来说太大了?它们仅限于64K。尝试将帧大小调整到非常小的尺寸,以检查这是否是原因。如果是这样,您可能会对某些压缩和付费加载器/ depayloader(gst-inspect | grep pay)感兴趣。

答案 2 :(得分:0)

gstreamer1-1.16.0-1.fc30

gst-launch-1.0 -v filesrc位置= / ... / ... / ... / sample-mp4-file.mp4! qtdemux! h264parse!排队! rtph264pay config-interval = 10 pt = 96! udpsink端口= 8888主机= 127.0.0.1

https://en.wikipedia.org/wiki/RTP_audio_video_profile