ブログ

2018.05.24

Twilio Video で新しく登場した Recording Composition とは

こんにちは、本間です。

最近、Twilio Video の大きなリリースとして、Video Recording Composition API というものが登場しました。これに関して私が現時点で調べた内容について、本記事で共有します。

今までの Twilio Video の課題

今まで Twilio Video をご利用していた方ならご存知の通り、録音/録画を有効にした場合には “webm” という形式で音声や動画が別々に保存されていました。

これらを HTML の video や audio 要素で再生することはできましたが、完全に別々のファイルであったため、動画や音声の編集が困難でした。もし動画編集をしたい場合には個別にダウンロードして、 FFmpeg などの動画編集ツールを通して加工する必要があり、大きな手間となっていました。

Video Recording Composition API とは

これら課題を解決するために出てきたのが Video Recording Composition API です。私たちは Twilio API でいくつかの指定をするだけで、編集済みの mp4 動画を Twilio が作ってくれるようになります!

利用にあたって

以下の制約をまず確認しましょう。

  • 合成できるのは、1つのGroup Room で録音/録画されたもののみです。別のGroup Room と合成はできません。
  • Recording SID/Track SID/Track Name のいずれかを指定して合成します。
  • 音声は adder を通して合成されます。
  • 動画はどのようなレイアウトで合成するのかを指定できます。

例えば、Video Room でスクリーンシェア + カメラ撮影をしている場合、スクリーンシェアがメイン画面で人の映像が右下にちょこっと出てるようなレイアウトも構成できます。

気になる金額も $0.01 per composition minute とのことで、お手軽に実行できるようです。日本での価格は不明ですが、同等の安さで実現できるはずです。

今後は mp3 や mov, gif といった形式の変換もサポートされる予定で、Twilio コンソール上でそれらができるようになるとのことです。現状は API のみでのサポートですが、Twilio Developer ならそれだけで十分かもしれません。

使ってみよう!

詳細は ドキュメント に細かく載っていますが、概要だけご紹介します。

作成時に指定できるパラメーター

  • AudioSources: 合成に利用する音声リスト。RecordingTrackSid/MediaTrackSid/Track name のいずれかを配列で指定できる。
  • AudioSourcesExcluded: デフォルトでは全部のAudioが含まれるが、特定の音源だけ除きたい場合に指定。
  • Format: mp4 か webm 形式
  • Resolution: 映像の解像度
  • RoomSid
  • StatusCallback, StatusCallbackMethod
  • Trim: 参加者が1人だけで録画されてる場合や、全員退室した後に誰かが入ってきた場合などの動画を切り取る
  • VideoLayout: 動画の構成を指定

1つの動画で1つの音源を mp4 にしたいというだけであれば、特に複雑なことをせず API を呼ぶだけで OK です。 Twilio 側で動画生成が完了した後に、 Callback のパラメーターで動画の URL を教えてくれます。

動画を合成したいケースが出てくることでしょう。その場合に必要になる VideoLayout が本 API の一番の肝ですが、詳細になるため本記事では省略します。もし興味がある場合はドキュメントを読んでみてください。

提供する API

系5つの API が新たに利用可能になりました。

  • GET /v1/Compositions/: Composition のリスト取得
  • POST /v1/Compositions/: Composition の新規作成
  • GET /v1/Compositions/{CompositionSid}: 特定の Composition Resource の取得
  • DELETE /v1/Compositions/{CompositionSid}: 特定のComposition Resource の削除
  • /v1/Compositions/{CompositionSid}/Media: Composition を構成するメディアファイルの取得

どうやら最新の各 Twilio SDK で利用可能になっているようですので、お好みの言語で確認してみてください。

終わりに

今回は Twilio Video で新登場した Recording Composition API について簡単にご紹介しました。

個人的には Twilio Video における久々のビッグリリースでして、この API にとてもワクワクしています。この機会にぜひ Twilio Video も使ってみてください!