今天和大家讲一下音视频视频直播技术架构技术架构之前的关注点主要放在客户端如何采集音频数据上,经过这两天的思考我觉得应该先给大家讲一下音视频视频直播技术架构技术架构,这样更容易从整体上理解视频视频直播技术架构技术是如何运转的之后再逐步的介绍每一个主题。
这种架构非常嘚简单利用已经有的CDN网络如阿里,帝联蓝讯等,自己再搭建一个信令服务器这样就将服务层搭建好了。
共享者首先向信令服务器发送共享音视频指令之后通过 Camera 或 摄像头采集数据,数据经编码后通过RTMP协议将流推送给CDN网络
接收端向信令服务器发指令,获取共享者共享嘚流名称然后通过流名称从CDN网络拉取音视频流,再经过解码后渲染在屏幕上
实时交互的音视频视频直播技术架构架构
这种架构与上一種比要复杂不少,其中最主要的差别是增加了自有网络客户端通过 UDP 进行数据传输,这样可以大大减少由于网络及CDN结构导致的音视频延迟問题
共享者共享音视频时,都是通过UDP协议上传到自有网络服务器上如果有其它参与人要与共享者进行实时互动,那么参与者也是通过UDP連接到自有网络这样才能达到实时互动的效果。
共享者的音视频数据上传到自有网络后还要通过专门的服务将数据流转成RTMP流推到CDN网络,这样对于大多数不参与时实互动的用户就可以从CDN获取数音视频数据了
这种架构既可以满足实时互动的需求,也可以满足大批用户只观看不互动的需求
为了解决实时互动大负载,高并发的问题需要增加资源管理服务器,实时监测各服务的资源第次当用户共享音视频時,资源管理器都可以分配最佳的服务器给共享用户使用并且服务器资源可以根据需要横向扩容。
注意 为了增加执行效率服务端基本嘟是用 C/C++ 程序编写。
实时互动视频直播技术架构是未来的视频直播技术架构趋势大看可以看一下我另一篇文章中的介绍。有了这个架构我們后面就可以逐步的给大家讲解每个主题如 Android、IOS、windows、mac下如何进行音视频数据采集,如何进行编码是采用硬编还是使用软编?它们各自有什麼优势,如何使用 opengl 进行渲染如何进行网络优化等等。
作者:音视频视频直播技术架构技术专家
简书著作权归作者所有任何形式的转载嘟请联系作者获得授权并注明出处。