AIソリューション
WebRTCミドルウエア説明及導入、運用
目次
リモートワークが一般的となってきた近年、Web会議システムやライブストリーミング・動画配信サービスなどで活用される場面が増えてきています。
WebRTC(Web Real-Time Communication)プロジェクトの最終目的は、Web開発者がブラウザ(Chrome、FireFoxなど)を基にして、
豊かなリアルタイムのマルチメディアアプリケーションを簡単かつ迅速に開発できるようにすることです。
これにより、どんなプラグインもダウンロードやインストールする必要がなくなります。
Web開発者は、マルチメディアのデジタル信号処理過程を気にすることなく、単純なJavascriptプログラムを記述するだけで実現できます。
W3Cなどの組織は、すでにJavascript標準APIを制定しています。
また、WebRTCは、複数のインターネットブラウザ間で堅牢なリアルタイム通信のプラットフォームを構築し、
開発者とブラウザメーカー間の良好なエコシステムを形成することを望んでいます。
同時に、GoogleもWebRTCの技術をHTML5の標準の一つにすることを望み、努力しています。
これはGoogleの戦略がいかに長期的であるかを示しています。
1.組み込み端末デバイスWebRTC SDKライブラリサポート
WebRTCアプリケーションのアーキテクチャは巨大で、組み込みデバイスへの移植が難しいです。そのため、以前のカメラはWebRTCをサポートしていませんでした。日昇がプロジェクトを開発するため、
WebRTCをARMなどの組み込みプラットフォームに成功させました。
基本的に現在の組み込みプラットフォームのオペレーティングシステムをサポートしています:arm linux, rtos, liteosなど。
2.WebRTCの強力なクロスプラットフォーム能力
組み込み端末デバイスがWebRTC標準プロトコルをサポートすると、各ブラウザメーカーがWebRTCをサポートしているため、コンピュータ上だけでなく、WindowsやLinuxの使用を実現しました。
さらに、AndroidやIOS上でWebRTC技術を利用して音声通話とビデオ通話を実現することができます。
組み込みデバイスは、複数のプラットフォームでリアルタイムの音声とビデオ通信をサポートできるようになりました。
3.強力なNAT越え能力
WebRTC技術には、STUN、ICE、TURN、RTP-over-TCPを使用するNATおよびファイアウォール越えの重要な技術が含まれており、プロキシをサポートしています。ピアツーピアの伝送を実現します。
4.強力な音声・ビデオ処理能力
製品に強力な音声・ビデオ処理能力を付与します。WebRTCは、各フレームの画像を処理でき、輝度検出、色強化、ノイズリダクションなどの機能を含み、ビデオ品質を向上させます。WebRTCは音声データを処理し、エコーキャンセル(AEC)、AECM(AEC Mobile)、自動ゲイン(AGC)、
ノイズサプレッション(NS)、音声活動検出(VAD)などの機能を含み、音声品質を向上させます。
ネットワーク伝送中の音声の最大の問題、ノイズ、エコー、ジッター、自動ゲインの処理問題を解決しました。
5.強力なネットワーク伝送とフロー制御
WebRTCはNetEQ機能も提供しています---ジッターバッファおよびパケットロス補償モジュールで、音質を向上させ、遅延を最小限に抑えます。現在の顧客フィードバックによると、リモートの音声とビデオのリアルタイム伝送は約220msです。
6.強力なデータ暗号化機能
音声とビデオの暗号化はWebRTCの一部であり、ピアツーピアのビデオ通話双方にデータのセキュリティ保証を提供し、Web上でのビデオデータの漏洩を防ぐことができます。
WebRTCシステム構成図
WebRTC P2P通話ネットワークモデル図
WebRTC P2P通信プロセス図
WebRTC MCU(MultiPoint Control Unit)ソリューション
MCUの主な処理ロジックは、各共有端からの音声およびビデオストリームを受信し、デコード後、他のデコードされた音声およびビデオとミックスし、再エンコードした後、
ミックスされた音声およびビデオストリームを部屋の全員に送信することです。
MCU技術はビデオ会議分野で非常に早く登場し、現在の技術も非常に成熟しています。
主にハードウェアビデオ会議分野で使用されます。しかし、今日私たちが話しているのはソフトウェアMCUで、
ハードウェアMCUのモデルと一致していますが、一方はハードウェアで実現され、もう一方はソフトウェアで実現されているだけです。
MCUソリューションのモデルは、以下の図に示すような星形構造です。
MCUの主要な処理ロジックは、以下の図に示されています:
1:共有端から送信された音声およびビデオストリームを受信する。
2:受信した音声およびビデオストリームをデコードする。
3:ビデオストリームについては、再レイアウトとミックス処理を行う。
4:音声ストリームについては、ミキシングとリサンプリング処理を行う。
5:ミックス後の音声およびビデオを再エンコードする。
6:受信クライアントに送信する。
2.音声およびビデオゲートウェイとして、デコードおよび再エンコードにより、異なるコーデックデバイスの差異を隠蔽し、
より多くの顧客の統合ニーズを満たし、ユーザーエクスペリエンスと製品の競争力を向上させることができます。
3.複数のビデオを1つのビデオにミックスすると、すべての参加者が同じ画面を見ることになり、顧客体験は非常に良好です。
WebRTC SFUソリューション(Selective Forwarding Unit)
SFUはメディアストリームルーターのようなもので、端末からの音声およびビデオストリームを受信し、必要に応じて他の端末に転送します。SFUは音声およびビデオ会議で非常に広く使用されており、特にWebRTCが普及した後です。
WebRTCの多方向通信をサポートするメディアサーバーは、基本的にSFU構造を採用しています。
SFUのトポロジと機能モデルは、以下の図に示されています:
上記の図において、B1、B2、B3、B4はそれぞれ4つのブラウザー/デバイスを代表しており、
各ブラウザー/デバイスは一つのストリームをSFUに共有します。
SFUは、共有者以外の3つのブラウザー/デバイスにそれぞれのストリームを転送します。
MCUに比べて、SFUは構造がとてもシンプルです。単にストリームを受信して他の人に転送するだけです。
しかし、このシンプルな構造が音声およびビデオの伝送に多くの便利をもたらしています。
例えば、SFUは端末の下りネットワーク状況に応じていくつかのフロー制御を行うことができます。
現在の帯域幅の状況やネットワーク遅延の状況に基づいて、一部のメディアデータを選択的に破棄し、通信の連続性を保証することができます。
日昇WebRTC SFUメリット
以下のような利点があります。1.データパケットを直接転送するため、エンコードやデコードが不要で、必要のCPUリソースが非常に少ないです。
2.直接転送により、遅延が大幅に低減され、リアルタイム性が向上します。
3.非常に大きな柔軟性をもたらし、異なるネットワーク状況や端末タイプにより適応しやすくなります。
Webアプリ、PC、スマートフォン
Web開発者が開発したプログラムで、Web開発者はWebRTCを統合したブラウザが提供するweb APIを基に、ビデオや音声のリアルタイム通信アプリを開発することができます。
PC端末では、標準のWebRTC標準APIを基にH5コードを提供し、アプリケーションの内容を拡張します。
スマートフォン端末では、日昇WebRTCがH5コードまたはFlutterコードを提供し、WeChatミニプログラムやアプリケーションの開発に基づいています。
WebRTC標準APIを基にして、シンプルで効率的な開発が可能です。
Web API
第三者開発者向けのWebRTC標準API(Javascript)で、開発者がWeb上でビデオチャットのようなアプリケーションを容易に開発できるようにします。All One WebRTCサーバーソリューション
stun(P2P)、turn(転送)、SFUストリームメディア配信サービス(Selective Forwarding Unit)、
MCUマルチポイントビデオ会議サービス(MultiPoint Control Unit)、Alexa転送サービス、低消費電力起動サービス、
携帯電話SMS警報サービス、クラウドストレージサービス、MCUルームビデオ会議サービス、信号サービス等を提供しています。
WebRTCのアーキテクチャコンポーネント特徴
●WebRTCは標準APIを通じて信号方式で迅速に第三者プラットフォームにアクセスできます。
例えば、アマゾンのAlexa、Google Home、Samsung SmartThings、WeChatミニプログラム、
LINEミニプログラム、第三者SaaSプラットフォームアプリケーションの統合などです。
1.アマゾンのAlexaに接続
a. WebRTC信号サービスがアマゾンのクラスターSFUサービスとハンドシェイクを行い、NAT越えを実現します。
b. アマゾンのAlexaとIPCやビジュアルドアベルとの双方向音声通話を実現します。
c. 機能拡張では、監視チャンネルを切り替えることができます。ドアベルのボタンやモーション検出方式で、Alexaが直接画像をリンクします。
電子制御のドアロックを音声指令で開閉したり、庭の灯りのカメラをオン/オフするなど、多様な操作が可能です。
d. WebRTC信号サービスがAlexaのSFUサービスと信号のハンドシェイクを行いNAT越えした後、WebRTCサーバーの流量コストと帯域幅の圧力を節約します。
2.Google Homeへの接続は完全にSTUN+TURNサービス体系を参考にしています。
どのような方法でローカル通信を確立しても、LAN内でリアルタイムの音声およびビデオを伝送できます。
●カスタム開発の利便性とメンテナンスの容易性
WebRTC標準APIのアーキテクチャにより、アプリケーション端のWeb、WeChatミニプログラム、APPの開発が簡単かつ迅速になります。
H5コードまたはFlutterコードを提供し、パッケージされた内容と標準のWeb APIインターフェースが完全に統合されます。
アプリケーション開発者は、H5またはFlutterを使用してAPPやWeb管理プラットフォームを開発することが、もはや複雑ではありません。
フロントエンドとバックエンドの分離による同時開発により、開発スケジュールが大幅に向上します。
メンテナンス作業も大幅に削減され、一つのコードセットでクロスプラットフォームアプリケーションを完成させることができます。
これは、私たちの開発者や起業家が求めている内容ではないでしょうか?
顧客のニーズに応えるカスタマイズを最速で行い、変動と増加の市場を実現することができます。
市場の複製と開拓は、新たなマイルストーンを迎えるでしょう。
1.WebRTCのビデオ処理分析
WebRTCのビデオ部分には、キャプチャ、エンコード/デコード(I420/VP8)、暗号化、
メディアファイル、画像処理、表示、ネットワーク伝送およびフロー制御(RTP/RTCP)などの機能が含まれます。
A.ビデオキャプチャモジュール---video_capture
ソースコードはwebrtc/modules/video_capture/mainディレクトリ下にあり、
インターフェイスと各プラットフォームのソースコードが含まれています。
Windowsプラットフォームでは、WebRTCはdshow技術を使ってビデオデバイス情報の列挙とビデオデータのキャプチャを実現しています。
これは、ほとんどのビデオキャプチャデバイスをサポートできることを意味しますが、
専用のドライバが必要なビデオキャプチャカード(例えば、HikvisionのHDカードなど)には対応していません。
ビデオキャプチャは、I420、YUY2、RGB、UYUYなどの複数のメディアタイプをサポートしており、フレームサイズとフレームレートの制御が可能です。
B.ビデオエンコード/デコード---video_coding
ソースコードはwebrtc/modules/video_codingディレクトリ下にあります。 WebRTCは、H.264/I420/VP8/VP9/AV1/FMPEGのエンコード/デコード技術を採用しています。
VP8は、GoogleがON2を買収した後のオープンソース実装であり、WebMプロジェクトでも使用されています。
VP8は、より少ないデータでより高品質のビデオを提供でき、特にビデオ会議のような要件に適しています。
同時に、Flutter APPのコードを提供し、日昇WebRTCはH.265チャネルのサポートをパッケージ化しており、
セキュリティ産業の製品がより高い圧縮比を求めるニーズも容易になります。
C.ビデオ暗号化---video_engine_encryption
ビデオ暗号化はWebRTCのvideo_engineの一部であり、
ビデオアプリケーション層の機能に相当します。P2Pのビデオ通信双方にデータの安全保証を提供し、
Web上でのビデオデータの漏洩を防ぐことができます。
ビデオ暗号化は送信端と受信端でビデオデータの暗号化および復号化を行い、鍵はビデオ通信双方で協議されます。
その代償として、ビデオデータ処理のパフォーマンスに影響を与える可能性があります。
また、ビデオ暗号化機能を使用しないことも可能で、その場合はパフォーマンスが向上するでしょう。
ビデオ暗号化のデータソースは、原始データストリームまたはエンコード後のデータストリームのいずれかである可能性があります。
エンコード後のデータストリームであると想定され、その場合、暗号化のコストは低くなる可能性がありますが、さらに研究が必要です。
D.ビデオメディアファイル---media_file
ソースコードはwebrtc/modules/media_fileディレクトリ下にあります。
この機能は、ローカルファイルをビデオソースとして使用できるもので、ある種のバーチャルカメラの機能に似ています。
サポートされている形式にはAviがあります。
また、WebRTCは音声およびビデオをローカルファイルに録音することもでき、非常に実用的な機能です。
E.ビデオ画像処理---video_processing
ソースコードはwebrtc/modules/video_processingディレクトリ下にあります。
ビデオ画像処理は、各フレームの画像に対して行われ、輝度検出、色の強化、
ノイズリダクションなどの機能を含み、ビデオ品質を向上させるために使用されます。
F.ビデオ表示---video_render
ソースコードはwebrtc/modules/video_renderディレクトリ下にあります。
Windowsプラットフォームでは、WebRTCはDirect3D9およびDirectDrawを使用してビデオを表示します。これが唯一の方法であり、必須です。
G.ネットワーク伝送とフロー制御
ネットワークビデオにおいて、データの伝送と制御は核心的な価値です。WebRTCは、成熟したRTP/RTCP技術を採用しています。
2.WebRTCのオーディオ処理分析
WebRTCの音声部分には、デバイス、エンコード/デコード(iLBC/iSAC/G722/PCM16/RED/AVT、NetEQ)、
暗号化、音声ファイル、音声処理、音声出力、音量制御、音声とビデオの同期、
ネットワーク伝送とフロー制御(RTP/RTCP)などの機能が含まれています。
A.音声デバイス---audio_device
ソースコードはwebrtc/modules/audio_device/mainディレクトリ下にあり、
インターフェースと各プラットフォームのソースコードを含んでいます。
Windowsプラットフォームでは、WebRTCはWindows Core AudioおよびWindows Wave技術を使用して音声デバイスを管理し、
ミキサーマネージャーも提供しています。音声デバイスを利用することで、音声出力や音量制御などの機能を実現できます。
B.音声エンコード/デコード---audio_coding
ソースコードはwebrtc/modules/audio_codingディレクトリ下にあります。
WebRTCは、iLBC/iSAC/G722/PCM16/RED/AVTのエンコード/デコード技術を採用しています。
また、WebRTCはNetEQ機能を提供しています。これはジッターバッファーとパケットロス補償モジュールで、
音質を向上させ、遅延を最小限に抑えることができます。もう一つの核心機能は、音声会議に基づくミキシング処理です。
C.音声暗号化---voice_engine_encryption
ビデオと同様に、WebRTCは音声の暗号化機能も提供しています。
D.音声ファイル
この機能では、ローカルファイルを音声ソースとして使用できます。
サポートされている形式にはPcmとWavがあります。 同様に、WebRTCは音声をローカルファイルに録音することもできます。
E.音声処理---audio_processing
ソースコードはwebrtc/modules/audio_processingディレクトリ下にあります。
音声処理は音声データに対して行われ、エコーキャンセル(AEC)、AECモバイル(AECM)、自動ゲインコントロール(AGC)、
ノイズリダクションなどの機能を含み、音質を向上させます。
F.ネットワーク伝送とフロー制御
ビデオと同様に、WebRTCは成熟したRTP/RTCP技術を採用しています。
■WebRTC拡張について
WebRTCは閉じたシステムではありません。逆に、非常に拡張しやすい構造をしており、
Device、Codec、Render、Transportなど、拡張可能なインターフェースを提供しています。
例えば、H264のCodecを追加することで、既存のシステムへのサポートを容易に追加できます。
組み込みイメージデバイスについては、ネットワーク伝送層を拡張することができます:
ビデオキャプチャ端からエンコードされたデータパケットを得たとき、
それを組み込み端末デバイスのネットワーク伝送を通じて直接、WebRTCサーバーが各アプリケーションクライアントに送信し、
その後WebRTCが受信処理を行うことで、私たちが求める機能を実現します。
■WebRTCアプリケーション拡張について
WebRTCがW3C標準に組み込まれたことで、
すべてのシステムおよびブラウザがWebRTCをサポートしています。
アプリケーションの拡張性は非常に高いです。標準のWebRTC P2P。
1):遠隔オンライン音声ビデオ対話教育業界向け
2):遠隔医療診療および手術ガイダンス向け
3):遠隔農場の可視化物連管理およびアプリケーション向け
4):セキュリティ監視分野で、企業のプラットフォーム開発コストと
ストリーミングメディアサーバーコストを削減。
リアルタイム性が高く、プラットフォームのアーキテクチャとメンテナンスが簡単で容易
5):遠隔音声ビデオサービス、保険業界、遠隔執行業界向け
6):スマートコミュニティの入口管理、スマートケア産業など向け
7):機械ビジョン検索とロボットアームの同期制御には、リアルタイム性が利点です。
■日昇WebRTCに基づき活用製品
■WebRTC Native APIの機能
WebRTC Native APIはWebRTC specに基づいて実装されており、
RTCアプリケーションの開発者が使用しやすいようになっています。
主にマルチメディアストリームとPeerConnection APIを含んでいます。
■WebRTC Native APIの構造図
■WebRTC Native APIのシーケンス図
●接続を確立するシーケンス図:
●受信の際にシーケンス図:
●クローズの際にシーケンス図:
端末間でメディア通信チャネルを提供頂ければ、リアルタイム通信を確立し、
画像機器とデバイスやモバイル端末との遠隔音声ビデオ通信が可能になります。
「(Line)」と「WhatsApp」がビデオ通話を確立できるのは、
あなたが日本で携帯電話を使ってアメリカの友人の自宅の固定電話に電話をかけるのと同じです。
なんて素晴らしいことでしょう!この日が早く来ることを推進することは、
私たちインターネット音声ビデオ通信の作業者の歴史的な責任ではないでしょうか?
ここまでWebRTC基本仕組み、日昇WebRTCの特徴、WebRTC活用シーンを解説しました、
では、我々の業務として、どこから始まりますか?
日昇WebRTCとして、ユーザー使いやすさ、製品開発短縮、コスト削減という立場から
作ったものですので、簡単に音声・ビデオ通話システムを構築できます。
●導入の流れ:
上図通り、導入の流れを説明させていただきます。
●①お客様からメールで弊社に依頼
問い合わせはhttps://www.csun.co.jpホームページに問い合わせボタンがあります、そこからもできます、または、直接、info#csun.co.jp(#を@に置き換える)に連絡してもよいです。
このメール内容には下記内容が望まれます。
1)会社名、担当者部署、名前、連絡先
2)構築予定の事業分野、業務内容(P2Pライブビデオ、録画、ダウンロード)等の内容
3)日昇カメラを導入するか
弊社のカメラは必要の場合、2種類があります、下記のリンクから購入できます。 4)クライアント側種類(例:カメラ、PC、iPhone、Android携帯、他の組み込みデバイス等)
5)お客様が自社のクラウドサーバーが持っているか(P2Pサーバー構築予定があるか)
●②、④弊社がメールを受信してから提案とトライアル資料をメールで回答
●⑤弊社が提供したトライアル資料に基づき1か月間のトライアルを行う
●導入する場合、⑥導入契約締結を行う
導入契約を作った後、下記作業を進められます。
1)導入手順資料提供
2)各クライアント側用のデモソースも提供
(PC Web、ios/android用のflutter_webrtc_application、組み込み用のデモ、Linux用デモ)
3)P2Pサーバー構築有無、クライアント側の種類により⑦導入サーポートを行う。
※種類の数により、導入サーポート料金は違います。1種類が10万円サーポート
※導入期間は基本的に1か月間、動作確認が1か月間、トライアル期間併せて3か月間
※新規開発によりコスト大幅に削減、期間も短縮
4)開発経験がないお客様は弊社にカスタマイズ開発も受託可能です、その際に、実際システム仕様により見積を行う
●お客様から⑧導入実施を行い、⑨導入完了後、⑩製品ライセンス購入契約を行う
製品ライセンスは二つ場合を分けます。
1)日昇カメラを使わない場合、ライセンスは別途購入必要となります、P2Pサーバーは日昇側のものを使わないであれば、
ライセンス料機は一回購入後、そのバージョンを永遠に無償使えます。
※1回最低限500個ライセンス購入必要、1個1000円です。 2)日昇カメラを購入する場合にはカメラと同じの数でライセンス発行できます。ライセンス料金はカメラ購入数により割引も可能です。
●製品使用開始後、メンテンナスの安心サービス必要の場合、⑬メンテナンス契約締結も行う
過去の実績に基づき、導入後、同じのバージョンで基本的にメンテナンス不要となります。
24時間のP2Pサービスが多いですので、安心のため、安い年間メンテナンス契約も作成可能です。
詳しくは別途ご相談必要です。
コメントはまだありません。