こんにちは。最近カラオケ採点の点数がガタ落ちしていて涙目の竹永です。
俗にいうスランプというものであって欲しいと自分を騙しつつカラオケに行っています。
Elastic Transcoderの概要を読んでいたら、某ニ○○○動○の無料枠に引っかからないよう必死にエンコードしていたあの頃の思い出が蘇ってきたので、Elastic Transcoderをつかって楽にキレイに複数タイプに動画を変換する手順をご紹介いたします。
Elastic Transcoderってなに
任意の動画ファイルを、様々なデバイスで再生できる形式に変換できるサービスです。
「ローカルでやれ」という声が聞こえてきそうですが、Elastic Transcoderを使うと下記のようなありがちな苦労が消え去ります。
手元にあるPCで、30分の動画をスマートフォン用とタブレット用に変換する場合。
- エンコーダーの選定と準備が面倒
- 変換時間は1時間を覚悟
- 変換中はPCがとてつもなく重い
- CPUやGPUを酷使するため電気代が心配
- 画質/音質とファイルサイズの兼ね合いはトライ&エラー
- 変換元動画の形式に対応してない場合が多々ある
- 熱暴走でPCの電源が落ちる
- この作業をほしい種類(今回はスマートフォン・タブレットの2種類)の数だけ行う
個人的には電気代が一番つらいですが、このような苦行を少しの設定だけで終わらせてしまうのがElastic Transcoderです。
前提条件
早速トランスコードしますが、今回検証したのは下記の条件になります。
- 変換元の動画は1920x1080 60p H.264 64.4Mbps (30秒で231MB…!)
- 変換先はスマートフォン・タブレット(iPhoneなどなど)で再生が可能な形式
- 2種類の動画を1度に作成する
S3にファイルを用意する
-
動画を準備します。よほどマイナーな形式でなければなんでもOKです
ちなみに、ググると4Kの動画も見つかります。 -
S3内にある任意のバケットに動画をアップロードします
Pipelineの準備
- Management ConsoleからElastic Transcoderの操作画面を開きます
-
下のような画面が表示されるので、[Create a new Pipeline]を押してPipelineの作成画面を開きます
-
作成画面が表示されたらひたすらフォームを埋めていきます
※Notifications以外はすべて入力必須です。- Pipeline Name (パイプラインの名前)
- Input Bucket (入力元のS3バケット名)
- IAM Role (Elastic TranscoderがS3にアクセスする際に使うIAMロール)
- Bucket (保存先のバケット名)
- Storage Class (S3のストレージクラス) Reduced Redundancyを選択すると、堅牢性を低めにして安くできます
- サムネイルの保存設定ですが、設定項目は上と同じです
- サムネイルが不要でも入力する必要があります
- On Progressing Event (変換開始したら通知)
- On Warning Event (何かしらの警告が出たら通知)
- On Completion Event (変換が完了したら通知)
- On Error Event (エラーで変換に失敗したら通知)
-
項目の入力が終わったら、ページ下部の[Create Pipeline]ボタンを押すとPipelineが作成されます。
Job作成
-
Pipelineの作成が終わると次のような画面になりますので、[Create New Job]をクリックします
-
使用するPipeline、変換したい動画ファイル、出力先フォルダーを指定します
-
Presetと出力ファイル名を指定します
-
フォームの少し下にある[+ Add Another Output]リンクをクリックすると、出力する動画を追加することができます。今回は下図の2つにしました
-
最後に[Create New Job]ボタンをクリックすると、変換処理がすぐに始まります。お手軽です
作ったジョブを確認
先ほどの[Create New Job]ボタンをクリックするとジョブの詳細画面に切り替わります。
ここでは動画の変換処理の状態が表示されますが、パーセンテージまでは表示されないので気長に待ちましょう。
動画の変換が完了すると、指定したバケットのoutputsフォルダーに変換済みの動画が追加されます。
参考までに、動画のサイズが18MB程度まで落ちました。元動画のビットレートがおかしいのは気にしないでください。
また、今回の検証で作ったジョブの場合は、1分ほどで変換処理が終了しました。
並行で2個の動画を作成したので、1台のPCでトランスコードを行うのと比べてかなりの時間短縮ではないでしょうか。
でもお高いんでしょう?
この動画(30秒のHD動画を2つ)を変換するのにかかる金額ですが…。
なんと、0.072ドル(約7円)です…と言いたいところですが初めてであれば無料です。
毎月10分のHD動画作成が無料なので、毎月少しだけ使う分なら無料です。
注意点としては端数は切り上げです。1分1秒の動画は2分で計算されます。
詳しい料金については公式の料金表をご覧ください。
これだけじゃない
今回は単純に動画の変換のみを行いましたが、Elastic Transcoderには他にもいろいろな機能がついています。
- 変換した動画にWatermark(透かし)を付けることができます。透かしとはテレビでよく見る、右上あたりにテレビ局のマークがくっついているアレです
- Presetは自作できます。コンテナやコーデックの選択肢は一般的なものだけですが、動画のサイズやビットレート変更、上下逆さまにする…などができます
- SNSを使って他のアプリケーションと連携できます。変換開始・完了・警告・エラーの度に外部に向けて通知を送信することができます
こんな使い方、あんな使い方
Elastic Transcoderの使い方を妄想してみましたので、夢をふくらませてみてください。
- ビデオカメラで録画した動画をストリーミング向けに変換して、社内に配信する
- オリジナル曲投稿サイトを作って、投稿されたWAVEファイルなどを自動的にMP3やAACに変換 → インターネットラジオで配信
- 動画の品質とサイズの兼ね合いを、ジョブを沢山くっつけて一気に検証
- 作った動画をY○ut○be・ニ○○コ動画向けの形式に変換
- 動画変換中のPCがうるさくて眠れないのでElastic Transcoderで変換
- PCのスペックが低くて見れない動画を変換して視聴
まとめ
Elastic Transcoderの一番の魅力は、EC2で動画を変換する必要が無くなったところではないでしょうか。
これがなかった頃は…
S3に動画を転送→SQSで変換ジョブをキューイング→EC2インスタンスがキューを確認してS3から動画をダウンロード→処理が完了したらS3にアップロード→動画を利用する
…と、かなり手間(とお金)を掛けて動画を変換する必要がありましたが、今では、
S3に動画を転送→Elastic Transcoderで変換→動画を利用する
のようにかなり簡単に動画を変換できるようになりました。
SNSで通知することが出来るので、アプリケーションとの連携のしやすさもバッチリです。
動画を使うおもしろサービスを思いついたら、ぜひぜひ使ってみてください。
もちろん、まじめサービスでも大丈夫です。