【点播】七牛点播HLS 思路

七牛点播HLS  思路


==我的博文相关链接 :(个人开源项目之一)

    

     dos命令行工具实现七牛云的空间备份和m3u8列表的备份与删除操作:



工具

  1.sewise-player开源播放器 (发觉sewise player的播放当带宽不足时,存在卡顿效果,建议可以用其他播放器进行开发)

  2.适配flash的配置crossdomain.xml

  3.java-qiniu SDK 


空间

   要求点1.该空间是点播类型,

         2.私有空间

         3.放置有crossdomain.xml的配置文件,已兼容浏览器使用flash播放

上传新的视频

   如果要将视频上传,需要

       1.使用fopsAPI实现转码先,加入七牛转码队列,生成需要的加密分片和m3u8文件

       2.查看控制台,假如该队列中该视频的转码完毕,(播放时候)则通过downloadAPI将存放在私有空间的链接鉴权拿到token 存放

Crossdomain的使用

<?xml version="1.0" encoding="utf-8"?>

<cross-domain-policy>

<allow-access-from domain="*.yourdomain"/>

<allow-http-request-headers-from domain="*.yourdomain" headers="*"/>

</cross-domain-policy>

Fop私有空间的转码规格

 

avthumb/m3u8/noDomain/1/vb/640k/hlsKey/xxxxxxxxQ1Ng

==/hlsKeyUrl/xxxxxxxxxxxxxxxxxxxxxxxxxxxxs

 

分片得到

#EXT-X-KEY:METHOD=AES-128,URI="http://domain/test/key",IV=0x9e7aaacac3e30732d4104caba7e9cff0

#EXTINF:41.400000,

/ElPSJkBWCffXykHUXYjBDg_ulrg=/lj3yTkLXOzp4wb5rm397sDhH2BLR/000000.ts

 

http://domian/test/key放在业务服务器中,这个地址不是七牛来访问的。 而是你的客户在访问这个视频的时候,从浏览器发起的请求。这样就需要你验证客户的身份了, 如果是非法用户就禁止其访问。

1. 、如果<HLSKey>的值为密钥明文的base64编码,那么<HLSKeyType>值为0或者不填;如果<HLSKey>的值为七牛公钥加密的密文,那么<HLSKeyType>值可以写1.0

2. <HLSKeyUrl>就填写密钥明文存放的地址,一般为你的业务服务器地址,通过业务服务器相关流程控制对这个url的访问权限。

总结:

3. 我建议加密的URL<HLSKeyUrl>不能放在七牛的公开或者私有空间里面,所以是没有限制的,什么用户都可以访问到,但我们应该将这个URL放到自己搭建的业务服务器上,比如,控制访问到这个URL必须输入一个秘钥才可以访问到,做cookie认证控制必须注册登录的用户才有权限访问到这个URL。

4. 其实m3u8是个列表文件,所有的原始视频文件都被下载到一个隐藏文件夹了。

5. 你点击m3u8文件就会自动把这些视频文件链接在一起播放,可以用notepad++打开m3u8文件查看内容,里面是一个个本地文件的链接,这些链接指向一个个小视频文件,也就是说你找不到原来下载这个文件的网址了。

6. 如果想直接播放完整的原始视频文件就要找到那个文件夹,里面的视频文件是一段一段的,要把这些小视频文件按m3u8文件里面的顺序用qq影音合并成一个完整的视频文件,然后就可以播放了。

7. 当然,如果删除了那个隐藏文件夹,那这个m3u8文件也就没用了,点击播放会提示解析失败。

8. 那个隐藏文件夹可以直接在m3u8里面看到位于哪里,是个.开头的隐藏文件夹。

节目的列表

   每个视频的链接都需要通过授权拿到视频的地址,含有时效。

后台接口需要

1 在某个视频已经转码完成的情况下(已经含有http://qiniudomain/xxxx),需要授权拿到指定的私有视频的授权地址pm3u8

2 经过AES128加密过后的视频,需要通过浏览器访问一个链接,该链接直接含有明文,该链接的获取需要经过业务服务器的鉴权。

 

 
转码视频:

1.存在转码队列 例如队列名字为testvideo

2.通过转码api 自定义加密的转码规格 m3u8分片列表+AES128、

譬如   

 String bucket = "空间名字";

  String key = "视频原名";

  //设置转码操作参数   

  //hlskey 指的是AES128或者base64url加密后的字符串 未加密前要为16位  hslkeyurl为访问原密的链接(经过base64url加密)

  String fops = "avthumb/m3u8/noDomain/1/vb/640k/hlsKey/MxxxxxxxxxzQ1Ng

==/hlsKeyUrl/aHxxxxxxxxxxxxxxxxxx4ua2V5";

授权链接

1.经过调用api获取私密空间的pm3u8的列表链接

2.通过浏览器调用AES的明文链接(验证获取)

 
防止录播

添加播放器显示用户名跑马灯,类似于腾讯课堂播放器中显示用户id一样。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值