【发布时间】:2021-09-19 09:28:24
【问题描述】:
我正在尝试设置 gstreamer 以在两个树莓派之间发送视频源,但出现错误。
-“无法解码流” -“接收缓冲区没有第一次接收上限”
这是我用来创建流的命令:raspivid -t 0 -h 720 -w 1080 -fps 25 -hf -b 2000000 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! udpsink host=YOUR_RPI_IP_ADDRESS port=5000
这是我用来尝试观看流的一个,并且给我一个错误:gst-launch-1.0 -v udpsrc port=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! fbdevsink sync=false
任何帮助将不胜感激,谢谢!
【问题讨论】:
-
我根本不知道
gstreamer,但在我未经训练的眼睛看来,您正在通过 TCP 进行传输,同时尝试通过 UDP 接收。我猜你的接收命令应该使用 TCP。我很可能是错的 - 但似乎没有其他人有任何想法,所以也许值得一试。 -
我在发这篇文章时犯了一个错误。在带摄像头的 pi 上,我使用的命令是 udpsink,而不是 tcp。我更新了帖子。我想我会尝试真正深入了解 gstreamer。这似乎很简单。关于字符串和流自动检测媒体的一些东西,或者我从互联网上收集到的东西。我见过一些人指定 CAPS 属性,这可能就是解决方案所在。
-
我无法想象它会工作,更不用说可靠了,使用 UDP 和 2MB 帧。
-
这是来自相机的比特率,然后被压缩成 h264,然后流式传输。至少据我了解。话虽这么说,你说的话是什么意思?我是 UDP 与 TCP 的新手。
-
TCP 是一种可靠的、按顺序的字节流。 UDP 不可靠、无序且基于单独的独立数据包 - 其中一些可能会丢失、重复或乱序到达。
标签: linux raspberry-pi video-streaming gstreamer h.264