直播延迟相关的知识

https://www.processon.com/view/56ebb341e4b01c9aeb5f137f
https://github.com/ossrs/srs/wiki/v1_CN_LowLatency

延迟主要由推流延迟+gop延迟+网络延迟引起,其中gop特征和网络链路质量是两个关键因素;
GOP表示视频流中两个I帧的时间距离
解码器只有拿到GOP才能开始解码播放。对于在意首开延迟的客户:等待下一个I帧,才开始给客户端数据总是实时的流。问题是,等待的时间会黑屏;等待时间比较久;
关注流畅度的客户:从前一个I帧开始播放,问题是:延迟自然就大了,这一步引发的延迟在0~gop之间波动;当推流速度大于播放速度,服务器会累积数据,造成更大的播放延迟;

http://chenbowen.baijia.baidu.com/article/472127
http://news.zol.com.cn/581/5816631.html
在国内一般而言相同的接入运营商(电信、联通、移动)并且地理位置最近的情况网络延迟最优,小于15ms。跨省同运营商的网络延迟25~50ms,跨运营商情况更复杂一些,在50~100ms。总结起来,直播当中每个包的延时可以缩短100ms,由于网络的叠加效果,反射到上层是秒级的延迟缩减。

https://wuyuans.com/2012/08/flv-format/
先看flv格式,这个比较简单,rtmp确实复杂了一些

### 关于前端开发中的直播技术 在现代 Web 应用程序中,实时通信和流媒体传输变得越来越重要。以下是关于前端开发中涉及直播技术的一些核心知识点以及学习资源。 #### 1. 实时数据传输协议 WebSocket WebSocket 是一种支持全双工通信的协议,在浏览器与服务器之间建立持久连接,非常适合用于实现实时应用,比如聊天室、在线游戏或者视频直播。 可以参考尚硅谷的相关课程[^2],其中讲解了如何利用 Axios 进行前后端交互的基础知识,而这些技能同样适用于构建基于 WebSocket 的实时应用程序。 #### 2. HTML5 Media API 和 MSE (Media Source Extensions) HTML5 提供了一组强大的多媒体处理接口,允许开发者动态加载音视频内容并控制播放行为。MSE 扩展则进一步增强了这种能力,使得自定义流媒体播放成为可能。这对于实现低延迟的网络直播至关重要。 更多有关 HTML5 及其扩展特性的深入理解可以从基础学习类网站获取[^4]。 #### 3. HTTP 协议及其优化策略 掌握 HTTP/HTTPS 工作原理对于提升直播性能非常重要。例如,通过合理配置缓存头文件减少重复请求次数;采用分片下载方式加快初始缓冲速度等都是常用手段之一。建议先熟悉 ES6 新特性再逐步过渡到高级话题如服务端渲染 SSR 或者渐进式增强 PWA 架构设计等方面的知识点。 #### 4. 使用第三方 SDK 加速开发进程 目前市面上有许多成熟的开源框架可以帮助我们快速搭建起具备基本功能模块的应用原型版本出来测试验证想法可行性后再考虑后续迭代改进方向等问题解决方案架构图如下所示: ```javascript // 示例代码展示如何初始化 AgoraRTC Engine 并加入频道 const client = AgoraRtcEngine.createClient({ mode: 'live', codec: 'h264' }); await client.join(appId, channelName, null, uid); client.on('user-published', async (uid, mediaType) => { const remoteUser = await client.subscribe(uid, mediaType); }); ``` 上述片段演示了怎样借助声网Agora提供的JavaScript SDK完成简单的音视频通话逻辑编写过程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值