openairplay / airplay2-receiver

AirPlay 2 Receiver - Python implementation
2.12k stars 131 forks source link

Not listed "AirPlay Display" #74

Closed toruishihara closed 1 year ago

toruishihara commented 2 years ago

The problem

I run airplay receiver on Raspberry Pi 4 by "python3 ap2-receiver.py -m myap2 -nv --netiface=eth0" I saw mDNS packets of "None._airplay.local" with receiver IP address on Wireshark on same network.

I try to screen mirroring from MacBook. On macOS -> System Preferences -> Displays -> AirPlay Display: the list is empty. I cannot mirror from MacBook.

What commit exhibits the issue?

9b37407

Was there a last known working commit?

No response

What type of installation are you running?

direct (via python3)

With which python3 version do you run Receiver?

Python 3.7.2

OS the receiver runs on

Linux raspberrypi 5.15.32-v8+ aarch64

OS the sender runs

macOS Big Sur 11.6.3

Which sender client was used

System Preferences -> Displays -> AirPlay Display

Command invocation

python3 ap2-receiver.py -m myap2 -nv --netiface=eth0

Please include --debug output which helps to illustrate the problem

$ python3 ap2-receiver.py -m myap2 -nv --netiface=eth0 --debug Receiver logging level: DEBUG Receiver: Name: None Receiver: Enabled features: 0001c300405f4200

[HAP] logging level: DEBUG [HAP]: Loading ed25519 keypair for own ID: aa5cb8df-7f14-4249-901a-5e748ce57a93 Receiver: Interface: eth0 Receiver: Mac: dc:a6:32:21:f1:64 Receiver: IPv4: 192.168.2.20 Receiver: IPv6: fe80::5754:665:8c26:259d Receiver: [asyncio]: Using selector: EpollSelector Receiver: mDNS: service registered Receiver: Starting RTSP server, press Ctrl-C to exit... [AP2Server: 192.168.2.20:7000] logging level: DEBUG Receiver: serving on 192.168.2.20:7000

Additional information

81 15:38:26.600734 192.168.2.20 MDNS 224.0.0.251 Standard query response 0x0000 PTR None._airplay._tcp.local SRV, cache flush 0 0 7000 dca63221f164@None._airplay.local TXT, cache flush A, cache flush 192.168.2.20 AAAA, cache flush fe80::5754:665:8c26:259d

WireShark mDNS packets.

Neustradamus commented 1 year ago

@systemcrash, @LewdNeko: What do you think?

systemcrash commented 1 year ago

We have never supported video. (vanilla flavoured) Python doesn't have any support for video output itself. You could build a dummy video receiver which decrypts the packets and does something else with them, like forward them to a /dev/gpu0. They're all AES128 encrypted. Then you must enable video handling flags.