ボクココ

サービス開発を成功させるまでの歩み

Twilio Video における録画動画の作成

ども、@kimihom です。

f:id:cevid_cpp:20200501213832j:plain

Twilio Video には録画したものを動画にするのに便利な Composition API というのを提供してくれている。ベータ版から最近正式リリースされたこともあり、ブログで紹介してみる。

Composition の利点

Web 上でビデオ通話したものを録画するってなった時に、Web 上で見ていたレイアウトと同じような形で mp4 などの形式で動画として振り返りたいというケースはよくある。

Web 上でのビデオ通話中におけるレイアウトは、<video> タグをいかにして CSS で美しく調整していくかにかかっている。これはこれでやりがいのある部分ではあるんだけど、その CSS とは全く関係なく、ビデオ通話が終わった後に単一or複数の動画ファイルを組み合わせて1つのmp4 動画として作りあげる必要がある。

ってなった時に、まず誰もが思いつく方法は FFmpeg を使う方法だろう。コマンド一つで複数の動画を綺麗にまとめ上げることのできるこの技術は、とても便利なものだ。

単に自分用の録画した動画を作りあげるってだけなら、FFmpeg で全く問題はない。しかし、録画した動画をコマンドラインを全く使わない一般の人が作成したいってなった時に、途端に問題にぶち当たる。その次のステップとして、きっと FFmpeg 用のサーバーを立てて、そこにリクエストを送ることになるだろう。でもそのために FFmpeg のサーバーを専用で立ち上げる手間がある。

これらの課題を一発で解決してくれるのが、 Twilio Video Composition API だ。Twilio Video でビデオ通話した複数の動画を、API を呼ぶだけでよしなに mp4 動画を作り上げてくれる。私たちがしなければならないことは、この Composition API を呼ぶだけとなり、専用の録画生成サーバーを立ち上げる必要がなくなる。この Composition API を呼んだ分だけの課金となるので、サーバーを立ち上げるより安くできる(量が多くなければ)。

Composition の利用

どんな動画が作れるのかを画像をリンク先より拝借する。

f:id:cevid_cpp:20200501211505p:plainf:id:cevid_cpp:20200501211509p:plainf:id:cevid_cpp:20200501211512p:plainf:id:cevid_cpp:20200501211515p:plain

Twilio Video の ビデオ通話は、"room" という概念で分けられている。1人だけのビデオというのもありえるし、20人も参加したビデオ通話もあるだろう。それらがそれぞれ "room" となる。このルーム単位で動画を好きに構成することができる。なので1人だけのレイアウト、20人参加した時のレイアウト、スクリーンシェアされた場合のレイアウトなど、それぞれ API のパラメータを分けるだけで望みの動画を Twilio が作ってくれる。

とりわけ参加が複数人の時の動画を平等な大きさでレイアウトするような動画を、よしなに作ってくれるのはありがたい。Aさんが途中でビデオ通話から抜けて再び戻ってきたり、Bさんが途中で参加してきた場合などがあるだろう。これらも reuse オプションによって、以前配置した動画のエリアに再び配置するといったことをしてくれる。こうした途中参加や離脱のケースが多ければ多いほど、この Composition API の威力を発揮することだろう。

作られた動画は、自分の S3 にアップロードする設定も簡単にできる。動画が毎回終わるたびに Composition API を呼ぶのが面倒な場合、Composition Hooks が提供されていて、最初に設定するだけでビデオ通話 roomが終了するたびに勝手に動画を作り上げてくれる。しかし、これは調べた限りでは毎回同じ 動画レイアウトである場合に限りそうだ。

終わりに

今回は Twilio Composition API について紹介した。これを使いこなすと、いい感じの動画を簡単に作りあげることが可能だ。

単に友達とビデオ通話するだけなら、わざわざ録画をする必要すらないかもしれない。しかしビジネスの現場となると、言った言わないの部分や振り返りなど、動画の録画が大事になるだろう。

そんな時の強い味方として、 Twilio Video Composition API が助けてくれるだろう。

告知

2020/05/14(木)に、今回紹介した Twilio が主宰する ビデオ生放送 Twilio エバチャンネルに出演することが決まったので、もしよければ聞いていただけたらと思う。

twilio.connpass.com