想達到的目的:將一個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文件可以通過大部分播放器直接播放
轉載於:https://www.cnblogs.com/codeAB/p/9184266.html