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

GStreamer接收MPEG TS时出现CONTINUITY错误的原因及解决方法

修复方案

针对这些问题,咱们可以从管道结构、容错配置、缓冲优化三个方面入手:

1. 修正管道结构,分别处理音视频流

手动拆分音视频分支,给音频流分配对应的RTP打包器(比如rtpL16pay对应PCM音频),避免音频流无处理路径的问题。示例管道:

gst-launch-1.0 -v udpsrc address=127.0.0.1 port=1200 ! application/x-mpegts ! tsdemux ignore-continuity-errors=true name=demux \
demux. ! queue ! h264parse ! avdec_h264 ! videoconvert ! rtpvrawpay ! rtpbin.send_rtp_sink_0 \
demux. ! queue ! mpegaudioparse ! avdec_mp2float max-error-delta=100 ! audioconvert ! audioresample ! rtpL16pay ! rtpbin.send_rtp_sink_1 \
rtpbin.send_rtp_src_0 ! udpsink host=127.0.0.1 port=2250 \
rtpbin.send_rtp_src_1 ! udpsink host=127.0.0.1 port=2251

2. 启用TS解复用器的容错参数

给tsdemux添加ignore-continuity-errors=true参数,让它忽略连续性不匹配的错误,继续处理后续数据包,避免因为少量丢包直接中断整个管道。

3. 给解码器添加容错配置

给音频解码器avdec_mp2float设置max-error-delta=100(数值可以根据实际情况调整),允许解码器跳过一定数量的错误数据,继续解码,避免局部错误导致解码器崩溃。

4. 增加队列缓冲缓解网络抖动

在每个音视频处理分支前添加queue元素,为数据流提供缓冲空间,应对UDP传输的网络抖动,减少丢包对后续解码环节的影响。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 18:32:36