ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ZLMediaKit 播放器选 TCP 还是 UDP?3 步定传输协议完整指南

ZLMediaKit 播放器选 TCP 还是 UDP?3 步定传输协议完整指南 ZLMediaKit 播放器选 TCP 还是 UDP3 步定传输协议完整指南【免费下载链接】ZLMediaKitWebRTC/RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181/SRT/STUN/TURN server and client framework based on C11项目地址: https://gitcode.com/GitHub_Trending/zl/ZLMediaKit凌晨的监控画面突然卡住你第一反应是是不是该把传输从 TCP 换成 UDP在 ZLMediaKit 播放器里TCP 和 UDP一种不保证送达、但速度快的传输方式脾气完全不同。选错了要么画面卡要么满屏花。这篇文章带你 3 步定协议并给出最小配置改完就能落地。概念速览TCP 与 UDP 一问一答讲清问它俩最核心的差别是什么答TCP 是重的每个包都要确认保证送达但更慢。UDP 是快的发完不管不确认所以快但会丢包。一句话TCP 换可靠性UDP 换速度。问UDP 丢了包怎么办答UDP 自己不管交给上层补。ZLMediaKit 靠 NACK一种请再发一次的请求机制触发重传补不上就跳过那一帧表现就是偶尔花一下。TCP 则在底层自动重传补齐。问走哪种谁说了算答服务器可以强制指定也可以让客户端协商。ZLMediaKit 用一个开关控制见下文rtpTransportType。三步定协议按网络、场景、延迟偏好选第一步看网络环境。局域网、内网链路稳、丢包少优先 UDP。公网、弱网、丢包多优先 TCP。第二步看业务场景。实时监控、连麦、视频会议这类实时互动偏 UDP。点播、回看、画质敏感偏 TCP。GB28181 摄像头上行设备侧常用 UDP按设备手册走。第三步看质量与延迟偏好。能接受偶尔花屏、追求低延迟选 UDP。不允许花屏、能接受稍高延迟选 TCP。结论拿不准就先走 TCP。稳定后再切 UDP 试延迟别一上来就赌。最小可用配置3 步改 3 个参数全部改在 conf/config.ini。第 1 步定方向强制走 UDP。[rtsp] # 强制 RTP 走 UDP0TCP, 1UDP, 2组播, -1不限 rtpTransportType1第 2 步抗弱网放大 UDP 接收缓冲。[rtp] # UDP 接收缓冲字节默认约 4MB弱网可加大 udp_recv_socket_buffer8388608第 3 步稳 TCP调大保活超时。走 TCP 时用这条避免误判断连。[rtmp] # 保活超时秒数超时内无数据或发送缓存积压即断开 keepAliveSecond30验证与避坑确认 UDP 生效 3 个坑✅ 怎么确认配置已生效强制 UDP 后用ss -unlp看 10000~10999 区段的 UDP 端口是否在持续收发服务端日志也会出现 RTP over UDP 的字样。两者对上就说明真的走 UDP 了而不是停留在配置文件里。⚠️ 避坑清单切了 UDP 还花屏多半是公网丢包。别在公网硬上 UDP退回 TCP或保留 NACK 重传兜底。lowLatency开在 H264 多 slice 流上会花屏配置注释里明确提示了别乱开。组播MULTICAST只在同网段有效跨网段别选2。FAQ协议选择最常踩的 3 个坑问改rtpTransportType后老客户端能自动切过去吗答能。不匹配时服务器回 461客户端如 FFmpeg、VLC会自动重协商。纯浏览器 RTSP 不支持 UDP它走 WebRTC。问TCP 到底会不会丢包答传输层不丢但弱网下会重传、会积压表现是延迟升高而不是花屏。问GB28181 该选哪个答摄像头上行默认 UDP 居多按设备手册来。稳妥做法是先 TCP 验证链路再切 UDP 试。记住一句话内网求快选 UDP公网求稳选 TCP拿不准先从 TCP 起步。RTP 的 UDP 收发实现放在 src/Rtsp/ 下的 UDPServer想看细节可翻一下。想再压延迟可以转向 WebRTC基于 UDP 加重传下一篇《ZLMediaKit 低延迟直播配置从 WebRTC 到 rtp lowLatency》会继续讲。【免费下载链接】ZLMediaKitWebRTC/RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181/SRT/STUN/TURN server and client framework based on C11项目地址: https://gitcode.com/GitHub_Trending/zl/ZLMediaKit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表