使用ffmpeg视频切片并加密

Posted codeab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用ffmpeg视频切片并加密相关的知识,希望对你有一定的参考价值。

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

电脑环境 Fedora,已经安装了最新的ffmpeg;

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

 

加密用的 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.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文件

 

生成的m3u8文件可以通过大部分播放器直接播放

 

以上是关于使用ffmpeg视频切片并加密的主要内容,如果未能解决你的问题,请参考以下文章

ffmpeg进行视频切片,生成m3u8

ffmpeg 获取音频文件PCM切片

Python 调用 ffmpeg-python 模块实现对视频文件切片,转码为 m3u8 格式并修改分辨率

网页视频经过m3u8 技术切片且加密的TS文件在播放时有缓存文件,但提取出来就无法播放了,这种情况

使用 FFmpeg 通过管道输出视频片段

FFmpeg总结用ffmpeg进行切片生成m3u8索引文件