應用功能:將上傳的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文件。