使用ffmpeg视频切片并加密和视频AES-128加密后播放

创建加密文件:

想达到的目的:将一个mp4视频文件切割为多个ts片段,并在切割过程中对每一个片段使用AES-128 加密,最后生成一个m3u8的视频索引文件;

电脑环境mac,已经安装了最新的ffmpeg 4.0.2版本;

如果要加密,首先准备好一下两个东西:

1.控制面板里操作,加密用的key(文件则保存当前目录)

指令:openssl rand -base64 20 > enc.key #提示打开文件本次生成的Pgqz3k35t1PZo/Et+/4+sl9jI/I=

2.控制面板里操作,另一个是iv(生成一段字符串,记下来):

指令:openssl rand -hex 16 #提示打印出本次生成的15de9b7283a69d7ef11f6f12e488fbb7

新建一个文件enc.keyinfo 内容格式如下:
Key URI # enc.key的路径,使用http形式
Path to key file   # enc.key文件
IV # 上面生成的iv

看实例:

http://edu.amin.cc/enc.key
/Applications/MAMP/htdocs/edu.amin/public/enc.key
15de9b7283a69d7ef11f6f12e488fbb7

ffmpeg加密指令:

ffmpeg -y -i /Users/augdai/Desktop/1/1.mp4 -hls_time 12 -hls_key_info_file /Applications/MAMP/htdocs/edu.amin/public/enc.keyinfo -hls_playlist_type vod -hls_segment_filename "file%d.ts" playlist.m3u8

加密后的文件形式:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:12
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-KEY:METHOD=AES-128,URI="http://edu.amin.cc/enc.key",IV=0x15de9b7283a69d7ef11f6f12e488fbb7
#EXTINF:12.040000,
file0.ts
#EXTINF:10.440000,
file1.ts
#EXT-X-ENDLIST

使用ffmpeg视频切片并加密和视频AES-128加密后播放_第1张图片

 

播放部分:

jq控件:hls.js

手册:https://www.bootcdn.cn/hls.js/readme/

使用:





完成。

 

 

 

你可能感兴趣的:(ffmpeg,hls.js)