Azure媒体服务 直播延迟的原因解析
2024-08-25 07:34:30
当我们使用媒体服务的直播功能,会发现有时候会有较大的延迟,而延迟的产生和客户端以及推送软件的配置也有关系,本文以Wirecast为例进行分析
- Encoder导致的延迟:在编码这一步骤的时候,它会消耗机器大量的CPU以及内存资源,如果您执行wirecast的那台电脑性能较低,这会导致较高的延迟;同时编码本身也是需要缓存数据并对其整理的过程,这一步本身也会产生延迟的。
- 网络延迟:摄入数据那段的带宽是可以支撑将所有的比特率请求,如果带宽不够,这也会导致一定的延迟。
- 处理采集的信息在内部的延迟:对于服务器来说,这个延迟是必需的。默认情况下,媒体服务通道配置接受每2秒一个关键帧的数据,而动态打包技术针对 HLS 输出采用 3 比 1 映射配置,也就是说,如果输入每 2 秒一个关键帧配置的数据,HLS 输出部分将是 6 秒(3 * 2 秒)
- 客户端相关的延迟:在播放的时候,客户端都会先需要几秒钟缓存一些数据,基本需要5秒左右的时间。
- 客户端的带宽:最终用户在观看的时候,如果本地带宽不佳,也会造成比较大的延迟
关于如何降低延迟,后台团队也有一些建议如下:
- 经过测试发现,使用MPEG-DASH比Smooth Streaming以及HLS的延迟都要低。
- 建议修改wirecast的相关参数,在您编码的配置界面,修改Frames per second和Key Frame的数值,使其关键帧的间隔降低(默认是2秒,Frames per second的含义是每秒帧数,Key frame every的含义是每隔多少帧插入一个关键帧)
- 参考文档
最新文章
- asp.net signalR 专题—— 第四篇 模拟RPC模式的Hub操作
- 【hihoCoder】1033: 交错和
- 2016HUAS_ACM暑假集训3F - Jungle Roads
- HDU 2795 Billboard(区间求最大值的位置update的操作在query里做了)
- shell的比较运算符
- Spring 在web 容器中的启动过程
- 说说lambda表达式与表达式树(未完)
- 解决vs2015使用fopen、fprintf等函数报错的问题
- Cookie中的三个容器request,session,application的设置和获取
- Android修改XML文件
- css table 布局
- strutsprepareAndExecuteFiter
- python爬虫之PyQuery的基本使用
- 【转】XSHELL下直接下载文件到本地(Windows)
- git杂记:忽略ssl认证
- causal snps | causal variants | tensorflow | 神经网络实战 | Data Simulation
- Centos7防范SYN
- CSS3标签显示模式
- Scribes:小型文本编辑器,支持远程编辑
- 用MyEclipse JPA创建项目(二)
热门文章
- Linux开机后 systemd 自动启动 ceph osd mon进程
- 54B
- EF(Entity Framework)发生错误”正在创建模型,此时不可使用上下文“的解决办法。 正在创建模型,此时不可使用上下文。如果在 OnModelCreating 方法内使用上下文或如果多个线程同时访问同一上下文实例,可能引发此异常。请注意不保证 DbContext 的实例成员和相关类是线程安全的。 临时解决了这个问题,在Context的构造函数中,禁用了自动初始化:
- 【转】Apache的Order Allow,Deny 详解
- Day_6作业_模拟人生
- cmd 利用IE打开网页
- 安装Mysql提示1045错误解决方法
- C#皮肤制作
- 使用dnsmasq来提升CentOS上网速度
- Cannot convert value of type [java.lang.String] to required type [java.util.Date] for property 'xxx': no matching editors or conversion strategy found