いつの間にか桜がほぼ満開なことに気がついた streampack 木村です。
さてさて MediaLive の output group に新たに MediaPackage
が追加されました。
これまでも HLS
から webdav
もしくは basic put
で MediaPackage に出力することは可能でしたが、destination で Credential 情報を入力しないといけないので少々面倒でした。
これで便利になるかと思いきや、普通に使っている人は 2019/3/27 現在、ユーザーガイド記載の方法だけではエラーで失敗します。
その他、お作法もあるのでやり方を纏めてみました。
ユーザーガイド
https://docs.aws.amazon.com/medialive/latest/ug/creating-mediapackage-output-group.html
Add output group
はい、以下のように MediaPackage
が追加されているのでこれを選択して進めます。
MediaPackage group
入力するのは MediaPackage であらかじめ作成しておいた channel ID
のみです。
エンドポイント URL やユーザー名/パスワードの入力は必要ありません!
Stream settings
あとは HLS 出力設定をおこなうのですが、ここでお作法。Frame Rate
と Aspect Rate
の項目で INITIALIZE_FROM_SOURCE
は選択することができず、SPECIFIED
にして任意の値を入力してあげる必要があります。
Frame Rate
以下の項目を設定する必要があります。
ITEM | Value |
---|---|
Framerate Control | SPECIFIED |
Framerate Numerator | 任意の値 |
Framerate Denominator | 任意の値 |
例えば 30fps なら、
Framerate Numerator を 30
Framerate Denominator を 1
29.97fps なら
Framerate Numerator を 30000
Framerate Denominator を 1001
にします。
Aspect Ratio
こちらは PAR Control
を SPECIFIED
にすれば他の項目は未入力でも設定可能です。
その他、エンコードに必要な項目を入力し Update channel
でチャンネルが作成できます。
配信エラー
しかしながら、このまま流しても前述のとおりエラーとなり配信できません。
回避方法
ロール MediaLiveAccessRole
にポリシー AWSElementalMediaPackageReadOnly
をアタッチする。
要は MediaLive で普通に使っているロールからは MediaPackage の Credential 情報にアクセスできない為、読み取り権限を付与しようということです。
MediaLiveAccessRole
IAM ページから MediaLiveAccessRole を探します。
割り当てられてるポリシーを確認します。
ポリシーをアタッチします
で MediaPackage 関連
のポリシーを探し、AWSElementalMediaPackageReadOnly
を選択してアタッチします。
ロールに新ポリシーが適用されていることを確認して準備完了です。
あとは通常通りライブを入れるとエラー無しで配信可能となります。
最後に
MediaServices 関連は気がつくと新機能が増えてたりします。
上記の機能も MediaLive を弄って気がついたのですが、当初はユーザーガイドにもまだ記載がなく自分で適当に設定してもエラーで動かなかったので AWS さんに問い合わせて教えてもらいました!