想达到的目的:将一个mp4视频文件切割为多个ts片段,并在切割过程中对每一个片段使用 AES-128 加密,最后生成一个m3u8的视频索引文件;
首先准备好一下三个东西:
加密用的 key
openssl rand 16 > enc.key
另一个是 iv
openssl rand -hex 16
或者:
openssl rand -hex 16 >enc.iv.txt
区别是:生成一个16未的私有密钥文件,或者显示在输入平台。
(如果提示:)
D:\workspace\club\openssl\bin>openssl rand -hex 16
Usage: rand [options] num
where options are
-out file - write to file
-engine e - use engine e, possibly a hardware device.
-rand file;file;... - seed PRNG from files
-base64 - encode output
原因:环境配置没弄好,建议直接用git的base here命令执行
新建一个文件 enc.keyinfo 内容格式如下:
Key URI # enc.key的路径,使用http形式 Path to key file # enc.key文件 IV # 上面生成的iv
例子:
http://localhost/video/enc.key enc.key 48c674428c1e719751565ad00fe24243
最后重点来了:
环境遍历设置加入
Path:D:\soft\ffmpeg\bin
ffmpeg -y \ -i test.mp4 \ -hls_time 12 \ # 将test.mp4分割成每个小段多少秒 -hls_key_info_file enc.keyinfo \ -hls_playlist_type vod \ # vod 是点播,表示PlayList不会变 -hls_segment_filename "file%d.ts" \ # 每个小段的文件名 playlist.m3u8 # 生成的m3u8文件
https://github.com/tonydeng/fmj.git
FMJ (FFMpeg for Java)
通过Java调用FFMpeg命令的方式来对音视频进行处理(获取信息、截图等等)。
最新评论 0