Amazon Elastic Transcoderを使ってみた
今日、AWSからAmazon Elastic Transcoderが発表されました。
簡単に言うと、AWS上で動画のエンコードを行えるソリューションです。動画エンコードもクラウドで行える時代ですね。
しかも、エンコードの時間ではなく、元動画の時間で課金がされます。また、Pipelineの中のJobという形で並行して同一の元動画から、複数の形式でエンコードが行えます。また、サムネイルも作成することもできます。
データの入出力はS3で行われるので、大容量の動画のエンコードも楽に行えます。
公式の図がわかりやすいです
詳しくは:
http://aws.typepad.com/aws/2013/01/amazon-elastic-transcoder.html
http://aws.amazon.com/en/elastictranscoder/
を参照して下さい。
考えられる使い方は、EC2で動いてるインスタンスで動画のアップロードうけて、そのままS3に送って、SQSにエンコードキューいれて、エンコーダのjobをAPIで叩くバッチ動かしといて、S3にエンコード後のデータを置いて、CloudFrontでそのままさくっと配信。のような事が気軽に出来ますね。
複数の形式に同時にエンコード出来るので、ユーザさんが投稿した動画をiPhone向け・PC向け・Kindle向けなどに同時にエンコードできます。
簡単に使ってみた
まずはS3にエンコード前後のデータを格納するバケットを作ります。今回は、1つのバケットにuploadとencodedというフォルダを作ってテスト動画をuploadしました。
Elastic Transcoderタブを開いてPipelineを作成します。
今回はencode-testという名前で作成しました。Input Bucketはtext fieldをクリックするとsuggestされます。Output bucketも同じく入力します。
IAMで権限を付けてS3へのアクセス権を制御出来ます。
イベントに応じてSNSでの通知などもできます。
Pipelineが出来たので、Pipelineに対してJobを作ります
Input key / Outputkeyを入力します。フォルダ名/ファイル名 という形で入力します。
Presetもあるのでこちらからエンコード形式などを選びます。もちろん自分でも作成出来ます。
サムネも作ってくれます。1分毎な気配です。
その他のオプションは
こんな感じです。
Jobを作ったらすぐにエンコードが開始されます。
エンコード中は
の様にProcessingとなっています。これがCompletedになるとS3にエンコード済データが置かれています。Jobの検索は左のJobメニューからステータスやPipelineなどの条件で検索可能です。
完了すると
エンコード済みデータやサムネイルがS3に置かれます。
1080pのプリセットはこのようになっています。