【点播】七牛点播HLS思路

    xiaoxiao2025-08-01  6

    七牛点播HLS  思路

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

        

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

        http://blog.csdn.net/qq_14997169/article/details/53027412

    工具

      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一样。

    转载请注明原文地址: https://ju.6miu.com/read-1301274.html
    最新回复(0)