又拍云上线了 H.265 从编码解码到 CDN 分发,完整的端到端的自适应解决方案;提供视频上传、视频存储、视频编码、视频分发适配、视频解码等功能。又拍云希望能以云服务的方式将大公司才能长期支付使用的 H.265 提供给更多企业。
视频网站支持 H.265 需要解决哪些问题?
更高的压缩率需要更先进的技术,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 视频资源访问流程
• 第一步:客户端请求 H.265 视频资源,例如:http://video.example.com/test.mp4,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 等多种上传方式,支持海量安全存储,更多了解请参考:又拍云存储服务介绍,又拍云存储开发者开发者工具
2. 视频异步转码
如果您存在又拍云对象存储服务的原始视频是 H.264 编码的视频,与此同时,希望同步转为 H.265 的视频,我们可以提供异步视频转码服务。详细参见:又拍云音视频处理服务
3. 视频分发适配
从上文可以看出,您可以在又拍云对象存储服务上存储两个不同副本的视频资源,一个是 H.264 视频副本,这里称为原始视频;另外一个是 H.265 视频副本,这样可以满足不同客户端的访问。您既希望支持 H.265 视频的客户端可以访问到 H.265 视频,不支持 H.265 视频的客户端可以访问到原始视频副本,此时,通过一定的约定规范,CDN 可以做到智能识别并响应不同副本的视频资源。
4. 移动端 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