FDH2 / UxPlay

AirPlay Unix mirroring server
GNU General Public License v3.0
1.35k stars 72 forks source link

Unable to get udpsink working #132

Closed Inventor22 closed 1 year ago

Inventor22 commented 1 year ago

Hi, I am unable to get udpsink videosink working on Windows 11. The default DX11 sink works no problem though.

OS Name: Microsoft Windows 11 Pro Version: 10.0.22000 Build 22000

I startup UxPlay with the following parameters: uxplay -n AirPlay -nh -as 0 -vs "udpsink host=localhost port=5000"

I also tried using default values: uxplay -n AirPlay -nh -as 0 -vs udpsink

Which should use port 5004, according to this api reference.

Logged output:

$ uxplay -n AirPlay -nh -as 0 -vs "udpsink host=localhost port=5000"
audio_disabled
using system MAC address *
Initialized server socket(s)
Accepted IPv4 client on socket 5636
Local: 192.168.1.*
Remote: 192.168.1.*
Open connections: 1
Client identified as User-Agent: AirPlay/620.8.2
Accepted IPv4 client on socket 1956
Local: 192.168.1.*
Remote: 192.168.1.*
Open connections: 2
raop_rtp_mirror starting mirroring
ct=8 spf=480 usingScreen=1 isMedia=1  audioFormat=0x1000000
raop_rtp starting audio
Begin streaming to GStreamer video pipeline

When I open up WireShark and filter by UDP port, I see no packets. Capture filter: udp port 5000 Display filter: udp.port==5000

Any ideas?

fduncanh commented 1 year ago

Sorry, have never tried to restream from uxplay, but it would be interesting.
One issue would be recombining the audio and video, but I see you are suppressing it with -as 0. good luck, and report any successes. User @LockonS in issue #118 was trying something similar.

Nice to see someone is trying out the new Windows support!

Inventor22 commented 1 year ago

Ah, thanks for the suggestion. I tried including audio, but still no luck:

uxplay -n AirPlay -nh -vs udpsink

What I'm trying to do is read frames with OpenCV in python. I originally tried using shmsink, but that didn't seem to work either (I have the good, bad, & ugly gstreamer extensions installed). I'm also not sure if there's a way to read frames from the default Direct3D11 Renderer. Any thoughts would be appreciated.

fduncanh commented 1 year ago

sorry, no idea. The decrypted video and audio (plus timestamps) pass through callback functions "video process" frame by frame and "audio process" packet by packet in uxplay.cpp on their way from RAOP to gstreamer.

fduncanh commented 1 year ago

this is really asking for advice, and is not an issue. Sorry I cant help more,

Inventor22 commented 1 year ago

No worries, thanks for the project in the first place. I wasn't able to get the udpsink or shmsink working, but I may return to this and give it another go sometime. For the time being, I'm using the DX11 sink and grabbing a screenshot of the application with python.