视频直播CDN技术实现方案.docx

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
视频直播CDN技术实现方案一起扫个盲通常我们所说的视频,是指连续的图象变化每秒超过24帧(Frame)画面以上时,根据视觉暂留原理,人眼无法辨别单幅的静态画面,看上去是平滑连续的视觉效果,这样连续的画面叫做视频。而媒体转码是指将一段多媒体包括音频、视频或者其他的内容从一种编码格式转换成为另外一种编码格式。其中内容分发网络就是大家常说的CDN,这里主要包含流媒体服务器,负载均衡,路由重定向,视频转码,视频录制存储,防盗链,性能等相关技术内容。下面这几个词我们也经常遇到码率是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。 通俗一点的理解就是取样率, 单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件,但是文件体积与取样率是成正比的,所以几乎所有的编码格式重视的都是如何用最低的码率达到最少的失真。但是因为编码算法不一样,所以也不能用码率来统一衡量音质或者画质。另一个常见的词是帧,它是一段数据的组合,它是数据传输的基本单位。就是影像动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头。一帧就是一副静止的画面,连续的帧就形成动画,如电视图像等。与之相对应的帧率,即每秒显示帧数,帧率表示图形处理器处理场时每秒钟能够更新的次数。高的帧率可以得到更流畅、更逼真的动画。一般来说30fps就是可以接受的,但是将性能提升至60fps则可以明显提升交互感和逼真感,但是一般来说超过75fps一般就不容易察觉到有明显的流畅度提升了。如果帧率超过屏幕刷新率只会浪费图形处理的能力,因为监视器不能以这么快的速度更新,这样超过新率的帧率就浪费掉了。这里阙寒想带我们再展开聊一下视频帧音频帧一般可以独立解码,可以直播播放。而视频分为视频关键帧和非关键帧,关键帧可以独立解码渲染,播放器拿到后可以直接看到画面,一般10K以上甚至几十K;其他非关键帧解码依赖于前面的一些视频帧,播放器会根据前面的帧和这一帧来解码产生画面,非关键帧一般大小是几K甚至不到1K。对于播放器来说,服务器一般会从视频关键帧开始发送,这样才不会产生花屏。对于节点上直播服务器存储的内容,如果是文件加速,节点上存储的内容很明确,就是文件数据, URL不变的话文件数据内容也不变。但是对于直播来讲,传输的就是帧数据,缓存的也是不断变化的帧序列数据。下面的图里我们可以看到,当前的服务器缓存了V1-V3五帧数据,当V4这个关键帧出现了,服务器把之前的丢掉,开始缓存V4开始的音视频数据,以这个策略保证过来的播放端都是当前最新的数据。一般直播服务器都是用这个策略来进行服务器缓存的。下面进入正题,常见的CDN加速包括文件加速、点播、直播三种业务。最开始阿里云CDN是从文件加速开始,针对的主要是内部客户,像淘宝,它的图片非常多,那时候支持的都是小文件加速。后来随着各BU的端产品衍生,逐渐会支持大的文件下载业务;等阿里云CDN正式作为产品上线商业化时候,开始支持点播业务。2015年下半年,开始支持直播业务。今天阙寒主要从直播概述、直播架构、业务功能和场景来介绍下阿里云CDN直播系统。直播概述通常,视频直播常见两种形式是手机直播和游戏直播,手淘、陌陌、映客的典型的手机直播平台,游戏直播就是像斗鱼、全民TV等平台。其实对于播放端来讲,直播和点播都是向服务器获取视频数据,播放端对声音和画面进行播放的过程。从这个角度来讲,直播和点播区别并不大。那直播和点播究竟区别在哪里?对于视频点播,你在看的时候,你可以随时选择快进和回退。直播却不能。对于视频网站上的视频文件来讲,点播可以选择今天看或明天看,但是直播却不能选择时间,像每周末的联赛只在固定的时间播放。一些机顶盒提供回看的功能,也是点播。所以回归正题,简而言之,直播就是每一帧数据打上时序标签后进行流式传输的过程。发送端源源不断的采集音视频数据,经过编码、封包、推流、再经过分发网络进行扩散传播,播放端再源源不断地下载数据并按时序进行解码播放。如此就产生了边生产、边传输、边消费的直播过程。我们将视频直播整个流程主要分为几个关键阶段:视频采集、前处理、编码、推流、转码、分发、播放,下图为简化版直播系统的基本架构,后面我们再详细展开。1. 采集,是视频直播开始的第一个环节,用户可以通过不同的终端采集视频,也就是主播直播的过程。iOS端适配性较好,采集起来比较简单。Android端因为一直以来市面机型多版本复杂种种情况,加大了一个库适配所有硬件的难度,采集起来相对比较困难。PC端则和摄像头驱动联系紧密,目前市面上最好的PC端源免费软件是OBS。2. 前处理,业内有一种说法,80%的主播没有美颜根本没法看。所以美颜已经是对视频源进行前处理的标配功能,除此之外还有水印、模糊特效等,针对不同的手机系统提供不同的处理库。3. 编码,编码时候我们需要处理的硬

文档评论(0)

智慧IT + 关注
实名认证
内容提供者

微软售前技术专家持证人

生命在于奋斗,技术在于分享!

领域认证该用户于2023年09月10日上传了微软售前技术专家

1亿VIP精品文档

相关文档