Encryption FFMPEG加密

Encryption FFMPEG加密,encryption,ffmpeg,openssl,aes,http-live-streaming,Encryption,Ffmpeg,Openssl,Aes,Http Live Streaming,我正在做一个加密项目 视频和我有一些关于程序的问题 我使用一个命令将mp4转换为HLS,段持续时间约为10秒 首先,我需要用数据库中的密钥加密这些视频。然而, 我不知道加密是否使用ffmpeg 第二,如果加密可以在没有ffmpeg的情况下工作,那么我应该怎么做?我在谷歌上搜索过,它包括类似openssl/aes的东西,但是 没有详细的步骤供我遵循,即使是ffmpeg链接: 谁能帮帮我,教我如何加密视频?谢谢你。是的,你可以用ffmpeg来做。您需要将密钥从数据库写入文件,比如说video.ke

我正在做一个加密项目 视频和我有一些关于程序的问题

我使用一个命令将
mp4
转换为
HLS
,段持续时间约为10秒

首先,我需要用数据库中的密钥加密这些视频。然而, 我不知道加密是否使用ffmpeg

第二,如果加密可以在没有ffmpeg的情况下工作,那么我应该怎么做?我在谷歌上搜索过,它包括类似openssl/aes的东西,但是 没有详细的步骤供我遵循,即使是ffmpeg链接:


谁能帮帮我,教我如何加密视频?谢谢你。

是的,你可以用
ffmpeg
来做。您需要将密钥从数据库写入文件,比如说
video.key

您需要第二个文件,我们将其命名为
key\u info
,这是密钥信息文件。其格式如下:

key URI
key file path
IV (optional)
例如:

您告诉
ffmpeg
使用
hls\u key\u info
参数对您的片段进行加密:

ffmpeg -i input.mp4 -c copy -bsf:v h264_mp4toannexb -hls_time 10 -hls_key_info_file key_info playlist.m3u8
这将在CBC模式下使用AES-128加密您的片段,并将相关标签添加到播放列表中:

#EXT-X-KEY:METHOD=AES-128,URI="http://example.com/video.key"
如果需要,您还可以使用
openssl
手动加密这些段。下面是一个示例脚本,其中每个IV都等于段索引:

#/bin/bash
ts_dir=/path/to/ts/
key\u file=video.key
openssl rand 16>$key_文件
enc_key=$(hextump-v-e'16/1“%02x”'$key_文件)
pushd$ts_dir
ts|u cnt=$(ls*.ts | wc-l)
((ts_cnt--))
i=0
对于以美元表示的i(seq-f“%01g”0$t);做
iv=$(打印文件“%032x”$i)
ts_文件=段-$i.ts
echo[$i]$ts\u文件
openssl aes-128-cbc-e-in$ts_文件-out加密${ts_文件}-nosalt-iv$iv-K$enc_密钥
完成
邻苯二胺

运行该命令后,出现以下错误:无法识别的选项“hls\u密钥\u信息\u文件”。拆分参数列表时出错:选项不是found@rickyma924您可能正在使用过时版本的
ffmpeg
。从源代码构建它或获取一个。这里是到
hls
文档的链接:@chovy这是加密而不是解密。但是,是的,您可以加密或解密实时AES-128 HLS流。@chovy None,您只需将其指向
m3u8
,它就会自动使用
EXT-X-KEY
中的信息。@Whome是的,它只是原始密钥,而不是DRM。
#EXT-X-KEY:METHOD=AES-128,URI="http://example.com/video.key"