[小ネタ] AWS Elemental MediaConvert を使って静止画からタイムコード付きの動画ファイルを作成する

2020.06.24

こんにちは、大前です。今日は小ネタです。

 

AWS MediaServices で検証を行う際には、検証用の動画ファイルが必要になる事が多いです。

OBS 等で配信を行う際には PC カメラで顔元の映像を使用しても良いのですが、遅延がどのくらい発生しているか、等をきちんと確認したい際には下記の様なタイムコードつきの動画があると便利です。

 

また、AWS Elemental MediaConvert(以下 MediaConvert) では動画変換時にタイムコードを挿入する事が可能だったりします。

動画フレームへのタイムコードの焼き付け

 

今回は、この機能を使って、好きな画像からタイムコード付きの検証用動画を作成してみたいと思います。

やってみた

元画像の準備

何はともあれ、動画に変換する元画像を用意します。

なんでも良いのですが、今回は めそ子オフィシャルサイト より壁紙を拝借しました。

 

190711_Mesoko_Jul_1920x1080.png

 

かわいい

 

画像を動画に変換

早速 MediaConvert でタイムコード付きの動画に変換していきたい所ではあるのですが、MediaConvert は画像ファイルを入力として受け付けていません。

サポートされる入力コーデックおよびコンテナ

 

その為、まずは画像ファイルを動画ファイルに変換する必要があります。

方法としては色々あるかと思いますが、今回は FFmpeg を使用します。

 

FFmpeg がインストールされていない場合には、以下などを参考にインストールを実施してください。

HomebrewでMacにFFmpegをインストールする方法と使い方

 

適当なディレクトリに画像ファイルを配置し、以下コマンドを叩きます。

ffmpeg -loop 1 -i 190711_Mesoko_Jul_1920x1080.png -vcodec libx264 -pix_fmt yuv420p -t 600 -r 30 190711_Mesoko_Jul_1920x1080.mp4

細かい説明は省きますが、-t 600 の部分が出力される動画の長さになります。単位は秒なので、600 だと 10分の動画として出力されます。必要に応じて変更してください。

FFmpeg のコマンドについては、下記の記事を参考にさせて頂きました。

FFMPEGで1枚の静止画から動画を作成する

 

MediaConvert でタイムコード挿入

では、いよいよ MediaConvert を使用してタイムコードを付けていきます。

事前に、FFmpeg で作成した動画ファイルは S3 にアップロードしておきましょう。

 

「MediaConvert > ジョブの作成」よりジョブの作成画面を開き、入力の「Input file URL」にアップロードした動画ファイルを指定します。

 

「出力グループ > 追加」より、「ファイルグループ」を選択します。

 

「File Group」を選択し、「送信先」に変換後の動画ファイルを出力する S3 バケットを指定します。

 

「Output1」を選択し、「解像度」を入力します。今回は元ファイルに合わせて 1920 x 1080 としました。

 

そのまま下部にスクロールし、「ビットレート」を入力します。今回は 5000000 としました。

 

さらに下部にスクロールすると、「タイムコードの書き込み」という選択項目があるので、こちらを有効にして以下設定を行います。

これがタイムコードを動画に付けるための設定です。

  • フォントサイズ ... ラージ(48)
  • 位置 ... 中央

 

最後に、「ジョブの設定 > 設定」から「IAM ロール」を設定します。

ロールがない場合には以下にしたがって作成しておきましょう。

ステップ 3: IAM アクセス許可の設定

 

これで一通りの設定は完了です。画面右下にある「作成」をクリックするとジョブが開始され、少し待つとステータスが COMPLETE となるはずです。

 

出力先として設定していた S3 バケットからファイルを DL して確認してみると、タイムコードが挿入されていることが確認できました。

 

おわりに

AWS Elemental MediaConvert を使用してタイムコードを挿入する方法を紹介しました。

小ネタではありましたが、検証用動画に困っている際には参考にしてみてください。

 

以上、AWS 事業本部の大前でした。

参考