技术编程,网易|网易云信流媒体服务端架构设计与实现( 四 )
其次 , 需要制定一个合理的同步方案 , 即在白板录制文件和MP4文件里增加同步字段(NTP时间) 。每一个白板数据和视频帧都增加NTP时间 , 也就是基于NTP时间进行相应的同步 。但要解决NTP存放的问题 , 对于白板录制而言 , 因为白板录制文件是私有录制文件 , 只需要在TAG-HEADER字段里每个隔一个字段存放NTP这个时间的字段即可 。
对于实时音视频录制而言 , MP4或者FLV要基于H246一帧插入一个NAL-SEI , NAL-SEI的payload type要设置为5 , 在用户自定义数据里同样插入一个NTP字段 。MP4播放时间是基于MP4player的 , 无法控制其播放进度 , 所以整体的同步方案是基于白板播放时 , 实时的用位于同步时间轴上下的两个NTP进行校准 , 进行白板的加速播放或者慢播放 , 这样就可以做到音视频录制文件和白板录制文件同步回放的效果 。
视频会议传输质量控制
文章图片
文章图片
对于视频会议传输质量控制要从三个模块分析:一是第一公里接入;二是多流发布订阅机制;三是传输层上下行QoS策略 。
3.1 第一公里接入
文章图片
文章图片
第一公里接入主要采取两种方法:一是边缘加速代理和传输层路由策略结合 。二是进行网络探测和智能选路 。
3.1.1 边缘加速代理和传输层路由策略结合
文章图片
文章图片
第一公里接入模块的具体操作是 , 首先在基于现有的中转分发服务器集群覆盖的场景下 , 无法做到覆盖所有的地域、运营商 , 一些偏远地域或者运营商还是依赖于其他的云服务器厂商 , 并利用他们的节点进行就近接入 。
就近接入就是在云厂商的云主机上部署我们的代理服务器 , 代理服务器监管传输层的数据和PaaS传输层的协议 , 并获取下一跳地址 , 也就是用户就近把数据发送到第一跳加速节点上 , 加速节点进程接管传输层 , 由传输层的头部获取下一跳地址 , 再把数据抛给下一跳加速节点上 , 然后推送到中转分发服务器集群 , 并最终推送到实际的接收端 。
3.1.2 网络探测和智能选路
文章图片
文章图片
网络探测和智能选路方法的具体操作是:当用户发起接入时 , 会调度给它一组就近接入的节点 。节点的选取是在会话开始前和开始过程中都进行网络探测 , 并按一定频率的机制去发送探测数据包 。当节点接收探测数据包时会进行接收信息反馈 , 基于这些信息反馈将这次探测结果的丢包率、RTT、jitter、BW指标计算出来 , 基于这些指标进行评分 , 最终从调度基础的就近接入节点选取最佳的接入节点 。
3.2 多流发布订阅机制
文章图片
文章图片
多流发布订阅机制可以解决两个问题:一是用户可以根据自己的意愿或者能力进行下行接收;二是媒体处理服务器在进行下行QoS控制时会基于探测到的网络真实的带宽 , 帮助用户智能的选取可以接受的码流 。所以基于发布订阅机制可以做到两件事情:一是满足用户需求;二是做好传输质量 。
具体实现是在媒体服务器上有两个模块:一是媒体处理模块 , 二是Pub/Sub管理器 。用户发布流时会基于可靠信道 , 发布一条想要Pub流的信令给发布订阅管理器 , 发布订阅管理器会将所有用户的Pub列表广播到所有接收端 , 由所有的接收端根据需要通知发布订阅管理器订阅哪一条流 , 然后发布订阅管理器会将所有消息同步到媒体线程并进行下行转发的管理 , 这样就实现了发布订阅功能 。
推荐阅读
- 技术编程|后台权限管理设计思路:三种模型分析
- 技术编程|如何利用数据库进行世界史研究
- 青年|西安邮电大学与安康汉滨区深度合作,研发适合毛绒玩具全产业链实用技术
- 无人科技,电池技术|盘点几种常见的无人机电池
- 行业互联网|让青少年爱上科学 核桃编程AI人机双师模式受关注
- 技术编程|无服务器调研,部署REST API是最普遍用例
- 京东,折叠屏手机|围绕柔性屏的技术、特性、应用、产业化进行了非常专业的解读
- 云计算|腾讯云小微首次技术开放日,揭秘AI语音背后的奥秘
- iQOO手机|“快稳双全”!120W超快闪充技术炫技,十五分钟充满电量
- 驱动中国|国内首次应用!支付宝开放宠物鼻纹识别技术:猫狗都能买保险