以下是我正在尝试的内容:
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。
有没有人对此有所了解?
答案 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