今回は、AWSのElastic Transcoderを使って動画にウォーターマーク(ロゴ)を入れる方法を紹介したいと思います。
ウォーターマークとは著作権表示などのために、画像や動画の右上や右下などに小さく入っている文字のことです。
近年は、動画編集ソフトも安価で使いやすくなっておりますが、AWSを使えば編集ソフトが無くても手軽に入れることができます。(従量課金制なので多少の費用は発生します。詳しくは後術します。)
ウォーターマークを入れる基本的な方法
手順1:S3にバケットを作成する
まずはS3にバケットを作成します。既にあるバケットを使うこともできます。
今回は「transfer–bucket」をいうバケットを作成し、その中に下記のフォルダを作成しました。
- from ・・・ ウォーターマークを入れる動画を格納するフォルダ
- to ・・・ ウォーターマークを入れた動画を出力するフォルダ
- watermark ・・・ウォーターマークを格納するフォルダ
「from」の中にウォーターマークを入れる前の動画をアップロードします。
「watermark」の中に、ウォーターマーク用の画像をアップロードします。
今回はこの画像を使います。透過PNG画像にしましょう。
手順2:Elastic TranscoderでPipelineを作成する。
次にElastic Transcoderの設定です。
まずは「Create New Pipeline」をクリックします。
最低限入力が必要なのところだけ入力します。
最低限入力が必要なのは下記の通りです。
「Pipeline Name」は任意の名前を入力します。
「Configuration for Amazon S3 Bucket for Transcoded Files and Playlists」と「Configuration for Amazon S3 Bucket for Thumbnails」の「Bucket」に、最初に作成したバケット名を入力します。今回は同じバケットを使用していますが、別々のバケットにすることもできます。
最後に、右下の「Create Pipeline」をクリックして完了です。
手順3:Elastic TranscoderでJobを作成する。
次に、手順3で作成したPipelineを使用してJobを作成します。
「Create New Job」をクリックしてください。
「Input Key」に変換元動画のパスを入れます。バケットはPipeline作成のときに指定しているので、ここでは「from/」で始まるパスを入力します。
「Output Details」の「Preset」で、変換する動画形式を選びます。プリセットは最初からかなりたくさんの種類が用意されています。
ここでは、iPhoneでの再生に耐えられる画質にするため、下記を選んでいます。
「Output Key」に出力した時のファイル名を入力します。
続いてウォーターマークの設定です。
今回は右上に入れてみるので「Preset Watermark Id」から「TopRight」を選択します。
※デフォルトでは「左下」「右下」「左上」「右上」の4種類が用意されています。
続いて、ウォーターマークに使用する画像を「Input Key for Preset Watermark Id TopRight」に入力します。
最後に、右下の「Create New Job」をクリックして完了です。
出力された動画をS3フォルダに見に行きます。
動画を再生してみると、右上にウォーターマークが入っていることが確認できます。
ウォーターマークの微調整を行う方法
ウォーターマークを透過したり、もう少し右上に置いたりしたいという場合には、プリセットを作成することで調整できます。
一からプリセットを作成することもできますが、入力が大変なので最初から用意されているプリセットをコピーして使います。
先ほど使用した「System preset: iPhone4S」を選択して、上の「Copy」をクリックします。
下の方にスクロールしていくと、「Watermarks」という段落があるので、「+Add Watermark」をクリックします。
そうすると、段落の最後に新規で入力できる欄が追加されます。
idには任意の識別できる名前を入れます。
それ以外の項目は、基本的には既存の設定をコピーして使うのが良いと思います。
今回は、「Horizontal Offset」と「Vertical Offset」を「5%」に、「Opacity」を「50」に変更しました。(それ以外は元々あった「TopRight」と同じにしています。)
入力が完了したら右下の「Create Preset」をクリックします。
完了画面でこのようにウォーターマークの設定を一覧で確認することができます。(4つまでしか作成できないので、元々あった「TopRight」は削除してしまいました。)
それでは、さきほど作成したプリセットを使用してウォーターマーク入りの動画を作成してみます。
あたらしくJobを作成して、先ほど作成したプリセット、ウォーターマークを選択してください。
これも最初に作成したJobをコピーすると便利です。
ちょっとわかりづらいですが最初に作成したものより、若干位置が右上に寄り、半透明になりました。
「Horizontal Offset」と「Vertical Offset」を10%から5%に変更したため、位置がそれぞれ5%ずつ上と右に近づいており、「Opacity」を100から50にすることで、全く透過しない設定だったのを少しだけ透過するようにしています。(Opacityは0に近づければ近づくほど透明度が増します。)
このためにいちいちプリセットを作成するのは面倒ですが、大量の動画にウォーターマークを入れる必要がある場合には、便利だと思います。
料金について
Elastic Transcoderは初期費用はかかりませんが、従量課金制なので動画をエンコードするたびに料金発生します。料金は動画の画角、長さによって変わります。
詳しくは、こちらの公式サイトを確認してください。
このブログの執筆時点では、リージョンがアジアパシフィックで、720p以上(HD以上)の場合、1分辺りの0.034USD(約3.55円)です。720p未満(SDなど)の場合はその半額です。
仮に、2時間のHD画質の動画を出力しようと思ったら、約420円かかります。
動画の数は関係ないので、短めの動画を大量に変換するのが便利かもしれません。
終わりに
今回はマネジメントコンソールからJobを作成する方法をご紹介しましたが、AWS CLIを使ってJobを作成することも可能みたいです。AWS SDKやCloudFrontを使えば、アップロードした動画を自動的にエンコードして配信するといった動画投稿サイトのようなこともできそうです。
コメント