当前位置: 首页 > news >正文

RTMP播放器延迟最低可以做到多少?

技术背景

RTMP播放器的延迟可以受到多种因素的影响,包括网络状况、推流设置、播放器配置以及CDN分发等。因此,RTMP播放器的延迟并不是一个固定的数值,而是可以在一定范围内变化的。

正常情况下,网上大多看到的,针对RTMP播放器的延迟在2秒到3秒左右。这是基于RTMP协议本身的特性和一般的推流、播放设置所得出的结论。然而,当网络状况不佳、推流设置不当或播放器配置不合理时,延迟可能会增加。

具体来说,RTMP播放器的延迟可能受到以下因素的影响:

  1. 网络状况:网络延迟和丢包是影响RTMP播放器延迟的重要因素。当网络状况不佳时,数据包传输的延迟会增加,从而导致播放延迟增大。
  2. 推流设置:推流端的设置,如编码器的配置、关键帧间隔(GOP)的设置等,都会影响推流的实时性和延迟。例如,降低GOP的值可以减少延迟,但可能会增加编码器的负担和压缩率。
  3. 播放器配置:播放器端的设置,如缓冲区的大小、播放模式的选择等,也会影响播放的延迟。例如,设置较小的缓冲区可以减少延迟,但可能会增加播放过程中的卡顿现象。
  4. CDN分发:CDN(内容分发网络)的引入可以加速内容的传输和分发,但CDN节点的选择和配置也会影响播放的延迟。

为了降低RTMP播放器的延迟,可以采取以下措施:

  • 优化网络状况,确保网络连接的稳定性和带宽的充足性。
  • 调整推流设置,如使用更高效的编码器、降低GOP的值等。
  • 配置播放器以使用较小的缓冲区或选择适合低延迟的播放模式。
  • 合理配置CDN节点,确保内容能够快速、稳定地传输到用户端。

需要注意的是,虽然可以通过上述措施来降低RTMP播放器的延迟,但完全消除延迟是不可能的。因为RTMP协议本身是基于TCP的,而TCP协议具有重传机制,当网络出现丢包时会自动重传丢失的数据包,这会增加一定的延迟。此外,由于视频数据的处理和传输需要一定的时间,因此即使在最理想的情况下,RTMP播放器的延迟也会存在一定的最小值。

综上所述,RTMP播放器的延迟可以控制在一定范围内,但具体数值会受到多种因素的影响。在实际应用中,需要根据具体情况进行配置和优化以达到最佳的播放效果。

RTSP延迟没法再低了?

实际上,2015年,我们开始做RTMP的推拉流技术方案的时候,我们也遇到了同样的问题,我们先是发布了RTMP推送模块,发现市面上的开源的能找到的RTMP播放器,延迟都满足不了我们期望的毫秒级水准,无法实现移动单兵或其他操控类的使用场景。

为此,我们着手开始了全自研框架的RTMP播放器模块,2015年底,我们发布的延迟,让行业内大跌眼镜,左侧是我们的Windows平台RTMP推送模块,采集毫秒计时器窗口,然后,推送到nginx rtmp服务器,然后,右侧是我们的播放器拉取rtmp流的整体时延,整体毫秒级。

