如何使用ffmpeg加密AES-128 HLS m3u8播放列表?

how to use ffmpeg encrypt AES-128 HLS m3u8 playlist?

我使用ffmpeg -i fighter.mp4 -hls_time 10 stream.m3u8创建了一个m3u8文件。 但是 m3u8 文件中没有 #EXT-X-KEY 信息。 如何在 HLS 播放列表中添加密钥?

要使用 FFmpeg 的 HLS 段加密功能,请从 the documentation 查看 22.7.1。

您可以传递hls_key_info_file选项,指向包含密钥信息的文件。该文件可能如下所示:

http://server/file.key
/path/to/file.key

此文件的第一行说明写入 HLS 播放列表的密钥的 URI。文件的第二行指向媒体将被加密的密钥文件(可能是本地文件或 http)。

因此,将类似这样的内容添加到您的 FFmpeg 命令中应该可行:

ffmpeg -i fighter.mp4 -hls_time 10 -hls_key_info_file file.keyinfo stream.m3u8