WebRTC in aiROKU

モバイル、デスクトップを問わず、現代のデバイスでは、アプリケーションが乱立することが日常的な問題となっています。そのため、必要なものをすべて1つのアプリケーションにまとめられるようなソリューションを探していることが多いのです。幸いなことに、ブラウザには無限に近い統合の可能性があるため、すでに救いの手が差し伸べられています。"aiROKU"には、あらゆる種類のブラウザに対応するためのモジュールであるWeb Serverが用意されています。そして、バージョン18.6.5では、このモジュールが大幅にアップデートされ、WebRTCがサポートされました。

 

まず最初に、WebRTCとは何か、という当たり前の質問をしましょう。WebRTCとは、Web Real-Time Communication(ウェブ・リアルタイム・コミュニケーション)の略で、追加のプラグインや別のアプリケーションを必要とせずに、ブラウザでビデオやオーディオを扱うことができる新しい方法です。WebRTCの最大の特徴は、クロスプラットフォームの互換性であり、どのようなブラウザであっても、WebRTCはそれに対応することができます。

しかし、ソフトウェア開発者にとって、WebRTCの真の金字塔は、使用されているシンプルなAPIです。これが何を意味するかは、例を挙げて説明するのが一番です。

 

バージョン18.6.5以前は、カメラが提供するオリジナルのストリームがH.264の場合、サーバーでMJPEGにトランスコード(変換)しなければなりませんでした。トランスコードを行うと、サーバーのCPU負荷が高くなります。これは、ストリームがそのまま(H.264)で送られてきた場合、ブラウザは自分でデコードできないため、やむを得ないことでした。WebRTCでは、この最後の言葉はもはや当てはまりません。

 

WebRTCでは、Webサーバーの設定にこれらのボックスが用意されています。

製品は日本語化されています。
製品は日本語化されています。

 

サウンド付きWebRTC放送(ブラウザ側でトランスコード) - "aiROKU"のサーバーがH.264でビデオ(サウンドがある場合は)を直接ウェブページに送信します。

ブラウザがストリーミング形式をサポートしていない場合のWebRTC放送用の"aiROKU"側でのトランスコード - これは、現在Webサーバーで動作しているブラウザがWebRTCをサポートしているかどうかをチェックし、サポートしていない場合は、ブラウザは(黒い画面の代わりに)画像を取得しますが、サーバーはそのためのトランスコードを行います。

「ちょっと待ってください。今、どんなブラウザでも使用できると言いましたよね?" 現在のところ、例外があります。Internet Explorer(Edgeも)やSafariはWebRTCにネイティブ対応しておらず、専用のプラグインが必要です。

 

WebRTC経由のストリームを実際に視聴するには、ブラウザの「環境設定」タブで正しいモードに切り替える必要があります。

 

これにより、主に3つの利点があります。

 

ネットワーク負荷の低減 - H.264は圧縮されたビデオであるため、サーバーとウェブクライアント(ブラウザ)間のネットワークで移動するデータ量は、MJPEGの場合よりも大幅に少なくなります。これは、ウェブクライアントの数が多く、遠くから接続している場合には、帯域幅の節約(ひいてはコストの削減)に大きな違いをもたらします。

高品質 - H.264のストリームは、MJPEGよりも高いFPSを記録する傾向があり、全体的にビデオのパフォーマンスが向上します。

サーバーのCPU負荷が少ない - オリジナルのトランスコードが不要なため、サーバーがWebページにビデオを送信する際の処理が非常に少なくて済みます。最終的には、"aiROKU"がフォアグラウンド(サーバーのみ)で動作し、ストリームを分析しない(例:モーション検知機能がない)場合は、サーバーあたりのカメラ台数が増えることになります。これにより、古いCPUでも多数のウェブクライアントを簡単に処理することができます。

ただし、ブラウザ側のハードウェアがデコードを処理しなければならないため、クライアントのCPU負荷が高くなるというデメリットがあります。一方で、ブラウザは、すべてのカメラを一度に見るのではなく、特定のカメラを見るために使われることが多いので、負荷を軽減することができます。

 

2018年8月2日