使用ffmpeg视频切片并加密

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

电脑环境 Win10,已经安装了最新的 ffmpeg 和 openssl ;

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

加密用的 key:

openssl rand  16 > enc.key ( 生成一个enc.key文件  )

另一个是 iv:

openssl rand -hex 16  ( 生成一段字符串,记下来)

新建一个文件 enc.keyinfo 内容格式如下:

Key URI  # enc.key的路径,使用http形式

Path to key file  # enc.key文件

IV  #  上面生成的iv

几个例子:

http://localhost/video/enc.key
enc.key
48c674428c1e719751565ad00fe24243

最后重点来了:

$ ffmpeg -y -i test-hoo.flv -hls_time 12 -hls_key_info_file enc.keyinfo 
-hls_playlist_type vod -hls_segment_filename "file%d.ts" playlist.m3u8

参数解释:

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文件

hls_time设置后效果不一定准确,会受到关键帧大小及其他因素影响。

如果需要相对非常准确的切片,可以添加hls_flags的子参数split_by_time来保证生成的切片能够与hls_time设置的切片时长差不多。

转载自:原文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值