直播项目技术备忘

YYT直播项目技术记录

  1. 如何做好全屏交互体验
  2. VideoView内存泄漏
  3. VideoView播放RTMP和HLS(m3u8)格式
  4. VideoView播放加密HLS(m3u8)格式
  5. VideoView播放离线HLS(m3u8)格式
  6. VideoView通过LocalServer播放本地离线HLS(m3u8)格式
  7. 每个视频都有自己的m3u8解密Key
  8. 视频安全防护
  9. 视频安全更改LocalServer的HostName为127.0.0.1
  10. 视频安全-解密操作封装到SO(JNI)层
  11. 视频安全-在SO内部对签名进行校验
  12. 视频安全更改JavaLocalServer(NanoHTTPD)改为NativeLocalServer(mongoose)
  13. 在更改为NativeLocalServer时,由于在编译NDK时使用的时’std=C99’标准和mongoose自身的一些问题,导致了4.0-4.4的手机出现兼容问题,无法运行。

    解决过程中所查文章:

    1. http://www.zhihu.com/question/20845153
    2. http://www.open-open.com/solution/view/1319209398468
    3. http://stackoverflow.com/questions/26104489/java-lang-unsatisfiedlinkerror-native-method-not-found
    4. http://seshadripera.blogspot.com/2013/04/javalangunsatisfiedlinkerror-native.html
    5. http://tools.android.com/tech-docs/new-build-system/gradle-experimental
    6. 等等,最后完美解决
  14. 在解决NativeLocalServer的4X兼容问题后发现5.1.1等手机出现’UnsatisfiedLinkError …file dex’的问题,最后发现是由于classpath 'com.android.tools.build:gradle-experimental:0.7.0-rc1' 这个插件所引起的,在0.7版编译后无法生成64位的so文件,所以使用Eclipse编译就可以了。
  15. 再对视频流进行深度加密是使用到了whitecryption两个产品SCP和SKB。其中在Android JNI中碰到一些神坑。

    1. 关于whitecryption两个产品SCP和SKB的使用版本,请访问:https://support.whitecryption.com/register, 需要进行注册(最好使用贵司的邮箱)。
      相关文档可请访问: http://www.whitecryption.com/overview/, 白皮书之类的可能需要注册被approve之后才可以下载。

    2. 注册提交之后,我的同事会在后台审核,然后我会请他们尽快批准你们的账号。 再之后,您就可以申请SCP和SKB的使用SDK了,届时,需要您来选择具体的算法和平台。

    3. 有问题随时沟通。 另外:http://www.whitecryption.com/press-release-entry/2014/12/16/whitecryptions-secure-key-box-awarded-us-and-canadian-governments-federal-information-processing-standards-fips-security-certification, 是whitecryption通过FIPS level 2 的一个新闻稿。

    4. 当然上面的是文档和网站,涉及到重要的解密流程就不贴出来了,其中最重要的坑就是 unsigned char [] 的sizeof()结果是其数据内容大小,我这里是16字节。
  16. 点播使用LocalServer和直播使用LocalServer是两个不同的概念,其中要处理许多细节。其中一个问题就是在直播情况下:我们需要手动的实时更新LocalServer里面的内容,因为直播流内的m3u8文件,一般来说只有几个切片。

  17. 在处理直播情况下的更新MU38内容时,碰到了更新不及时,导致VideoView播放MU38时获取不到新TS切片,然后认为视频直播结束,然后走到OnCompletionListener中的情况。

  18. 轮询更新M3U8文件到LocaServer中的请求间隔一般为TARGETDURATION的一半。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值