FFMPEG将视频切片成ts文件并对ts文件进行ASE加密,并合并成M3U8操作方法

环境: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将视频切片成ts文件并对ts文件进行ASE加密,并合并成M3U8操作方法_第1张图片

 

执行视频转码的相关命令:

绝对路径/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的文件:

FFMPEG将视频切片成ts文件并对ts文件进行ASE加密,并合并成M3U8操作方法_第2张图片

 

加密后的m3u8文件:

FFMPEG将视频切片成ts文件并对ts文件进行ASE加密,并合并成M3U8操作方法_第3张图片

 

参考资料:

1. ffmpeg官网

2. 其他参考网址:ffmpeg 将视频切片成ts文件时,怎么对其进行ASE加密呢? - 知乎

你可能感兴趣的:(php技术,ffmpeg,音视频转码,视频编解码,php)