| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> Java知识库 -> Java实现视频加密及播放 -> 正文阅读 |
|
|
[Java知识库]Java实现视频加密及播放 |
技术栈
概述实现视频加密的大概思路说一下,先通过ffmpeg将mp4格式的视频文件转成h264格式的ts文件,转完后的视频文件主要文件形式为两种,一种为.m3u8的文件,这个文件也可以说是摘要文件,主要记录了当前视频所有的片段文件以及如果使用了加密文件那么加密文件的路径地址,另一种文件为.ts文件,这种类型文件为数据文件,即视频文件。转换的方式实际就是一条ffmpeg开头的指令,ffmpeg的功能是在太强了除此之外还可以做你能想到的跟视频相关的操作(另外多说一句,如果想做直播推流的可以在整合一个rtmp服务,网上资料很多)。如果视频需要加密,切分的时候需要携带你生成的enc.key参数,这样的话你的ts文件就是加密的文件,如果你不带加密enc.key文件那么你的.ts文件是可以在各种播放器中直接播放的。生成好之后我们将m3u8、ts、enc.key文件上传到nginx的html路径下(如果不想key文件与ts文件相同路径,可以编写接口传输另外修改m3u8文件中的uri参数改成能够只能访问到key的get接口地址即可)。然后通过前端的videojs视频播放插件,就可以实现视频的加密播放,默认的加密算法为AES-128,话不多说直接开始
下面介绍的是在本地完成m3u8视频加密,如果想通过代码实现可以参考lz这篇文章,里面包含ffmpeg的核心视频切分代码,不过不包含生成加密视频文件:Java实现上传的视频转m3u8上传到OSS后播放 视频切分成m3u8文件
新建一个文件 enc.keyinfo 内容格式如下:
例如lz的:
视频切分,传一个test.mp4到enc.key路径下,通过黑窗口执行下面的指令
切分完成如图: 配置nginxnginx服务器默认无法播放m3u8格式的文件需要添加配置,修改nginx的nginx.conf文件,新增如下配置,配置完后需要重启nginx服务
截图如下
使用xftp传到m3u8的test路径下 web前端使用videojs查看
资源整理花费了大量时间,对大家有帮助的话希望点个赞支持一下,感谢。 |
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年12日历 | -2025/12/4 13:53:58- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |