基于HLS流媒体协议视频加密,解决方案(源码分析)

基于HLS流媒体协议视频加密,解决方案(源码分析),第1张

一套简单的基于HLS流媒体协议,使用video.js + NodeJS + FFmpeg等相关技术实现的m3u8+ts+aes128视频加密及播放的解决方案。

起初是为了将工作中已有的基于Flash的视频播放器替换为不依赖Flash的HTML5视频播放器,主要使用了现有的video.js开源播放器做的定制化开发。当完成视频播放器的制作后,在进一步延伸Web端视频加密的相关内容时,开始了解并逐渐深入的研究了相关视频加密内容。最终通过整理归纳,以及自身的理解,做了这个简单的Demo。目的是为了能够给在视频加密这方面有相同目的的道友提供微薄的帮助,要是能起到抛砖引玉的效果,自然是再好不过了。

本项目的核心原理其实就是讲解了一个视频源从正常的mp4格式如何变为加密后的m3u8文件+ts文件+key秘钥文件,之后又如何在服务端被限制访问,最终能够在客户端正常播放的视频加密、解密并播放的流程。

针对原创视频所有者提供包括PC端、Android端、IOS端在内的全平台视频课程加密技术。开发的视频加密系统主要是针对FLV、F4V、MP4这类视频文件进行加密,防止非授权用户的播放。 系统分为加密和播放两部分:FLV视频加密程序:负责对视频文件进行加密,可以将flv/f4v/MP4文件通过该软件进行加密,加密后的文件别的播放软件无法播放;加密后的FLV/F4V/MP4文件只通过播放端进行播放。视频文件播放端:用于播放加密或者未加密的FLV/F4V/MP4文件。

视频加密系统提供的Android、IOS下的加密视频播放方案,是指可提供播放器引擎,能在授权后播放点量软件加密系统加密过的视频。视频一次加密后,可以在选择在网站端还是移动端播放。移动端需要使用到播放器引擎开发一个APP软件。

1、大意就是用EXT-X-KEY来加密文件碎片,然后动态地改变EXT-X-KEY,并且在EXT-X-KEY上加权限控制;

2、iOS中加密使用AES-128 encryption using 16-octet keys的方式;

3、有三种传递EXT-X-KEY的方式:指定本地文件、指定一个地方放EXT-X-KEY所有文件共用、每n片使用一个EXT-X-KEY。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8090825.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存