shaka-packagerとは?
Googleが公開している、HLSのパッケージャです。
https://github.com/google/shaka-packager
mp4ファイルをHLSで配信できる形にフォーマットするパッケージになります。
shaka-packager導入
cmakeをhomebrewでインストールする
$ brew install cmake
$ shaka-packagerをクローンする
$ git clone https://github.com/google/shaka-packager.git
ビルド用のフォルダを準備します
$ cd /path/to/shaka-packager
$ mkdir build
$ cd build
cmakeビルドとmakeビルドします
$ cmake ..
$ make
ビルドしたpackagerのバージョンを確認します
$ cd path/to/shaka-packager/build/packager
$ ./packager --version
これで導入は完了です。
HLSのWidevineパッケージ化
今回は無料のライセンスサーバーとして、ライセンスサーバー,key,ivを使います。
1 | 2 |
---|---|
ライセンスサーバURL | https://license.uat.widevine.com/cenc/getcontentkey/widevine_test |
key | 1ae8ccd0e7985cc0b6203a55855a1034afc252980e970ca90e5202689f947ab9 |
iv | d58ce954203b7c9a9a9d467f59839249 |
hls_base_url | s3のバケットURL |
$ cd path/to/shaka-packager/build/packager
$ ./packager \
in=sample.p4,stream=audio,output=audio.mp4 \
in=sample.mp4,stream=video,output=video.mp4 \
--enable_widevine_encryption \
--key_server_url https://license.uat.widevine.com/cenc/getcontentkey/widevine_test \
--content_id 7465737420636f6e74656e74206964 \
--signer widevine_test \
--aes_signing_key 1ae8ccd0e7985cc0b6203a55855a1034afc252980e970ca90e5202689f947ab9 \
--aes_signing_iv d58ce954203b7c9a9a9d467f59839249 \
--hls_master_playlist_output master.m3u8 \
--hls_base_url https://my-backet.s3.ap-southeast-2.amazonaws.com/test/ \
--hls_key_uri https://license.uat.widevine.com/cenc/getcontentkey/widevine_test
実行すると以下のファイルが生成されます。
master.m3u8
stream_0.m3u8
stream_1.m3u8
audio.mp4
video.mp4
生成されたファイルをS3にアップロードしてください。今回はtestフォルダにまとめます。
$ aws s3 ls s3://test/
再生できるか確認
再生にはGoogleのShaka Playerを使用します。
Custom Contentの+ボタンを選択し、MAINタブでManifest URLを入力してNameには任意の名前を設定します。
Manifest URL https://s3-ap-northeast-1.amazonaws.com/my-backet/test/master.m3u8
DRMタブでCusotom License Server URLを入力し、SAVEします。
Cusotom License Server URL https://license.uat.widevine.com/cenc/getcontentkey/widevine_test
動画が再生されました。
(c) copyright 2008, Blender Foundation / www.bigbuckbunny.org
終わりに
実際に商用で利用する場合はDRM サービスプロバイダーのPOCサーバーを建てて検証することがあるかと思いますが、無料でのライセンスサーバーがあれば、無料で簡単に検証が可能です。
Shaka Playerを使用しましたが、DRM対応のPlayerであればアプリで検証することも可能です。