open-webrtc-toolkit / owt-server

General server (streaming/conference/transcoding/anayltics) for OWT. (A.k.a. MediaServer)

Home Page:https://01.org/open-webrtc-toolkit

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hi, I write a python client for owt-server

vipcxj opened this issue · comments

commented

Hi, I write a python client for owt-server.
I wish you guys give me some suggestions.

commented

Hi vipcxj,
Your project looks great!
You can improve the document like introducing the OWT versions, so users can easily use it.

commented

@starwarfan Could you give me more details? What's "introducing the OWT versions" means?
By the way, In release 5.0, it said "Enabled peer connection reuse for conferencing, now force to use single
peer connection in JavaScript SDK as pilot.". But I have tested, imitating the js client code, subscribe again and again is impossible, the connect can not be established, it will hang forever. And there is comment in the js code said a channel only support a stream. So it seems that a channel only support a subscribation or publication. So I change may code to create a new channel every time calling publish or subscribe.

commented

The client is based on which version of OWT.
The 5.x JavaScript SDK supports multiple streams over single peer connection.
If you imitates the JS SDK, you need confirm that if aiortc supports adding tracks on existing peer connection and generates right SDP.

commented

@starwarfan

The client is based on which version of OWT.

I think it support the latest owt-server which I have tested. Since I imitates the JS SDK, it may support all versions the js sdk support.

The 5.x JavaScript SDK supports multiple streams over single peer connection.
If you imitates the JS SDK, you need confirm that if aiortc supports adding tracks on existing peer connection and generates right SDP.

I'm not sure how aiortc gets sdp, but aiortc doesn't support onIceCandidate, so candidates are accepted only once. setLocalDescription is written directly in the publish and subscribe methods so every time publishing and subscribing, it seems that the js client re-establish the connection. That's the hardest thing for me to understand. I have tested that my python clients can publish repeatedly without getting stuck, but subscribe does not work, so I change the code so that it create a new channel every time publishing and subscribing