selkies-project / selkies-gstreamer

Open-Source Low-Latency Accelerated Linux WebRTC HTML5 Remote Desktop Streaming Platform for Self-Hosting, Containers, Kubernetes, or Cloud/HPC
Mozilla Public License 2.0
344 stars 48 forks source link

[META] Windows/MacOS support mega thread #57

Open ehfd opened 1 year ago

ehfd commented 1 year ago

Windows support is in progress with the contribution from the community with @callTx mainly working on the project (edit: seems like it has stalled).

For Windows, the pipeline should add d3d11screencapturesrc (screen capture), d3d11colorconvert (color convert), and wasapi or wasapi2 (audio capture).

In addition, it would be worth adding the mfh264enc and mfvp9enc encoder pipelines for Windows native encoding capabilities as well as nvd3d11h264enc, nvd3d11h265enc, and nvd3d11av1enc for NVIDIA, which also may be used for Windows.

Assess the implementation for pynput for Windows input. Apparently, there are no specific dependencies.

Removal of patches to the GStreamer build process in #51 means that the binary build available from the project for Windows will work without additional alterations.

For MacOS, pyobjc-framework-applicationservices and pyobjc-framework-quartz are the frequently used interfaces for input.

avfvideosrc capture-screen=true (video capture), glcolorconvert (color convert, not sure), and osxaudiosrc (audio capture) are probably the way to go for media capture.

Relevant to #34.

matbee-eth commented 1 year ago

// Removal of patches to the GStreamer build process in https://github.com/selkies-project/selkies-gstreamer/pull/51 means that the binary build available from the project for Windows will work without additional alterations.

Does this mean I can currently run a compile of the project while removing the patches to make a windows build?

Answer from maintainer: Yes, but the capture interface and input interface are not written.

ehfd commented 1 year ago

Does not work out of the box right now. BUT, we have contributors @callTx and @Xosrov doing this and probably have it about 80% working.

ehfd commented 1 year ago

https://discord.gg/wDNGDeSW5F

We have a channel specifically for Windows development.

boxerab commented 1 year ago

Hi folks, what's the status of Windows development ?

ehfd commented 1 year ago

@callTx

boxerab commented 1 year ago

@ehfd would you be able to point me to a branch with the windows port ? I looked at the forks but couldn't find anything windows specific.

ehfd commented 1 year ago

@boxerab https://github.com/selkies-project/selkies-gstreamer-msys2 TBA

boxerab commented 1 year ago

@ehfd still interested in seeing code for the windows port. Any updates on when that might be available ? Thanks!

boxerab commented 1 year ago

hmmmmmm - I would very much like to see any selkies code ported to windows.

ehfd commented 1 year ago

@callTx

callTx commented 1 year ago

Hello @ehfd and all. Really sorry for the Windows port has not been released. I was facing on a plenty of gstreamer connection bug on my local repo and after many fail attempts I decide refactore and revise all code, most of them on gstreamer webrtc core.

Em qui., 27 de abr. de 2023 às 23:13, Seungmin Kim @.***> escreveu:

@callTx https://github.com/callTx

— Reply to this email directly, view it on GitHub https://github.com/selkies-project/selkies-gstreamer/issues/57#issuecomment-1526881732, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIYW2VRTYTSJ624N4CJXVNLXDMRWFANCNFSM6AAAAAAQWL57OU . You are receiving this because you were mentioned.Message ID: @.***>

callTx commented 1 year ago

Don't worry guys I'll not give up this project.

Em sex., 28 de abr. de 2023 às 08:43, callTX @.***> escreveu:

Hello @Seungmin Kim and all. Really sorry for the Windows port has not been released. I was facing on a plenty of gstreamer connection bug on my local repo and after many fail attempts I decide refactore and revise all code, most of them on gstreamer webrtc core.

Em qui., 27 de abr. de 2023 às 23:13, Seungmin Kim < @.***> escreveu:

@callTx https://github.com/callTx

— Reply to this email directly, view it on GitHub https://github.com/selkies-project/selkies-gstreamer/issues/57#issuecomment-1526881732, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIYW2VRTYTSJ624N4CJXVNLXDMRWFANCNFSM6AAAAAAQWL57OU . You are receiving this because you were mentioned.Message ID: @.***>

boxerab commented 1 year ago

@callTx thanks, looking forward to this. Even though not complete, why don't you share the code on a branch? I'm very keen to take a look. Also, I may be able to help with port.

ne0YT commented 1 year ago

@callTx hey there, any updates?

ehfd commented 5 months ago

The code has become too Linux-centric. Whoever wants to do this must clean up the code to distinguish elements between Windows and Linux.