经过持续迭代后的SmartPlayer,早已脱胎换骨,Windows、Linux(含x86_64|aarch64)、Android、iOS全平台支持。

  •  [多实例播放]支持多实例播放;
  •  [事件回调]支持网络状态、buffer状态等回调;
  •  [视频格式]支持RTMP扩展H.265和Enhanced RTMP H.265,H.264;
  •  [音频格式]支持AAC/PCMA/PCMU/Speex;
  •  [H.264/H.265软解码]支持H.264/H.265软解;
  •  [H.264硬解码]Windows/Android/iOS支持特定机型H.264硬解;
  •  [H.265硬解]Windows/Android/iOS支持特定机型H.265硬解;
  •  [H.264/H.265硬解码]Android支持设置Surface模式硬解和普通模式硬解码;
  •  [缓冲时间设置]支持buffer time设置;
  •  [首屏秒开]支持首屏秒开模式;
  •  [低延迟模式]支持低延迟模式设置(公网200~400ms);
  •  [复杂网络处理]支持断网重连等各种网络环境自动适配;
  •  [快速切换URL]支持播放过程中,快速切换其他URL,内容切换更快;
  •  [音视频多种render机制]Android平台,视频:SurfaceView/GLSurfaceView,音频:AudioTrack/OpenSL ES;
  •  [实时静音]支持播放过程中,实时静音/取消静音;
  •  [实时音量调节]支持播放过程中实时调节音量;
  •  [实时快照]支持播放过程中截取当前播放画面;
  •  [只播关键帧]Windows平台支持实时设置是否只播放关键帧;
  •  [渲染角度]支持0°,90°,180°和270°四个视频画面渲染角度设置;
  •  [渲染镜像]支持水平反转、垂直反转模式设置;
  •  [等比例缩放]支持图像等比例缩放绘制(Android设置surface模式硬解模式不支持);
  •  [实时下载速度更新]支持当前下载速度实时回调(支持设置回调时间间隔);
  •  [ARGB叠加]Windows平台支持ARGB图像叠加到显示视频(参看C++的DEMO);
  •  [解码前视频数据回调]支持H.264/H.265数据回调;
  •  [解码后视频数据回调]支持解码后YUV/RGB数据回调;
  •  [解码后视频数据缩放回调]Windows平台支持指定回调图像大小的接口(可以对原视图像缩放后再回调到上层);
  •  [解码前音频数据回调]支持AAC/PCMA/PCMU/SPEEX数据回调;
  •  [音视频自适应]支持播放过程中,音视频信息改变后自适应;
  •  [扩展录像功能]完美支持和录像SDK组合使用。

所以,我们可以有底气的说,在没测试过大牛直播SDK的SmartPlayer RTMP播放器之前,你甚至不相信行业内,RTMP播放器延迟可以稳定的做到毫秒级。全自研内核加持、功能齐全、高稳定、超低延迟、超低资源占用,得到了业内的一致认可。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【习题】Native适配开发
  • GPIO 简介(STM32F407)
  • 【达梦数据库】部署注意事项话术
  • 安卓玩机工具------vivo机型线刷救砖固件 下载工具操作步骤预览
  • Oracle SQL Developer:数据库开发与数据管理的利器
  • Java XML
  • 【Rust练习】12.枚举
  • dp算法练习【7】
  • 使用i2c子系统驱动i2c oled模块
  • 基于移动互联网的校内物业报修管理系统设计与实现(论文+源码)_kaic
  • FFmpeg读取文件列表
  • 【Android面试八股文】你能说说FragmentPagerAdapter 和 FragmentStatePagerAdapter的区别吗?
  • Go 语言的优势
  • Hash Table、HashMap、HashSet学习
  • nvm详细安装使用教程和详细命令,以及提示” ‘nvm‘ 不是内部或外部命令,也不是可运行的程序或批处理文件“处理办法
  • 收藏网友的 源程序下载网
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 77. Combinations
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • C语言笔记(第一章:C语言编程)
  • echarts的各种常用效果展示
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • python学习笔记 - ThreadLocal
  • Quartz初级教程
  • Shell编程
  • Vue小说阅读器(仿追书神器)
  • 分享几个不错的工具
  • 关于for循环的简单归纳
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 入手阿里云新服务器的部署NODE
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 为视图添加丝滑的水波纹
  • 在weex里面使用chart图表
  • 自定义函数
  • ​Java基础复习笔记 第16章:网络编程
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #宝哥教你#查看jquery绑定的事件函数
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (二)Linux——Linux常用指令
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (力扣)1314.矩阵区域和
  • (一)appium-desktop定位元素原理
  • .NET C# 配置 Options
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .Net中的集合
  • .net专家(高海东的专栏)
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [22]. 括号生成
  • [240607] Jina AI 发布多模态嵌入模型 | PHP 曝新漏洞 | TypeScript 5.5 RC 发布公告
  • [8] CUDA之向量点乘和矩阵乘法