ffmpeg を使って mp4 を 暗号化されたHLS を生成する
こんにちは、 @kz_morita です。
前回 の記事では、ffmpeg を用いて HLS 動画を作成するところまでを紹介しました。
今回はその続編ということで、HLS の動画を暗号化する方法についてまとめていきます。
HLS の暗号化の手順 HLS 動画を暗号化するためには、プレイリストファイル (.m3u8) に以下のように記述を追加する必要があります。
#EXT-X-KEY:METHOD=AES-128,URI="https://api.example.com/encryptkey",IV=0x000000000000000000000000000000 プレイリストファイルでは、 #EXT で始まるものはタグとして認識されます。
HLS を暗号化するためには、メディアセグメント (.ts) ファイルを暗号化しその復号鍵を #EXT-X-KEY 指定する必要があります。
上記のタグを説明すると、 METHOD には暗号化の方法 (上記では AES-128 で暗号化) を, URI には鍵ファイルの場所を指定します。 IV は Initialization Vector つまり初期化ベクトルのことです。AES-128 で暗号をかけるときに使用します。
EXT-X-KEY が記述された プレイリストファイルも前回同様 ffmpeg 生成することができます。
手順としては以下のように進めていきます。
暗号鍵の生成 IV の生成 ffmpeg を用いて暗号化された HLS を生成する 暗号化の方式は、AES-128 にしていきます。
暗号鍵の生成 暗号鍵の生成は、 openssl コマンドを使用します。 AES-128 は 128bit (オクテット) の鍵を使用するため、以下のコマンドで 16 バイトの鍵を生成します。
$ openssl rand 16 > video.