19
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS MediaConvert で CMAF を試す!

Last updated at Posted at 2018-07-13

こんにちは!
今月発売の某誌に寄稿する記事がようやっと書き終わって開放感に浸っている streampack 木村です。

ちょっと時間が経ってしまっていますが AWS MediaConvert と MediaPackage が CMAF に対応しましたね。

AWS Elemental MediaConvert が、CMAF 出力を追加

これで以前に Bento4 で作成したのと同じことが MediaConvert でもできるようになりました。

<以前の記事>
HLS と MPEG-DASH でメディアを共通化してみる

そこで今回は MediaConvert を使って CMAF を作成し、HLS と DASH の両方で再生可能か確認してみます。

MediaConvert

ジョブの作成

MediaConvert のコンソールからジョブの作成をクリックします。

入力設定

S3 にアップした適当なファイルを指定します。
テストなのでその他の設定は弄りません。

スクリーンショット 2018-07-12 17.20.35.png

出力設定

出力グループ追加 して CMAF を選択します。

スクリーンショット 2018-07-12 17.19.24.png

出力として Output1Output2 の2つが用意されます。
ここが従来の HLS との大きな違いで、映像のみのファイルと音声のみのファイルをそれぞれ作成します。

スクリーンショット 2018-07-12 17.22.06.png

その他設定項目の説明と留意点です。

項目 設定値 備考
カスタムグループ名 任意 無くても可
送信先 S3のどっか
セグメントの制御 Single File or Segmented Files 単一ファイルか分割ファイルかを選択
フラグメントの長さ(秒) Fragmented MP4(fMP4)にするのでフラグメントの長さを指定
セグメントの長さ(秒) セグメント長を指定
HLS マニフェストの書き込み 有効化でマニフェスト生成
DASH マニフェストの書き込み 有効化でマニフェスト生成
Output1 名前修飾子 任意の値 Output2 とは異なる名前を設定すること
Output2 名前修飾子 任意の値 Output1 とは異なる名前を設定すること

注:Output 名前修飾子ですが 1 と 2 で必ず異なる名前を設定する必要があります。
両方未設定もダメで、そうすると、HLS 出力で映像と音声のプレイリスト名がコンフリクトして一つしか生成されなくなります

次に Output1Output2 の中身ですが、テストなので何もいじらずにデフォルトのままで H.264 と AAC で出力させます。

作成 を押して待つこと数分。
S3 に以下のファイルが出力されます。

$ aws s3 ls s3://xxxx/encoded/cmaf/bbb1500/
2018-07-03 15:00:36          0
2018-07-12 17:03:45        402 bigbuckbunny_1500.m3u8
2018-07-12 17:03:46       1367 bigbuckbunny_1500.mpd
2018-07-12 17:01:06    7316253 bigbuckbunny_1500audio.cmfa
2018-07-12 17:03:45       5763 bigbuckbunny_1500audio.m3u8
2018-07-12 17:01:06  372919133 bigbuckbunny_1500video.cmfv
2018-07-12 17:03:44       6069 bigbuckbunny_1500video.m3u8

.cmfv が映像ファイル、.cmfa が音声ファイルになります。
m3u8mpd の2つのマニフェストファイルが生成されているのが確認できますね。

視聴

S3のコンテンツを Public にして HLS と DASH をそれぞれ視聴してみます。

HLS

Mac の Safari の URL 欄に以下を入力

https://s3-ap-northeast-1.amazonaws.com/{S3 bucket}/encoded/cmaf/bbb1500/bigbuckbunny_1500.m3u8

DASH

DASH IF Reference Player を使って再生します。

https://s3-ap-northeast-1.amazonaws.com/{S3 bucket}/encoded/cmaf/bbb1500/bigbuckbunny_1500.mpd

結果

両方共問題なく再生できました。

IMG_3995 2.JPG

(c) copyright 2008, Blender Foundation / www.bigbuckbunny.org

注: DASH IF Reference Player で再生する DASH コンテンツは、映像ファイルと音声ファイルが独立している必要があり、映像音声が混成されたメディアファイルを再生するとエラーになります。
MediaConvert で 出力DASH にするとデフォルトでは映像音声混成の単一ファイルが出力されるので注意が必要です。

まとめ

前回も書きましたが、HLS と DASH を別々に作成する手間が省け、ファイルも同じものが使えるので合理的です。
iOS10 以降では HLS fMP4 をサポートしており、既に iOS9 のサポートは終わっているので、そろそろ
本格的に HLS TS は切り捨て対象になりそうですね。

19
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?