JAVA实现视频加密

心已入冬 提交于 2020-01-17 00:15:27

应用功能:将上传的mp4视频进行加密,用户观看视频时必须请求服务端秘钥方能播放。

前期准备:

1.java开发环境。

2.ffmepg工具。下载地址

3.秘钥文件。新建一个TXT文件,输入几个字符串,后缀名改成.key即可。

原理介绍:

1.FFmpeg工具可以将mp4视频转换成m3u8格式的视频。

2.m3u8格式的视频就是一个索引.m3u8文件加若干个切片视频.ts文件。

3.ts文件通过秘钥对称加密生成加密后的ts文件。加密前的文件可以直接用播发器播放,加密后的文件必须用秘钥解密才能播放。

4..m3u8索引文件其实就是一个TXT文件,记录了每个切片的位置、时长、和加密/解密秘钥的位置。

5.mp4转m3u8的时候可以选择加密也可以不加密。

第一步:声明文件位置

String videoPath = "F:/video.mp4";

String toolPath = "F:/ffmpeg.exe";

String m3u8Path = "F:/video/video.m3u8";

String keyPath = "F:/video/key.key";

第二步:拼接命令并执行

StringBuffer buf = new StringBuffer();
buf.append(toolPath);
buf.append(" -y ");
buf.append(videoPath);
buf.append(" -hls_key_info_file ");
buf.append(keyPath);
buf.append(" -hls_playlist_type vod ");
buf.append(" -hls_segment_filename ");
buf.append(" fileSequence%d.ts ");
buf.append(m3u8Path);

try{Runtime.getRuntime().exec(buf.toString());}catch(Exception e){}

第三步:播放加密后的m3u8

保证m3u8文件 、ts文件、key文件的路径都在/video 下。可直接用 VLC等播发器直接播放m3u8文件。

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!