对于大型音视频而言,完整下载后再播放会导致延时很大。针对这种应用场景,七牛云还提供对音视频进行切片存储的功能,目前已支持HLS(HTTP Live Streaming,Apple提出的基于HTTP的流媒体传输协议)。
本篇将解释如何使用音视频切片功能与如何保护切片内容。
■ 切片存储
七牛云通过在avthumb接口中提供m3u8指令实现HLS切片存储功能。
注意:avthumb接口是同步接口,如原资源过大将导致访问端超时返回。以下示例仅作为用法演示,强烈建议正式生产环境中使用预转持久化处理接口或触发持久化处理接口进行预处理,加快访问速度。
仍以美剧《黑名单》第1季第12集的预告片(flv资源)为例,在浏览器中打开如下URL:
http://developer.qiniu.com/samples/黑名单-S01E12.flv?avthumb/m3u8/segtime/10/preset/video_240k
则七牛云将对指定资源进行切片并返回相应的m3u8列表文件:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXTINF:11.000,
http://developer.qiniu.com/samples/%E9%BB%91%E5%90%8D%E5%8D%95-S01E12.flv?avthumb/m3u8/segtime/10/preset/video_240k@seg1
#EXTINF:10.000,
http://developer.qiniu.com/samples/%E9%BB%91%E5%90%8D%E5%8D%95-S01E12.flv?avthumb/m3u8/segtime/10/preset/video_240k@seg2
#EXTINF:8.267,
http://developer.qiniu.com/samples/%E9%BB%91%E5%90%8D%E5%8D%95-S01E12.flv?avthumb/m3u8/segtime/10/preset/video_240k@seg3
#EXT-X-ENDLIST
■ 私有m3u8授权
切片存储生成的各个片段资源将存储在与原资源相同的存储空间里。对于私有空间中的片段资源,必须进行下载授权方可访问,这就要求对m3u8文件里的每一个URL进行授权。七牛云提供pm3u8接口来实现这一功能。
假设已有如下m3u8文件(保存在私有空间中):
http://developer.qiniu.com/samples/live_net.m3u8
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:31
#EXTINF:30.826000,
http://developer.qiniu.com/samples/fop/av/live_00000_.ts
#EXTINF:30.826000,
http://developer.qiniu.com/samples/fop/av/live_00001_.ts
#EXTINF:30.826000,
http://developer.qiniu.com/samples/fop/av/live_00002_.ts
#EXTINF:30.826000,
http://developer.qiniu.com/samples/fop/av/live_00003_.ts
#EXTINF:30.826000,
http://developer.qiniu.com/samples/fop/av/live_00004_.ts
#EXTINF:30.826000,
http://developer.qiniu.com/samples/fop/av/live_00005_.ts
#EXTINF:30.827000,
http://developer.qiniu.com/samples/fop/av/live_00006_.ts
#EXTINF:30.826000,
http://developer.qiniu.com/samples/fop/av/live_00007_.ts
#EXTINF:30.827000,
http://developer.qiniu.com/samples/fop/av/live_00008_.ts
#EXTINF:25.149000,
http://developer.qiniu.com/samples/fop/av/live_00009_.ts
#EXT-X-ENDLIST
那么在浏览器中键入如下URL即可得到相应的授权m3u8文件:
http://developer.qiniu.com/samples/live_net.m3u8?pm3u8/0&e=1388734117&token=u8WqmQu1jH21kxpIQmo2LqntzugM1VoHE9_pozCU:sKjXkO59AxPtdaO2cEtWtiHmzdo=
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:31
#EXTINF:30.826000,
http://developer.qiniu.com/samples/fop/av/live_00000_.ts?e=1388773727&token=u8WqmQu1jH21kxpIQmo2LqntzugM1VoHE9_pozCU:qhXZvVauNafcUMoBeo4SkRWaWiw
#EXTINF:30.826000,
http://developer.qiniu.com/samples/fop/av/live_00001_.ts?e=1388773727&token=u8WqmQu1jH21kxpIQmo2LqntzugM1VoHE9_pozCU:h1Oy8oW7oAIOGWZP8QNVAPI82Vw
#EXTINF:30.826000,
http://developer.qiniu.com/samples/fop/av/live_00002_.ts?e=1388773727&token=u8WqmQu1jH21kxpIQmo2LqntzugM1VoHE9_pozCU:OQ6GMLEjFRnCAne9K9YU8-tXeIg
#EXTINF:30.826000,
http://developer.qiniu.com/samples/fop/av/live_00003_.ts?e=1388773727&token=u8WqmQu1jH21kxpIQmo2LqntzugM1VoHE9_pozCU:XWdLiYgUxNZbqikNLQ3joG3Mvhk
#EXTINF:30.826000,
http://developer.qiniu.com/samples/fop/av/live_00004_.ts?e=1388773727&token=u8WqmQu1jH21kxpIQmo2LqntzugM1VoHE9_pozCU:3EKOMwcqSUWsdap3SaY4l3RoaCg
#EXTINF:30.826000,
http://developer.qiniu.com/samples/fop/av/live_00005_.ts?e=1388773727&token=u8WqmQu1jH21kxpIQmo2LqntzugM1VoHE9_pozCU:j4uORlTKDBHk4Xwkv90eCM3I87U
#EXTINF:30.827000,
http://developer.qiniu.com/samples/fop/av/live_00006_.ts?e=1388773727&token=u8WqmQu1jH21kxpIQmo2LqntzugM1VoHE9_pozCU:tp7CjnEBGxGHkDbRqd8OehlGSno
#EXTINF:30.826000,
http://developer.qiniu.com/samples/fop/av/live_00007_.ts?e=1388773727&token=u8WqmQu1jH21kxpIQmo2LqntzugM1VoHE9_pozCU:QxYkdqWEAYj90kgX5jUPedFxXVo
#EXTINF:30.827000,
http://developer.qiniu.com/samples/fop/av/live_00008_.ts?e=1388773727&token=u8WqmQu1jH21kxpIQmo2LqntzugM1VoHE9_pozCU:MQ7EDzKP2f_EtpXq-maGr88mazA
#EXTINF:25.149000,
http://developer.qiniu.com/samples/fop/av/live_00009_.ts?e=1388773727&token=u8WqmQu1jH21kxpIQmo2LqntzugM1VoHE9_pozCU:jmx4dIZndnrNFqzLg72YZM-qtmY
#EXT-X-ENDLIST
注意:
- 就这个示例而言,因为m3u8资源本身处于私有空间中,其访问也需要有相应的独立下载授权;
- 目前仅支持批量授权,所有ts资源的URL都具有相同的授权截止时间。
■ 咱们行进到哪儿了?
经过三篇文章之后,读者应该了解并能独立使用七牛云的音视频处理功能,本指南将告一段落。
随着处理功能的增多,本指南还可能会追加相应内容,敬请期待!
七牛云存储 © 2014 署名-非商业性使用-禁止演绎
允许自由转载,请注明作者及出处。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。