libdatachannel-py
OBS が採用している WebRTC のライブラリは libdatachannel というライブラリの Python バインディングを OSS として Apache-2.0 で GitHub に公開しました。
開発の動機
実は libdatachannel を使った自社製品向けの C SDK を OSS として公開しているのですが、既に libwebrtc をベースにした C++ SDK があるとことや、 気軽に利用しづらいという状況でした。
libdatachannel はとても良いライブラリなので、なんとか気軽に使えるようなかたちで提供できないだろうか?と考えた結果、自社製品に依存しない形で libdatachannel の Python バインディングを公開すれば、LLM との相性も良いことから、使ってもらえるかもしれないと考えて開発するにいたりました。
最近は OpenAI が Realtime API (WebRTC) を公開していることもあり、LLM との相性が良い、Python で WebRTC を利用したい場合、 libdatachannel-py を検討してもらえたらなと思っています。
今後
現時点では音声や映像のコーデックを含めていないため、音声や映像は自前でエンコード/デコードする必要があります。この部分を別ライブラリとして提供するべきか、組み込むべきかを検討中です。
音声や映像のコーデックを利用できるようにして、リリースする予定です。利用できるコーデックについてですが、音声は Opus 、映像は AV1 (libaom) と H.26x (Apple Video Toolbox) を予定しています。
今後は libdatachannel-py が Python で WebRTC を利用する際の選択肢の一つになればと思います。