こんにちは、ベーコン婆男です。
今回は、WebRTCでやり取りする映像・音声データを録画するサンプルをご紹介したいと思います。
チュートリアル6: WebRTC 録画(Recording)
このチュートリアルでは、Kurentoサーバで、WebRTCのストリーミングデータ(映像、音声)を録画します。
WebRTCで録画機能を実装する場合、P2P方式を採用した場合、クライアント端末で録画する形になります。しかし、クライアント端末で録画した場合、録画映像を共有しずらい問題があり、録画機能が必要な場合には、WebRTCのサーバ経由でストリーミングデータをやり取りし、サーバ側で録画するほうが使い勝手がいいです。
チュートリアル1の繰り返しになりますが、以前投稿した「WebRTC Kurentoサーバの構築」の記事に従って、Kurento Media Serverのインストールとサービス起動をお願いします。
サービスが起動していないと、ビルド後にエラーが発生して動作しないため、必ずサービスを起動しておいてください。
また、チュートリアル1に記載した手順で、チュートリアルのコードをGitHubからダウンロードしてください。全チュートリアルのコードがダウンロードされますので、一度ダウンロードすれば再実行する必要はありません。その場合はこの手順はスキップしてください。
$ mkdir kurento-tutorial $ cd kurento-tutorial $ git clone https://github.com/Kurento/kurento-tutorial-java.git
kurento-tutorialフォルダにgitでソースコードを取得したら、kurento-hello-world-recordingフォルダに移動して、mvnでビルドします。
$ cd kurento-tutorial-java/kurento-hello-world-recording $ git checkout 6.6.2 $ mvn compile exec:java
ビルドが成功すると、チュートリアルのアプリが起動します。
パソコンでブラウザを立ち上げて、Kurentoが起動しているサーバ(ポート8443)をhttpsで開いてください。
https://(サーバアドレス):8443/
サーバに証明書が実装されていない場合は警告が表示されますが、無視して開いてください。
「Start」ボタンを押すと、チュートリアル1と同様にループバックで自映像が右側に表示されます。ただしチュートリアル1と違うのは、右側に表示されている間、サーバ側でその映像が録画されています。
「Stop」ボタンを押した後、「Play」ボタンを押すと、Kurentoサーバ側で録画された映像が、右側に再生されます。
本チュートリアルのMedia Elementの構成は以下のようになっています。
「Start」ボタンを押したときは、Pileline#1の構成がとられ、WebRtcEndpoint で受信したストリーミングデータが、WebRtcEndpoint からループバックで送信されるのと同時に、RecorderEnpointに渡されて、Kurentoサーバのストレージに保存されます。
次に、「Play」ボタンを押したときは、Pipeline#2の構成がとられ、映像配信のチュートリアルで紹介したPlayerEndpointから録画映像が再生されて、WebRtcEndpoint を通じて送信されます。
WebRTCのアプリを開発する場合、録画機能は最もよく利用する機能の一つではないかと思います。