aiortc
とは何ですか? aiortc
Python の Web リアルタイム通信 (WebRTC) およびオブジェクト リアルタイム通信 (ORTC) 用のライブラリです。これは、Python の標準非同期 I/O フレームワークであるasyncio
上に構築されています。
API は、Python 構造を使用しながら、対応する Javascript に厳密に従っています。
Promise はコルーチンに置き換えられます
イベントはpyee.EventEmitter
を使用して発行されます
aiortc
について詳しくは、ドキュメントをご覧ください。
aiortc
使用する必要があるのはなぜですか?主要な WebRTC および ORTC 実装は、Web ブラウザーに組み込まれるか、ネイティブ コードの形式で提供されます。これらは広範な実戦テストが行われていますが、内部は複雑であり、Python バインディングは提供されていません。さらに、これらはメディア スタックと密接に結合しているため、オーディオまたはビデオ処理アルゴリズムを組み込むことが困難になります。
対照的に、 aiortc
実装は非常にシンプルで読みやすいです。そのため、WebRTC がどのように動作するかを理解したい、またはその内部をいじりたいと考えているプログラマーにとって、これは良い出発点となります。 Python エコシステムで利用可能な広範なモジュールを活用することで、革新的な製品を簡単に作成することもできます。たとえば、シグナリング チャネルとデータ チャネルの両方を処理する完全なサーバーを構築したり、OpenCV を使用してコンピュータ ビジョン アルゴリズムをビデオ フレームに適用したりできます。
さらに、クラス最高のコード品質を確保するために、 aiortc
コード用の広範なテスト スイートの作成に多大な労力が費やされました。
aiortc
使用すると、オーディオ、ビデオ、データ チャネルを交換でき、相互運用性は Chrome と Firefox の両方に対して定期的にテストされます。その機能の一部を次に示します。
SDPの生成/解析
ハーフトリクルと mDNS サポートによるインタラクティブな接続の確立
DTLS キーと証明書の生成
DTLSハンドシェイク、暗号化/復号化(SCTP用)
RTP および RTCP の SRTP キーイング、暗号化および復号化
純粋な Python SCTP 実装
データチャネル
オーディオの送受信 (Opus / PCMU / PCMA)
ビデオの送受信(VP8 / H.264)
オーディオ / ビデオ / データ チャネルのバンドル
パケット損失から回復するための NACK / PLI を含む RTCP レポート
aiortc
インストールする最も簡単な方法は、次のコマンドを実行することです。
pip インストール aiortc
システムにホイールがない場合、またはソースから aiortc をビルドしたい場合は、システムにいくつかのライブラリをインストールする必要があります。
オーディオエンコード/デコード用の Opus
ビデオエンコード/デコード用のLibVPX
Debian/Ubuntu では次を実行します。
apt インストール libopus-dev libvpx-dev
OS X では次を実行します。
brew install opus libvpx
aiortc
BSD ライセンスに基づいてリリースされています。