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

GStreamer构建RTP发送端传输H264/AAC报错,求修正方法

问题修正方案

错误原因分析

  1. 命名引用错误:你将mp4mux命名为mp4,但后续引用时误写为mp40.,导致GStreamer无法找到对应的sink元件,触发No sink-element named "(null)"错误。
  2. 管道逻辑错误:rtph264pay仅能处理H264裸码流,而mp4mux输出的是封装后的MP4容器流,两者不兼容,会导致链路无法正常工作。

修正方案

根据你的需求选择以下两种方案之一:

方案1:分别传输H264视频与AAC音频RTP流(双UDP端口)

如果需要独立传输音视频RTP流,直接去掉mp4mux,分别对音视频做RTP打包:

gst-launch-1.0 -e -vv \
v4l2src device=/dev/video0 ! videoconvert ! queue ! openh264enc ! h264parse ! rtph264pay ! udpsink host=127.0.0.1 port=5003 \
autoaudiosrc ! queue ! audioconvert ! audioresample ! avenc_aac ! aacparse ! rtpaacpay ! udpsink host=127.0.0.1 port=5004
  • 视频流通过5003端口发送,音频流通过5004端口发送,接收端可分别解析两个RTP流。

方案2:封装为MP4后通过RTP传输(单UDP端口)

如果需要将音视频封装为MP4再用RTP发送,需修正命名引用并替换为适配MP4流的rtpmp4pay元件:

gst-launch-1.0 -e -vv \
v4l2src device=/dev/video0 ! videoconvert ! queue ! openh264enc ! h264parse ! mp4. \
autoaudiosrc ! queue ! audioconvert ! audioresample ! avenc_aac ! aacparse ! mp4. \
mp4mux name=mp4 ! rtpmp4pay ! udpsink host=127.0.0.1 port=5003
  • 修正了mp4mux的引用(mp4.而非mp40.),使用rtpmp4pay处理MP4容器流的RTP打包。

内容的提问来源于stack exchange,提问作者R.A.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 02:22:33