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

SRT推流失败:遭遇Unsupported timestamp reference clock错误及FIXME日志

解决RTSP转SRT推流的GStreamer播放问题

问题重现

执行以下GStreamer管道尝试将RTSP源转SRT推流:

gst-launch-1.0 --gst-debug=3 rtspsrc location="rtsp://admin:admin@localhost/live.sdp" short-header=TRUE name=demux demux. ! rtph265depay ! queue ! video/x-h265 ! mpegtsmux name=mux1 ! srtsink uri=srt://:8888 demux. ! queue ! rtpmp4adepay ! aacparse ! mux1.

运行后出现大量FIXME日志,且VLC无法播放推流内容。

日志分析

大部分FIXME日志属于GStreamer元素的非致命开发提示,不直接导致播放失败:

  • 随机stream-id提示:fakesrc元素的内部实现细节,不影响功能
  • rtpjitterbuffer时钟提示:RTSP源时钟格式未被完全支持,可通过配置缓解
  • rtph265depay的DONL提示:源流未携带DONL字段,元素默认兼容处理,无需修改
  • srtsink的group-id提示:上游元素未实现group-id,不影响流传输

真正导致播放失败的原因是流格式兼容性问题和传输配置缺失。

修改后的推流管道

gst-launch-1.0 --gst-debug=3 rtspsrc location="rtsp://admin:admin@localhost/live.sdp" latency=200 do-retransmission=true name=demux \
demux. ! application/x-rtp,media=video,encoding-name=H265 ! rtph265depay ! h265parse ! queue ! mpegtsmux name=mux1 \
demux. ! application/x-rtp,media=audio,encoding-name=MPEG4-GENERIC ! rtpmp4adepay ! aacparse ! queue ! mux1. \
mux1. ! srtsink uri=srt://:8888 latency=200 sync=false

关键修改点说明

  1. RTSP源优化:
    • 添加latency=200:设置接收延迟,适配RTSP流的网络波动
    • 添加do-retransmission=true:启用RTSP重传,减少丢包
  2. 明确RTP caps过滤:
    • 给视频/音频流添加精准的RTP格式过滤,避免元素自动协商出错
  3. 视频流补全解析:
    • 插入h265parse:将RTSP解封装后的H.265裸流转换为mpegtsmux兼容的标准比特流格式
  4. SRT传输配置:
    • 添加latency=200:匹配RTSP接收延迟,保证流同步
    • 添加sync=false:关闭硬同步,避免时钟不兼容导致的播放卡顿/无画面

VLC播放配置

确保VLC已安装SRT插件(如Ubuntu下执行sudo apt install vlc-plugin-srt),然后使用以下命令播放:

vlc srt://@:8888

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 14:54:24