应用功能:将上传的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文件。
来源:CSDN
作者:石乐志5305
链接:https://blog.csdn.net/q2450751976/article/details/104010394