AWS Elastic Transcoder

NO IMAGE

こんにちは、

自転車ライフ満喫中のヤマです。

気まぐれなので、すぐに飽きると思います。

 

AWS Elastic Transcoderを使ってみたので、報告です。

とある案件でストリーミング配信が必要になり、同僚に教えてもらったので試してみた次第です。

「AWS Elastic Transcoder」

AWS上にリソースをアップすると、指定した形式にエンコードしてくれるという代物です。

試したのは、「S3上にリソースファイルをアップして、S3上にエンコード後のファイルを置いて、公開する」

以下試した手順です。

1)S3上に、IN/OUT用のバケットを用意し、INにはリソースファイルを
OUT用のバケットには、以下のようにしてリファラーを見て参照可能かを設定するようにしました。

{
    “Version”: “2012-10-17”,
    “Id”: “************”,
    “Statement”: [
        {
            “Sid”: “**********”,
            “Effect”: “Allow”,
            “Principal”: “*”,
            “Action”: “s3:GetObject”,
            “Resource”: “arn:aws:s3:::outbucketname/*”,
            “Condition”: {
                “StringLike”: {
                    “aws:Referer”: [
                        “http://www.sample.com/*”,
                        “http://sample.com/*”
                    ]                }
            }
        }
    ]}

 

さらにCORSを設定しました。

<?xml version=”1.0″ encoding=”UTF-8″?>
<CORSConfiguration xmlns=”http://s3.amazonaws.com/doc/2006-03-01/”>
    <CORSRule>
        <AllowedOrigin>http://www.sample.com</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
    </CORSRule>
</CORSConfiguration>

 

2)AWS Elastic Transcoderにて、パイプラインを作成します。

パイプラインは、どのバケットにリソースがあって、どのバケットに結果ファイルを入れるか、

コマンドをパイプでつなげるみたいなイメージです。

3)AWS Elastic Transcoderにて、ジョブを作成します。

ジョブは、どのパイプラインを使うか、その中のどのファイルをリソースとするか、

エンコード形式はどうするか、Durationはどうするか、など実際のエンコードに関する細かな指定をします。

4)エンコード開始

ジョブを作成したら、すぐに開始されます。
あとは、出来上がりを待つだけです。
出来上がったファイルはOUT用バケットに入ります。

今回は、MP4をHLS形式(m3u8)にエンコードしましたので、
コンテナ用ファイルと、実際にストリーミングで利用される分割されたファイルが数十個作成されました。

別ドメイン上に設置したHTMLのvideoタグで、S3上のm3u8ファイルを指定したところ
快適にストリーミング再生できました。

すごいですね、AWS。

実運用では、アップされた後のジョブ作成からエンコードまでを

自動化する必要がありそうです。

成功事例だけで、何も参考になりそうに無い投稿になってしまいました。。。

とりあえず「できたよ」ということで。