基于HLS实现实时流式转码、多码率自适应支持

如今,随着互联网带宽的不断提升,视频内容的分发与播放,在新闻娱乐、在线教育、社交网络和自媒体场景下越来越普遍。在满足成本预算的情况下、保证视频的快速分发与播放,也成了各家视频内容提供商不断优化的方向。如何节省带宽、快速分发视频内容、保证在网络不好的情况下流畅播放?

实时流式转码

  • 01

    目前国内外主流的基础音视频云服务,都是使用的异步转码模式,而异步转码有很多的问题。

  • 02

    异步转码通常要经过上传-转码-分发-播放的流程。使用异步转码,往往会给开发者和终端用户带来一定的局限性。

  • 03

    首先,视频转码需要一定时间,片源清晰度越高转码耗费的时间越是长久。异步转码方案决定了视频内容生产者必须要等待视频完全转码完毕后才能进行内容分发播放,这会为视频内容的生产和消费之间带来一定延迟效应。

  • 04

    其次,无论是开发者使用视频服务SDK轮询,或者自建回调服务接受回调结果,还是直接通过人工方式定期查询转码结果,都会给开发者带来一定的心智负担。同时,基础视频服务与上层业务产生了一定的耦合,任何使用变动都会影响上层业务。

  • 05

    再次,开发者需要预先设定转码参数,分辨率码率等相对固定。任何对转码参数的修改,都需要重新请求转码才能完成,无法由终端用户设置参数或者自适应用户请求场景。

  • 06

    此外,从业务上看,视频生产者无法预测视频播放情况,会有视频转码完却没有终端用户播发的情况,为此开发者需要付出多余的视频服务和存储花费。

  • 07

    针对上述异步转码的局限性,七牛推出了实时转码服务。与异步转码相比,实时转码仅需上传-分发-播放的流程,将转码和播放合二为一,即边转边播,按需转码。实时转码使用流媒体协议(目前支持HLS协议)进行网络分发,使用七牛多媒体处理服务进行分布式转码,使用七牛对象存储服务作为基础存储,结合七牛CDN服务进行网络加速,构建了完整的转码播放方案。

  • 08

    云端收到用户播放请求,读取源视频,根据播放参数将源视频快速分割成子视频分块,向多媒体处理集群分发任务,并生成相应的播放索引(如m3u8)返回给用户。并发执行的转码任务结果将缓存在云端,或者按用户需求进行持久化存储。通常,用户按照索引依次请求视频分块,按序播放;而当遇到快捷或者拖拽时间轴时,云端会相应进行实时加速转码和任务二次调度,降低用户播放卡顿。

  • 09

    七牛实时流式转码服务有如下优点: 视频生产者无须理解转码过程,无须等待转码任务完成,上传完视频后仅需按约定API协议编辑URL即可进行内容分发,转码参数直接包含在链接中。 开发者解耦视频转码服务和自身业务开发,降低心智负担,加速业务开发。 转码请求和播放请求合二为一。终端用户能够按需发起请求,所见即所得;视频生产者,仅需为热播视频付费,无需额外付出冷视频转码和存储成本。 音视频分段并行转码,使用大规模多媒体计算集群进行计算,让转码任务在云端可任意调度、迁移、扩展收缩,提高计算资源利用效率,降低成本。 实时转码播放请求延迟低,首屏快速打开,减少播放缓冲。

