PtP(点对点)网络环境下RTSP流播放异常问题求助
问题:PtP网络下高延迟RTSP流播放异常
我的应用在PtP(点对点)网络环境下运行时,部分RTSP流播放异常,另一部分正常。排查后发现,正常流对应摄像头ping值约5ms,异常流对应摄像头ping值40ms以上,推测问题和高网络延迟相关,但未找到有效配置方案。
当前C#实现代码
public void ShowCamera() { string options = string.Empty; if (string.IsNullOrWhiteSpace(room.resolution) || room.resolution == "<unset>") { options = "?compression=30&fps=30&videocodec=h265"; } else { var res = Regex.Replace(room.resolution, @"\(.*\)", "").Trim(); options = $"?resolution={res}&compression=30&fps=30&videocodec=h265"; } outside_media = new Media(libvlc, "rtsp://root:root@" + room.outsideCamera + "/axis-media/media.amp"+options, FromType.FromLocation); outside_media.AddOption(":no-sout-rtp-sap" + ":no-sout-standard-sap" + ":sout-all" + ":sout-keep" + ":network-caching=150" + ":--file-caching=2000" + "rtsp-caching=200"); inside_media = new Media(libvlc, "rtsp://root:root@" + room.insideCamera + "/axis-media/media.amp"+options, FromType.FromLocation); inside_media.AddOption(":no-sout-rtp-sap" + ":no-sout-standard-sap" + ":sout-all" + ":sout-keep" + ":network-caching=150" + ":--file-caching=2000" + "rtsp-caching=200"); }
对比无问题的旧版Java代码
mediaPlayer.playMedia("rtsp://root:root@" + cameraIp + "/axis-media/media.amp" + options, ":no-sout-rtp-sap", ":no-sout-standard-sap", ":sout-all", ":sout-keep", "rtsp-caching=200");
已尝试的无效措施
- 添加
network-caching和file-caching配置 - 将编码从H264改为H265
可行优化方案
修正参数解析格式
C#代码中把所有参数拼接成单个字符串传递,容易导致LibVLC解析错误,且rtsp-caching=200缺少前置冒号、--file-caching格式不符合LibVLC参数规范。应改为逐个添加参数:outside_media.AddOption(":no-sout-rtp-sap"); outside_media.AddOption(":no-sout-standard-sap"); outside_media.AddOption(":sout-all"); outside_media.AddOption(":sout-keep"); outside_media.AddOption(":network-caching=500"); outside_media.AddOption(":file-caching=2000"); outside_media.AddOption(":rtsp-caching=500");提高缓存值适配高延迟
40ms以上的网络延迟,150ms的缓存不足以抵消波动,建议将network-caching和rtsp-caching同步提高到500ms~1000ms,给播放器足够缓冲空间。强制RTSP TCP传输
UDP在高延迟环境下易丢包,添加参数强制使用TCP模式,提升流稳定性:outside_media.AddOption(":rtsp-transport=tcp");移除冗余输出参数
如果无需流媒体转发,可移除sout-all和sout-keep参数,减少不必要的资源开销。
内容的提问来源于stack exchange,提问作者YvesT
相关产品推荐
相关产品推荐

