[update] AWS Elemental MediaConvertでアニメーションGIFならびにFLACオーディオを入力ソースとしてサポートするようになりました!
はじめに
清水です。AWS Media Servicesのアップデート情報をお届けするコーナーです。本エントリでお伝えするアップデート情報はこちら!ブロードキャストグレードの機能を備えたファイルベースの動画変換サービスであるAWS Elemental MediaConvertで入力ソースとしてアニメーションGIFならびにFLACオーディオをサポートするようになりました!本日(日本時間2023/03/01、現地時間2023/02/28)AWS What's Newにポストされたアップデート情報となります。
本エントリではAWS Elemental MediaConvert User Guideをもとにアップデート内容を確認しつつ、実際にアニメーションGIFを入力ソースとして動画変換を試してみたのでまとめてみたいと思います。
User Guideで新たにサポートした入力形式を確認
まずはAWS Elemental MediaConvert User Guideで新たにサポートした入力形式を確認しておきましょう。「Supported input codecs and containers - MediaConvert」のページにVideo/Audioそれぞれのサポートされている形式がまとめられています。
なお、出力形式のサポート状況は入力形式のサポートとは一致しません。例えば今回アップデートされたアニメーションGIF、FLACとも出力形式では現時点で未サポートです。こちらは「Supported output codecs and containers - MediaConvert」にサポート状況がまとめられています。
さて、まずはアニメーションGIFのサポート状況の確認です。「Supported input codecs and containers - MediaConvert」のVideoの項目にGIFが追加されていますね!
「Video」 - Supported input codecs and containers - MediaConvert
続いてFLACオーディオについてです。こちらは「Supported input codecs and containers - MediaConvert」のAudioの項目を確認しましょう。Containerごと記載が別れていますが、いくつかのContainerでFLAC codecをサポートしていることが確認できます。
「Audio」 - Supported input codecs and containers - MediaConvert
さらにAudio-onlyについても確認してみましょう。こちらもFLACが追加されていますね!
「Audio-only」 - Supported input codecs and containers - MediaConvert
なお、Internet Archive Wayback Machineで該当ページ(Supported output codecs and containers - MediaConvert)を確認したところ、最新のアーカイブである2022/10/05の時点のページではGIF、FLACについて未サポートであった旨がわかります。(Videoのみ、スクリーンショットを引用します。)
Supported input codecs and containers - MediaConvert
アニメーションGIFを入力として動画変換してみた
ドキュメント(User Guide)でアップデート内容である新たな入力形式について確認できたところで、実際にこの新規サポート対象となった入力形式のひとつ、アニメーションGIFを入力とした動画変換を試してみたいと思います。
入力ソースとなるアニメーションGIFの準備
素材となるアニメーションGIFの入手、いくつか手段が考えられます。AWSのサービスでいえばMediaConvertは出力形式としてアニメーションGIFを現段階でも未サポートなため利用できないのですが、Amazon Elastic TranscoderではアニメーションGIFの出力をサポートしているためこれを利用することが検討できます。
ただAmazon Elastic Transcoderについては、その後継としてAWS Elemental MediaConvertがサービスリリースされており、正直なところアップデートなどはあまりなされていない印象です。コスト面などからもAWS Elemental MediaConvertに利があります。基本的にはAWS Elemental MediaConvertを利用することとし、どうしても対応していない形式がある場合などに限定してAmazon Elastic Transcoderの使用を検討する、などが良いかと考えます。
私も正直なところAmazon Elastic Transcoderについてここ最近まったく触っておらず、「このために操作方法を思い出すのもなぁ」、というぐあいでした。(マネコンでひさしぶりにElastic Transcoderのページを開くまではしたのですが、「Try the New File-Based Video Processing Option」というMediaConvertの紹介で心が折れました。)そんなときふと、AWSのサービスではないのですが、別サービスで動画コンテンツからアニメーションGIFのサムネイルを生成できる機能があったのでこれを使用することとしました。
ということで、以下3つの入力ソースを準備しました。(割と尺が短いソースなのは、ブログエントリへの画像掲載を意図したためです。)
animated-gif-01.gif
- 640x360、2秒、4fps
animated-gif-02.gif
- 640x360、3秒、4fps
animated-gif-03.gif
- 640x360、3秒、4fps
MediaConvertでアニメーションGIFを入力としてMP4に変換
入力ソースとなるアニメーションGIFが準備できたところで、実際にこれをMediaConvertの入力ソースとしてMP4形式への変換を行ってみます。入力ソースとなる3つもアニメーションGIFファイルをS3にアップロードしておき、MediaConvertのマネジメントコンソール、Jobsの[Create job]ボタンから進みます。
入力ソースは3つのですのでInputを3つ準備、それぞれInput file URLでS3上のオブジェクトを指定します。以下は3番目を指定が完了したところです。
Output groupsを[Add]ボタンで追加します。今回はMP4ファイルとして出力したいのでFile groupを選択しました。
File group settingsでDestinationとなるS3へのパスを指定します。またOutputsのName modifierも入力しました。
Output settingsに進みます。PresetはSystem PresetのGeneric-SDからSystem-Generic_Sd_Mp4_Avc_Aac_16x9_Sdr_640x360p_30Hz_0.8Mbps_Qvbr_Vq7
を選択しました。Extensionも入力します。そのほかはPresetのデフォルト値を用いました。
最後に忘れてはいけないIAMロールを指定して、[Create]ボタンでJobを作成します。
JobがCOMPLETE
となるまで待ちましょう。(入力ソースが短い尺だったこともあり、割とすぐに変換が完了しました。
問題なく3つのアニメーションGIFからMP4動画への変換が完了しました。S3に出力された変換後の動画が下記になります。(参照用にYouTubeへ動画ファイルをアップロードしたものを掲載しています。)
まとめ
AWS Elemental MediaConvertのアップデート、アニメーションGIFならびにFLACオーディオの入力ソースとしてのサポートをドキュメントから確認してみました。また実際にアニメーションGIFを入力ソースとしてMP4への動画変換を試してみました。
MediaConvertではリリース当時から多くの入力形式をサポートしていましたが(実は「一般的な形式のほとんどはサポートしているのでは?」ぐらいの認識でした)、さらにサポート形式が増えていくのは嬉しいことですよね。なお今回サポートされた入力形式であるアニメーションGIFならびにFLACオーディオとも、出力形式としてはサポートしていない点に注意しましょう。
ちなみに、本文中でも少し触れましたがAWSに古くからある動画変換サービスであるAmazon Elastic Transcoderでは出力形式としてアニメーションGIF、FLACオーディオに対応しています。(FLACについてはAudio onlyのみのようですが。)現状、アニメーションGIFやFLACへの出力が要件にある場合はAWSのサービスとしてAmazon Elastic Transcoderを検討する必要があるのですが、今後AWS Elemental MediaConvertがここまでサポートを広げるのか!?アップデートを期待したいと思います!