目次
はじめに
こんにちは。エナジードリンクはモンスターのピンクを常飲しているヤナイです。
今回はAWS Elemental MediaConvert(以下MediaConvert)を使って
MP4のファイルからストリーミング配信用のHLS形式に変換してみたので
記事にしていこうかなと思います。
MediaConvertについて
- ファイルベースの動画変換ができて専用のインフラは必要なし。
- 料金は従量課金で安価。
- コンソールの操作自体は簡単。
特徴としてはこの辺りが当てはまるところじゃないかと思います。
それでは利用手順を紹介していきます。
IAMロール作成
[ロールの作成]から[ユースケースの選択]にmediaconvertがありますので
そちらを選択します。ロール名は任意ですが"MediaConvert_Default_Role"と
しておくとMediaConvertのジョブ実行時に自動でこのロールが使用されます。
S3の設定
まずは動画をアップロードする用のS3の作成が必要です。
同一ディレクトリに入れると分かりにくいので
アップロード用と変換後用のフォルダを作っておきます。
MediaConvertの設定(テンプレート作成)
次はMediaConvertの設定です。
基本的にはジョブを実行することで変換ができるのですが、
都度作成する手間がかからないようにテンプレートを作ることができます。
テンプレ―トの作成で設定が必要な項目は以下の通りです。
- 一般設定
- 入力
- 出力グループ
一般設定ではジョブテンプレートの名前などを設定します。
今回はMP4からHLSに変換するので以下のように入力しておきます。(カテゴリと説明の設定は任意です。)
入力は素直にデフォルトのままでエンコードできるようなので特に設定はいじらないでおきます。
出力グループについてですが、
ここでは変換される動画、画像の形式の詳細を設定します。まずは[出力グループ]でApple HLSを選択してあげます。そして、[送信先]のS3の情報を入れてあげます。([カスタムグループ名]は任意です。)
出力設定について、今回は以下の設定をいじって作成してみました。
- 配信プロトコル:HLS
- 名前修飾子: _hls
- ビデオコーデック :MPEG-4 AVC(H.264)
- フレームレート:30fps
- ピクセルアスペクト比:16:9
- ビットレート: 50000
MediaConvertの設定(ジョブ作成)
ジョブテンプレートが出来たら、後は実行のみなので設定したテンプレートのラジオボタンにチェックを入れて[ジョブの作成]を選択します。変換するファイルを設定する必要があるので事前に作成したS3の情報を入力してから作成を行います。
IAMロールをデフォルト以外で作成した場合は[設定]からIAMロールを選択します。
ジョブを作成して、ジョブのステータスが COMPLETE になれば成功です。
S3のバケットを見てみると、対象のmp4 ファイルが変換された拡張子で配置されているかと思います。
最後に
CloudFrontを上段に設定するとS3から配信するよりサーバレスで動画配信できるサービスが作れそうです。本格的に利用するならアップロード用のS3とhlsのファイルを置くS3は分けてLambdaで変換させるようなファイルをアップロードしたら変換するような設定するといいのではないかと思います。
簡単に設定できるので是非使ってみてください。
参考
https://docs.aws.amazon.com/ja_jp/mediaconvert/latest/ug/getting-started.html
ディーネット構築担当のエンジニアです。