环境:centos7
开发语言:php
框架:视频转码服务系统
生成ASE加密文件需要用到的命令:
#!/bin/sh
BASE_URL=${1:-'.'}
openssl rand 16 > file.key
echo $BASE_URL/file.key > file.keyinfo
echo file.key >> file.keyinfo
echo $(openssl rand -hex 16) >> file.keyinfo
参数详解:
BASE_URL:网站url地址
openssl rand 16 > file.key 生成一个key文件
echo $BASE_URL/file.key > file.keyinfo 将外部访问的file.key映射到file.keyinfo文件中。
echo file.key >> file.keyinfo 将项目file.key所在的文件路径映射到fike.keyinfo文件中。
echo $(openssl rand -hex 16) >> file.keyinfo 生成IV密钥
最终完成结果,如图:
执行视频转码的相关命令:
绝对路径/ffmpeg -y -i 视频文件绝对路径/202203271023300d469.mp4 -preset:v veryfast -hls_time 5 -c:a aac -hls_key_info_file ase加密文件的绝对路径/file.keyinfo -hls_segment_filename 转码之后的ts文件的存放路径/%04d.ts -hls_list_size 0 转码之后m3u8文件存放的绝对路径/index.m3u8
相关指令:
-hls_key_info_file 加密文件的路径 这个指令是转码之后ts文件是否加密的关键指令
加密前的m3u8的文件:
加密后的m3u8文件:
参考资料:
1. ffmpeg官网
2. 其他参考网址:ffmpeg 将视频切片成ts文件时,怎么对其进行ASE加密呢? - 知乎