我正在尝试将视频数据从Raspberry Pi Zero W流式传输到运行Windows 10的PC。我使用此视频作为我的来源:https://www.youtube.com/watch?v=lNvYanDLHZA这是我使用的代码(使用我的PC的实际IP地址)而不是10.30.0.0我假装在这里):
Raspberry Pi Bash脚本:
#!/bin/bash
clear
raspivid -n -t 0 -rot 270 -w 960 -h 720 -fps 30 -b 6000000 -o - | gst-launch-1.0 -e -vvvv fdsrc ! h264parse ! rtph264pay pt=96 config-interval=5 ! udpsink host=10.30.0.0 port=5000
Windows批处理脚本:
cd C:\gstreamer\1.0\x86_64\bin
gst-launch-1.0 -e -v udpsrc port=5000 ! application/x-rtp, payload=96 ! rtpjitterbuffer ! rtph264depay ! avdec_h264 ! fpsdisplaysink sync=false text-overlay=false
但是,运行此命令后,我的批处理脚本崩溃了。我得到的错误是在“gst-launch-1.0 -e -v udpsrc port=5000
”部分,它是:
错误:无法构造管道:语法错误
我有什么想法可以纠正这个问题?感谢
答案 0 :(得分:0)
我认为您需要对接收器管道进行一些小的更改,除非它在接收器中也能正常工作。
我还没有使用raspberry pi源测试,但我认为您的源管道是正确的。主要问题是,必须使用 caps 属性将大写放在 udpsrc 插件的源板上:
你的管道应该是这样的:
gst-launch-1.0 -v udpsrc port = 5000 caps =" application / x-rtp, media =(string)video,clock-rate =(int)90000, encoding-name =(string)H264,payload =(int)96" ! rtpjitterbuffer! rtph264depay! avdec_h264! 视频转换! fpsdisplaysink sync = false 文字重叠=假
如果管道不起作用,还可以考虑在 avdec_h264 之后添加 videoconvert 插件。如果你不知道哪个插件是必要的,你总是可以使用非常有用的 decodebin 。
您可以随时进行闭环测试,如下所示:
TX(与您的来源非常相似):
gst-launch-1.0 -e -v videotestsrc is-live=true ! x264enc bitrate=1000 tune=zerolatency ! h264parse ! rtph264pay pt=96 config-interval=5 ! udpsink host=10.30.0.0 port=5000
<强> RX:强>
gst-launch-1.0 -v udpsrc port=5000 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96" ! rtph264depay ! decodebin ! videoconvert ! autovideosink
答案 1 :(得分:0)
我找到了答案。我转到我的Windows命令提示符并键入 netstat-an |找到“UDP”|更
这提出了一个繁忙的UDP端口列表,我发现端口5000就是其中之一。所以我使用了不同的端口,我的视频流来了!!