HLS视频加密ffmpeg视频切片

l2qq · 2020-12-06 18:26
字数 2476 评论 0 收藏 0 点赞 0

想达到的目的:将一个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命令执行

image.png

image.png


新建一个文件 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

微信图片_20201206183613 (1).png

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