You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派4无法通过gStreamer接收树莓派3B的视频流问题

问题解决思路及方案

核心原因

"not-negotiated (-4)"错误本质是GStreamer管道中前后元素的视频格式不兼容。Windows端的GStreamer会自动处理格式适配,但树莓派4的视频输出组件对格式要求更严格,且你的接收命令缺少必要的格式转换环节,同时RTP流的参数也未明确指定,导致协商失败。

修正后的接收端命令

尝试以下几种修改后的命令,按顺序测试:

方案1:添加格式转换并补全RTP参数

export DISPLAY=:0
gst-launch-1.0 -v udpsrc port=5600 ! application/x-rtp, payload=96, media=video, clock-rate=90000, encoding-name=H264 ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false
  • videoconvert:负责将解码后的视频格式转换为树莓派sink支持的格式
  • 补全RTP的clock-rate和encoding-name参数:避免自动协商时的参数缺失
  • sync=false:关闭同步,进一步降低延迟同时避免同步逻辑导致的协商问题

方案2:指定树莓派专用视频输出组件

如果方案1无效,尝试显式指定适合树莓派的sink(适配X11环境):

export DISPLAY=:0
gst-launch-1.0 -v udpsrc port=5600 ! application/x-rtp, payload=96, media=video, clock-rate=90000, encoding-name=H264 ! rtph264depay ! avdec_h264 ! videoconvert ! ximagesink sync=false

方案3:使用树莓派硬件加速解码

利用树莓派的硬件解码模块替代软件解码,提升效率同时解决格式兼容问题:

export DISPLAY=:0
gst-launch-1.0 -v udpsrc port=5600 ! application/x-rtp, payload=96, media=video, clock-rate=90000, encoding-name=H264 ! rtph264depay ! v4l2h264dec ! videoconvert ! autovideosink sync=false

补充说明

测试命令videotestsrc ! autovideosink能正常工作,是因为videotestsrc默认输出的是树莓派sink直接支持的视频格式,无需额外转换;而H264解码后的格式(通常是YUV420P等)与树莓派屏幕的输出格式不匹配,必须通过videoconvert做格式适配。

内容的提问来源于stack exchange,提问作者Aninano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 12:55:34