互动直播系统设计文献综述
2020-04-30 16:13:56
随着互联网的发展和社会信息化的程度,互联网上的音频和视频越来越多,人们渐渐的从原来的看字、图片获取信息或者娱乐,变成看视频。在网络上传输音/视频等多媒体信息,主要有下载和流式传输两种方案。视频音频文件较大,下载常常要花数分钟甚至数小时,实时性差。流式传输时,音视频服务器向用户连续、实时传送,用户不必等到整个文件全部下载完毕,而只需经过很短时间即可进行观看,而且不需要太大的缓存容量。
直播是流媒体应用的一种流媒体,又叫流式媒体,是边传边播的媒体,是多媒体的一种。边传边播是指媒体提供商在网络上传输媒体的“同时”,用户一边不断地接收并观看或收听被传输的媒体。“媒体的传输就像“流”一样。网络直播是流媒体技术重要的应用,通过看网络直播,用户不需要出户,可以自己选择就能看到最新的自己喜欢的体育赛事、音乐会,看到没有彩排的其他人的生活,还有可以学习到一些其他人在某些领域的的技能,如远程教学,学生不再担心找不到好老师和去很远的地方补习,因为远程教学交流都是实时的,双方都能很好交流,还有一些不会做菜的或者喜欢吃的,可以看看别人的美食和主播实时交流,你就不会感觉枯燥和了解知识。现在还有公司招聘也会先通过网络直播宣传自己的公司,他们之所以选择线上直播,我想原因主要有以下几点,线上的宣传只要一个摄像头,网络和一个直播平台就可以了,在线下你要找场地和安排更多的人手安排秩序,其次网络直播面向的人多些,线下的场地有限,最后网络直播的交流也会比视频,线下好些,主办方可以听到更多人的声音,一些公司也会远程面试。重要的是你在看直播的时候可以和一同看直播的交流,直播的弹幕交流也是很有趣的,毕竟是这么多人的智慧。直播门槛低。一个摄像头一台有网络连接的电脑一个麦克风就可以进行网络直播。一部智能手机一个网络环境就可以进行手机直播。这些在生活中看似再平常不过的物件此时却成为网络直播的核心物品,所以直播很容易实现。
总结一下网络直播主要特点就是实时性强,交流强,人们可以利用网络直播转播赛事、活动,远程教育,网络招聘等,总之网络直播极大的方便了人们的生活,给我们的生活带来了很多乐趣。
目前的网络直播采用:音视频采集–gt;处理–gt;压缩编码–gt;封装–gt;推流–gt;流分发–gt;流播放。目前项目的编码格式定位最主流的h.264 aac的编码方案,h.264用的最多,编码最快,支持最好,还有h.265画质相同码率最低,省空间,专利很贵,对性能要求较高,兼容没有264好,vp8/9免费,功能一般。
推流的协议,基于tcp的rtmp和webRTC和基于udp的私有协议,RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等。RTMP是目前主流的流媒体传输协议,广泛用于直播领域,可以说市面上绝大多数的直播产品都采用了这个协议,这个协议CDN支持良好,协议简单,在各平台上实现容易;缺点基于TCP,传输成本高,在弱网环境丢包率高的情况下问题显著,Adobe私有协议,Adobe已经不再更新。WebRTC,名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准。优点:目前主要应用于视频会议和连麦中,W3C标准,主流浏览器支持程度高,Google在背后支撑,并在各平台有参考实现,底层基于SRTP和UDP,弱网情况优化空间大,可以实现点对点通信,通信双方延时低,缺点:ICE,STUN,TURN传统CDN没有类似的服务提供,基于UDP的私有协议,基于UDP做为底层协议开发自己的私有协议,因为UDP在弱网环境下的优势通过一些定制化的调优可以达到比较好的弱网优化效果,但同样因为是私有协议也势必有现实问题:优点:更多空间进行定制化优化,缺点:开发成本高,CDN不友好,需要自建CDN或者和CDN达成协议。
开源的流媒体体服务器:Red5流媒体服务器(Red5 Media Server),SRS流媒体技术,Live555流媒体,Nginx环境,非开源商用付费流媒体服务器: FMS流媒体服务器,WOWZA流媒体。
接收流媒体的协议,rtmp和http-flv:都是flv的格式,延迟都是2~4s,实时性都差不多,却别在于http是存储flv在客户端的,而rtmp是存储在服务器端的。hls:唯一一个支持h5播放的流媒体协议,延迟4~10s,格式是ts m3u8,观看的时候先把一组.ts视频下载,然后通过m3u8的索引去观看,因为要先下载一段(N个ts文件 一个m3u8文件),所以延迟和段数有关,实时性不会太好。HLS,是苹果公司实现的基于 HTTP 的流媒体传输协议,全称 HTTP Live Streaming,可支持流媒体的直播和点播,主要应用在 iOS 系统,为 iOS 设备(如 iPhone、iPad)提供音视频直播和点播方案。
互动直播系统简洁版结构图
图1互动直播系统简洁版结构图