北京2016年10月24日电 /美通社/ -- 随着互联网带宽的不断提升,视频内容的分发与播放,在新闻娱乐、在线教育、社交网络和自媒体场景下越来越普遍。在满足成本预算的情况下、保证视频的快速分发与播放,也成了各家视频内容提供商不断优化的方向。为了帮助用户节省带宽、快速分发视频内容、保证在网络不好的情况下流畅播放,七牛数据处理产品推出了实时流式转码和多码率自适应转码这两个功能。
1. 实时流式转码
目前国内外主流的基础音视频云服务,都是使用的异步转码模式,而异步转码有很多的问题。
异步转码的问题
异步转码通常要经过“上传-转码-分发-播放”的流程。使用异步转码,往往会给开发者和终端用户带来一定的局限性。
首先,视频转码需要一定时间,片源清晰度越高转码耗费的时间越是长久。异步转码方案决定了视频内容生产者必须要等待视频完全转码完毕后才能进行内容分发播放,这会为视频内容的生产和消费之间带来一定延迟效应。
其次,无论是开发者使用视频服务 SDK 轮询,或者自建回调服务接受回调结果,还是直接通过人工方式定期查询转码结果,都会给开发者带来一定的心智负担。同时,基础视频服务与上层业务产生了一定的耦合,任何使用变动都会影响上层业务。
再者,开发者需要预先设定转码参数,分辨率码率等相对固定。任何对转码参数的修改,都需要重新请求转码才能完成,无法由终端用户设置参数或者自适应用户请求场景。
此外,从业务上看,视频生产者无法预测视频播放情况,会有视频转码完却没有终端用户播发的情况,为此开发者需要付出多余的视频服务和存储花费。
七牛实时流式转码
针对上述异步转码的局限性,七牛推出了实时转码服务。与异步转码相比,实时转码仅需“上传-分发-播放”的流程,将转码和播放合二为一,即边转边播,按需转码。实时转码使用流媒体协议(目前支持 HLS 协议)进行网络分发,使用七牛多媒体处理服务进行分布式转码,使用七牛对象存储服务作为基础存储,结合七牛CDN服务进行网络加速,构建了完整的转码播放方案。
云端收到用户播放请求,读取源视频,根据播放参数将源视频快速分割成子视频分块,向多媒体处理集群分发任务,并生成相应的播放索引(如 m3u8)返回给用户。并发执行的转码任务结果将缓存在云端,或者按用户需求进行持久化存储。通常,用户按照索引依次请求视频分块,按序播放;而当遇到快捷或者拖拽时间轴时,云端会相应进行实时加速转码和任务二次调度,降低用户播放卡顿。
七牛实时流式转码服务有如下优点:
2. 多码率自适应转码
单个码率视频分发的问题
在视频分发之前,由于各个终端(iOS、Android、PC 端)的网络带宽、屏幕分辨率的不同,内容提供者会为不同的客户端生成固定码率的视频文件,这一定程度上保证了视频的流畅性,但是这会带来一定的问题。
由于端上播放的是某种码率的视频,在网络带宽、屏幕分辨率满足的情况下,用户无法选择更高清晰度的码率,没法为用户提供更好的播放体验。反之,如果网络质量不好,用户也无法切换到更低码率的视频,从而导致播放卡顿。
七牛多码率自适应转码
单码率视频无法应对客户端网络带宽环境的变化,提供给客户优质的播放体验,但是HLS多码率自适应特性正好解决了这一问题。
HLS (全称 HTTP Live Streaming),是由苹果公司提出的基于 HTTP 的流媒体网络传输协议。利用该协议,客户端可以接收持续的多媒体流来自于一个普通的 web 服务器。并且支持客户端在不同的网络带宽环境下,播放不同码率、分辨率的视频。
HLS 的实现原理是把整个多媒体文件切成一个个小的基于 HTTP 的资源 (MPEG-2 Transport Stream 格式的文件),生成一个包含元数据的扩展 M3U (M3U8) Playlist 文件,每次只下载列表中的一些资源,客户端根据带宽环境可以选择不同的的资源。M3U8 是一种播放多媒体列表的文件格式,可以指定一个或多个多媒体资源的位置,并且 M3U8 Playlist 中可以包含多个子 M3U8 文件。
七牛官方提供的 HLS 多码率自适应功能,帮助客户从单一原视频,一步生成多码率自适应的多媒体文件,只需要提供原始资源和操作命令。实现原理如下图所示:
焦点新闻网免责声明:
凡本网注明 “来源:XXX(未知)等(非焦点新闻网)” 的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
如因作品内容、版权和其它问题需要同本网联系的,请在30日内与以下联系方式进行沟通:联系电话:15922557075(加微信请注明具体事宜)QQ:1579130097 邮箱:1579130097 @qq.com
如未与焦点新闻网本部进行有效沟通的事宜,本网将视同为未曾提前联系,并不能给予答复、解决。