AgoraIO-Community / Agora-Python-SDK

Use Agora RTC SDK with Python!
MIT License
69 stars 25 forks source link

Linux support #1

Open technophilic opened 5 years ago

technophilic commented 5 years ago

AI today is extensively developed in Linux servers and datacenters. It would be great if Agora provides Linux support for the python SDK which would mostly be used to integrate video with AI applications.

plutoless commented 5 years ago

Python SDK on linux is on our roadmap plan but we do not yet have a specific timeline yet. Please keep watching our repo for latest updates.

Khalid-noor commented 3 years ago

hey, is the support for Linux is implemented ? I couldn't install it to my laptop

eugene-yang commented 3 years ago

@plutoless mind sharing the challenges of bring this SDK to linux? Maybe the community can help figure this out.

plutoless commented 3 years ago

@eugene-yang the challenge is we don't have an official published linux rtc sdk.. what i know is we have a version to be released in near future but currently i can't yet give a precise date. once we have it supporting linux python would be pretty straight-forward.

eugene-yang commented 3 years ago

Thanks @plutoless, is that an compiling issue or deeper with the system calls? I could be very wrong but I imagine that an OSX version is not going to be very different from a Linux version, right?

plutoless commented 3 years ago

@eugene-yang in fact no. the media device api are quite different :)

alok-mishra-01 commented 3 years ago

Highly awaited feature for us as well

grzegorzk commented 3 years ago

Would be great to be able to use agora-python-sdk on linux..

hblanken commented 3 years ago

👍 Would be critical to have the sdk on linux. Linux is the most common streaming environment.

sqeeswy commented 3 years ago

Linux Agora SDK would be great thing to have available in our toolbox for wider range of integrations. Really highly awaited feature.

ialhashim commented 2 years ago

Here is my attempt at this, not sure if its the most efficient or not. For my use case I just needed video not audio.

  1. First I downloaded the Agora On-premise Recording SDK for Linux.
  2. I modified the recording type to this uint32_t getVideoFrame = agora::linuxsdk::VIDEO_FORMAT_YUV_FRAME_TYPE; this gives me raw frames as fast as they come. If you use other frame types it will be on a timer with minimum one frame per second.
  3. I modified the function AgoraSdk::videoFrameReceivedImpl to save the frames into a buffer within the recorder to process it on the main thread.
  4. I consume the frames as they come (display, run AI model on, etc.), notice I store each incoming frame by a map with the key being the user ID.
  5. You can test the results by simply joining the same channel and appID from the browser here.

I believe audio streams can be treated the same. The good thing is that each frame comes with its millisecond timestamp to help with syncing.

thedogrex commented 1 year ago

Any updates or workarounds? Or I need to create somehow Python API for C++ On-premise SDK and run it on linux? Right now the alternative is to use Windows Server, its very bad alternative for my situation.

Please somebody tell me if you have 1-week workaround idea.

louay-075 commented 1 year ago

We are waiting for the linux agorartc python SDK