深度解析 H.265 视频解决方案

又拍云 上线了 H.265 从编码解码到 CDN 分发,完整的端到端的自适应解决方案;提供视频上传、视频存储、视频编码、视频分发适配、视频解码等功能。又拍云希望能以云服务的方式将大公司才能长期支付使用的 H.265 提供给更多企业。

视频网站支持 H.265 需要解决哪些问题?

深度解析 H.265 视频解决方案_第1张图片
H.265与 H.264 相比,拥有 2 倍的压缩效率 (photo via WWDC)

更高的压缩率需要更先进的技术,H.265 通过更智能的算法来处理图像,在维持质量的同时保持更低的比特率,但是也要付出一定代价:显著增加压缩效果,所依赖的算法复杂性,需要数倍于目前 2K 分辨率部署所用 H.264 编解码器的计算能力来支撑,而提供这种能力需要大量的服务器来支撑。

除此外,鉴于有些客户端不支持 H.265 视频,还需要 对客户端进行有效识别,响应不同副本的视频给客户端。

又拍云 H.265 视频自适应方案

又拍云 H.265 视频自适应方案集成了视频上传、视频存储、视频编码(转码)、视频分发适配、视频解码等功能。

  • 视频上传转码:使用又拍云存储,可以满足视频上传加速、转码、存储的需求。在使用云存储的基础上,用户选择将上传的 H.264 编码的视频,同步转为 H.265 编码的视频存储;

  • 视频异步转码:针对已存储在又拍云上的 H.264 编码的视频,通过又拍云异步转码服务,可转为 H.265 视频存储,同时保留 H.264 视频副本;

  • H.265分发适配:在又拍云 CDN 层面提供 H.265 分发适配功能,可对不同的客户端进行智能识别,在用户访问时响应不同的编码的视频资源。

CDN 如何识别 H.265 视频请求 ?

CDN 当前识别客户端是否支持 H.265 解码是通过 HTTP 请求头:Accept-Encoding: h265 来判断的,CDN 收到该请求之后,再去判断 CDN 节点是否有 H.265 缓存副本,否则直接返回原始视频资源。

从流程图可以看出,H.265 视频资源响应了一个 Content-Encoding:h265 的头部。

深度解析 H.265 视频解决方案_第2张图片
H.265 视频资源访问流程

深度解析 H.265 视频解决方案_第3张图片
• 第一步:客户端请求 H.265 视频资源,例如:http://video.example.com/test...,HTTP 请求头携带 Accept-Encoding: h265,方便 CDN 智能识别;

• 第二步:CDN 节点判断是否有 H.265 视频副本,如有,则直接响应给客户端,整个流程结束;如果没有,则进入第三个步骤;

• 第三步:CDN 节点回源获取 H.265 视频资源,如有则直接响应,并在 CDN 节点进行缓存;如果没有,进入第四步;

• 第四步:源站返回原始视频资源,并在 CDN 节点默认缓存 6 分钟,缓存过期之后回源探测。

如何接入又拍云 H.265 视频服务

场景一:使用又拍云存储

使用又拍存储源,可以满足视频上传加速、视频转码(包括编码)、视频的存储等需求。如果您的视频已经转成 H.265 编码的视频,请忽略视频转码步骤。

  1. 视频上传和存储

又拍云对象存储服务提供 API、FTP/FTPS、UPX、cURL、SDK 等多种上传方式,支持海量安全存储,更多了解请参考:又拍云存储服务介绍,又拍云存储开发者开发者工具

  1. 视频异步转码

如果您存在又拍云对象存储服务的原始视频是 H.264 编码的视频,与此同时,希望同步转为 H.265 的视频,我们可以提供异步视频转码服务。详细参见:又拍云音视频处理服务

  1. 视频分发适配

从上文可以看出,您可以在又拍云对象存储服务上存储两个不同副本的视频资源,一个是 H.264 视频副本,这里称为原始视频;另外一个是 H.265 视频副本,这样可以满足不同客户端的访问。您既希望支持 H.265 视频的客户端可以访问到 H.265 视频,不支持 H.265 视频的客户端可以访问到原始视频副本,此时,通过一定的约定规范,CDN 可以做到智能识别并响应不同副本的视频资源。

  1. 移动端 SDK 解码

又拍云目前支持移动端 H.265 解码,支持iOS和Android平台。详细参见:Android SDK 和 iOS SDK

场景二:使用又拍云CDN(用户自主源)

使用用户自主源,又拍云无需提供视频文件的存储,用户自行将视频转为 H.265 编码格式,自行上传即可。我们可以提供的服务包括适配分发适配、移动 SDK 解码。

直接使用又拍云 CDN 服务需遵循一定的规范:

HTTP 请求头

客户端需要根据约定规范发起 Accept-Encoding: h265 的请求头,CDN 节点会根据此请求头来判断客户端是否支持 H.265 解码。详细参见上文:CDN 如何识别 H.265 视频请求。例如:

GET /test.mp4 HTTP/1.1

Host:http://zhangchao.charmelady.net

User-Agent: curl/7.43.0

Accept: /

Accept-Encoding:h265

H.265 视频存储规范

源站为了区分原始视频和 H.265 格式视频,H.265 视频存储路径需要约定规范为:URL.h265,以此来区分原始视频和 H.265 视频。例如:

原始视频存储路径为:/test.mp4H.265 视频存储路径为:/test.mp4.h265

推荐阅读:

让Chrome看不了WWDC直播的HLS技术详解

IPv6启动五年后,距离我们究竟还有多远?

你可能感兴趣的:(h.265,cdn)