ボクココ

個人開発に関するテックブログ

Amazon Interactive Video Service との初対面

ども、@kimihom です。

f:id:cevid_cpp:20200731205411j:plain

先日、AWS から新しいサービスがローンチされた。とりわけ音声・動画関連の技術を扱っている私としては大変興味深いものだった。Amazon Interactive Video Service(Amazon IVS) である。

Amazon IVS

私の理解の範囲で説明すると、Amazon IVS は簡単にライブ配信を行うことのできる AWS だ。一般ユーザーであれば YouTube Live を使ったりするのが一般的だが、Amazon IVS を使うことで AWS の配信基盤を使い、自作した 視聴画面から視聴者はその配信動画を見ることができる。つまり、YouTube にあるような広告や他の動画リンクなどが不要でシンプルな動画配信のサービスを作ることが可能ってわけだ。

とりわけ配信で問題になりがちな、動画視聴の快適さにこだわりがあるようで、視聴しやすい動画を簡単に配信できるモノとなっているようだ。

どうやって配信するか

ドキュメントの Set Up Streaming Software にその方法が記されていた。

OBS Studio での配信

まず一つ目の方法として、OSS ソフトウェアである OBS Studio を使っての配信方法があるようだ。OBS Studio は日本でもかなりの方が使っているメジャーな配信ソフトのようで、日本語でも多くの情報が出回っていた。Windows や Mac にインストールして使う、PC ソフトウェアとなってる。

obsproject.com

FFmpeg を使った既にあるビデオを配信

既にあるビデオファイルを配信させる方法として、FFmpeg を使った方法もあるようだ。FFmpeg も動画関連に詳しい人ならほぼ全員入れてるくらいの有名なソフトウェアで、コマンド一つであらゆる動画の操作をすることのできる大変便利なソフトウェアである。rtmps 形式でのネットワークやりとりで、リアルタイムの配信をするようだ。

ffmpeg -re -stream_loop -1 -i $VIDEO_FILEPATH -r 30 -c:v libx264 -pix_fmt yuv420p -profile:v main -preset veryfast -x264opts "nal-hrd=cbr:no-scenecut" -minrate 3000 -maxrate 3000 -g 60 -c:a aac -b:a 160k -ac 2 -ar 44100 -f flv rtmps://$INGEST_ENDPOINT:443/app/$STREAM_KEY

視聴ページの実装

Amazon IVS の提供する Video.js を使って自ら視聴ページを実装することができるようになっているようだ。配信動画の再生や、現在の経過時間などの情報が JavaScript で取ってこれる模様。

Amazon Interactive Video Service Player: Video.js Integration - Amazon Interactive Video Service

私の望むこと

現状の Amazon IVS では、先述した2つの方法でのみ配信ができるようになっている。確かに配信するってだけなら、ローカル環境に入れた配信用のソフトウェから配信するだけでいい。しかし、私としては やはり配信も Web 上からやりたいところである。そう、 WebRTC でね。

配信サーバーの技術は専門外なので、実現可能かどうかわからないけど、ゆくゆく Amazon IVS が WebRTC での配信をサポートしてくれたら熱いなと思う。配信者が WebRTC で接続し、視聴者側は変換エンコードされた動画を見れるようにしてほしい。そうすれば、視聴者側は WebRTC でない、単に動画が見れる環境であれば配信を視聴することができる。

終わりに

このご時世ということもあり、ビデオサービスを簡単に作れる この Amazon IVS は注目に値するサービスだ。

配信は WebRTC ではなく Amazon IVS と OBS Studio で配信する前提にして、視聴者用の Web UIだけ作るっていう流れも悪くないかもしれない。引き続き試行錯誤していこうと思う。