多码率自适应转码

  • 01

    在视频分发之前,由于各个终端(iOS、Android、PC端)的网络带宽、屏幕分辨率的不同,内容提供者会为不同的客户端生成固定码率的视频文件,这一定程度上保证了视频的流畅性,但是这会带来一定的问题。

  • 02

    由于端上播放的是某种码率的视频,在网络带宽、屏幕分辨率满足的情况下,用户无法选择更高清晰度的码率,没法为用户提供更好的播放体验。反之,如果网络质量不好,用户也无法切换到更低码率的视频,从而导致播放卡顿。

  • 03

    七牛多码率自适应转码 单码率视频无法应对客户端网络带宽环境的变化,提供给客户优质的播放体验,但是HLS多码率自适应特性正好解决了这一问题。

  • 04

    HLS(全称 HTTP Live Streaming),是由苹果公司提出的基于HTTP的流媒体网络传输协议。利用该协议,客户端可以接收持续的多媒体流来自于一个普通的web服务器。并且支持客户端在不同的网络带宽环境下,播放不同码率、分辨率的视频。

  • 05

    HLS的实现原理是把整个多媒体文件切成一个个小的基于HTTP的资源(MPEG-2 Transport Stream格式的文件),生成一个包含元数据的扩展 M3U (M3U8) Playlist 文件,每次只下载列表中的一些资源,客户端根据带宽环境可以选择不同的的资源。M3U8是一种播放多媒体列表的文件格式,可以指定一个或多个多媒体资源的位置,并且M3U8 Playlist 中可以包含多个子M3U8文件。

  • 06

    七牛官方提供的HLS多码率自适应功能,帮助客户从单一原视频,一步生成多码率自适应的多媒体文件,只需要提供原始资源和操作命令。实现原理如下图所示:

(0)

相关推荐

  • Windows下利用live555实现H264实时流RTSP发送的方案

    文如其名,最近在做的项目要求利用RTSP协议转发处理完的H264视频数据给上一层客户端,环境是Windows的VS2013,于是就各种百度谷歌找代码。结果在得到利用live555去做比较简单的结论的同 ...

  • 使用Windows Media Player流式传输到设备

    可以使用 Windows Media Player 将 Player 媒体库中的数字媒体流式传输到家庭网络上的设备和电脑。 例如,可以将电脑中的音乐流式传输到立体声或将视频和图片流式传输到电视。 开始 ...

  • 风行流式下载和非流式下载有什么不同

    风行传统的BT下载采用乱序下载方式,流式下载是顺序下载方式,要想边下边看,必须采用顺序下载的方式。如果仅仅是要下载文件,最好还是采用乱序下载方式,方法就是把流式下载钩掉即可。

  • Android流式布局如何实现历史搜索记录

    最近在开发项目的时候,有一个需求是展示历史搜索记录 ,展示的样式是流式布局(就是根据内容自动换行).在网上看到了一个不错的类库跟大家分享一下 首先在AndroidStudio简历一个工程项目导入mod ...

  • 如何开启win10电脑中的流式传输HDR视频

    今天给大家介绍一下如何开启win10电脑中的流式传输HDR视频的具体操作步骤.1. 首先打开电脑,进入桌面,点击左下角的开始图标2. 在打开的菜单中,点击左下方的齿轮图标,进入 设置3. 在打开的设置 ...

  • 如何启用Steam流式传输时限制下载功能

    Steam是现在非常流行的游戏平台,有些新用户不知道如何启用Steam流式传输时限制下载功能,接下来小编就给大家介绍一下具体的操作步骤.具体如下:1. 首先第一步根据下图所示,打开电脑中的[Steam ...

  • HTC One M7|801e基于最新CM的4.4源码制作

    操作方法 01 版本信息 ROM名称:HTC One M7|801e基于最新CM的4.4源码制作的,省电.流畅Android版本:4.4基于版本:基于最新CM源码编译ROM制作者:深度ROM组-ax9 ...

  • 支付宝刷码乘地铁出行支持哪些城市

    随着科技的大力发展,我们现在坐车出行越来越方便了,基本可以不用时时刻刻都需要携带零钱在身上了,比如你可以直接使用支付宝刷码乘地铁出行,可是你知道哪些城市支持支付宝刷码乘地铁出行吗? 操作方法 01 第 ...

  • 支付宝怎么领取点单码扫码点单并支持桌号

    在商家中比较实用的功能,比如:我们到饭店吃饭,在桌上通过扫码点单即可完成付款并等待食物被送上来,省去了告诉服务员我们需要吃什么和饭后付款的步骤,在一定程度上可以帮助商家解决很多问题和事情,那么怎么才能 ...