流媒体传输:降低延时和保证质量的全方位指南
创作时间:
作者:
@小白创作中心
流媒体传输:降低延时和保证质量的全方位指南
引用
CSDN
1.
https://blog.csdn.net/Alon1787/article/details/143572213
在流媒体传输过程中,降低延时和保证质量是两个核心目标。本文从采集、编码、传输、解码到渲染等多个环节详细介绍了降低延时的具体方法,并且还提到了提高质量的策略。
降低延时
流媒体传输涉及多个步骤,每一步都可能产生延时。因此,降低延时需要从多方面综合考虑,但同时也要注意避免影响画质。
采集方面
- 最好选择驱动摄像头,输出常用于编码的YUV420P格式
- 尽量减少或避免画面优化处理。如果必须优化,建议采用多线程处理
- 对于一些自动编码输出RTP/RTSP流的采集设备(如海康威视摄像头),如果不需要额外处理且追求低延时,可以直接使用,但可能成本较高
编码方面
- 优先选择硬件编码。如果是软件编码,可以设置为多线程编码
- 设置合适的编码参数:例如合适的码率、合适的profile、加快编码速度、减少或取消B帧、设置合适的QP量化值等
- 减少IDR帧和I帧间隔,确保IDR帧前都有SPS和PPS信息,以加快后续解析和解码速度
- 编码器设置低延时无缓存策略,例如X264编码器的zerolatency模式
图像处理
- 选择延时低且性能好的处理方法
- 利用GPU加速:例如图片的缩放、亮度调节、图片拼接等操作都可以通过OpenGL利用GPU实现
传输方面
- 选择合适的网络协议,避免使用高延时的协议。推荐使用RTP/RTSP/SRT/RTMP/WebRTC等协议,避免HTTP-FLV、HLS、DASH等高延时协议
- 优先选择基于UDP的协议,如果必须使用TCP,确保协议支持TCP/UDP传输切换(如RTSP)
- 选用良好的传输路径,有线传输优于无线
- 部署CDN以降低传输延迟,对于复杂网络需要优化交换机参数,组播时设置合适的TTL
- 优化网络环境,确保相关端口开放
解码方面
- 优先选择硬件解码。如果是软件解码,可以采用多线程
- 设置合适的解码参数
渲染方面
- 使用性能更好的渲染框架,如OpenGL,Linux下使用DRM/X11/Wayland等底层渲染,Windows使用Direct3D
- 将YUV和RGB的转换放在OpenGL中处理,利用GPU计算后直接渲染
- 确保CPU和GPU性能不受限(某些芯片会限制性能)
- 使用GStreamer时,建议添加sync=false参数,以避免缓冲问题导致的卡顿
其他策略
- 服务器关键帧缓存:缓存当前GOP的关键帧,新用户解析流时优先获取I帧,再获取当前时间的B/P帧,可以显著提高解析速度
- 推流端降低GOP间隔:缩短GOP时间,可以明显减少客户端首帧关键帧的等待时间
- 拉流端probesize调节:使用ffmpeg时,通过调节AVFormatContext.probesize长度和时间,优化解析接口延迟
- 解码端零延时无缓存策略:虽然可能影响画质,但可以进一步降低延时
- 主动丢帧或倍速播放策略:在网络状况不佳时,超过阈值就清空缓存或进行倍速播放,但需要注意音频变调问题,可以使用soundtouch或sonic等开源项目进行处理,同时确保视频跳到I帧,音频与视频对齐
提高质量
除了延迟,画质和音质也是衡量质量的重要指标。以下是一些提高质量的策略:
- NACK:通过丢包重传来解决丢包问题,但会增加延时
- FEC:通过冗余数据来解决丢包问题,但会增加带宽占用
- JitterBuffer:通过队列对接收到的数据进行缓冲,出队时均匀平滑地取出数据,解决视频的乱序与抖动问题
- NetEQ:类似JitterBuffer,专门用于解决音频的乱序与抖动问题
热门推荐
NE555制作交流随车充:低成本DIY教程
如何正确使用和维护马桶盖以确保卫生和舒适?这种维护方法有哪些注意事项?
招聘HR表情包的设计要点是什么?
如果朱砂没有毒,毒从何来?
怀孕六个月一直戴着朱砂
正月初七人日节:从女娲造人到现代餐桌
家庭网络设备升级指南:实现稳定高速上网的最佳实践
如何防止WiFi信号受到干扰和入侵?
萧太后与韩德让:一段跨越千年的传奇
诸葛亮为何未选择辅佐曹操:历史背景与个人抉择
你好,这里是江苏!| 南长街:坐拥运河水弄堂
诗词歌赋:传统韵味与现代情怀的融合共生
《重案六组》:季洁&老曾的角色魅力大揭秘
50G防晒霜一般能用多久
晒太阳是门“技术活”!这样晒既养生,又不会晒黑!
自然心理疗法 创造健康福祉 ——记中国科学院心理研究所张向阳教授
过去5年NBA总冠军球队实力排行分析
美媒预测西部各队进季后赛概率:两队100%,湖人90%,太阳仅3.5%
《这城有良田》势力克制关系全解析:五大阵容搭配攻略
线性代数:矩阵的零空间详解
线性代数:矩阵的四子大子空间 之 “零空间”
周最佳球员诞生,库里创神级纪录!湖人交易反转,NBA宣布新决定
NBA季前赛震撼瞬间:精彩复盘与赛季前景解析
“太上老君急急如律令”是啥意思?
揭秘奥特曼:从皮套到特效,一部特摄传奇的诞生
圆谷制作公司:奥特曼宇宙英雄的诞生地
圆谷株式会社揭秘:奥特曼宇宙英雄的发展史
各行积分换里程攻略:从农业到交通银行详细指南
明太祖朱元璋如何通过科举改革吏治?
明朝吏员选拔:从严格选拔到吏治腐败