MayaPosch / NymphCast

Audio and video casting system with support for custom applications.
http://nyanko.ws/nymphcast.php
BSD 3-Clause "New" or "Revised" License
2.43k stars 82 forks source link

Player can't find server when not on local machine #50

Closed PureTryOut closed 3 years ago

PureTryOut commented 3 years ago

I've been testing nymphcast_server on a remote machine (still on the local network though) but NymphCastPlayer can't seem to find it. I've made sure avahi is running on both machines (not sure if required) but no matter what I do, nothing appears in the Remote tab.

However if I run nymphcast_server on my local machine and the Player as well, it can find the local instance perfectly fine.

MayaPosch commented 3 years ago

Are both systems on the same subnet? NymphCast currently uses NyanSD for service discovery. This relies on UDP broadcast.

Is there anything in the logs on either side that might be relevant here?

PureTryOut commented 3 years ago

Yup, same subnet. 192.168.1.x

The logs don't show anything relevant no. When I run both on the same machine I can see messages being broadcasted between the two, but this does not happen when I run the server on a different machine.

MayaPosch commented 3 years ago

Is there a firewall or similar on either system that might block (outgoing) UDP traffic? NymphCast uses UDP ports 4004 and 4005 for discovery.

The UDP broadcast packet is also sent on all network interfaces that exist on the local machine.

PureTryOut commented 3 years ago

No there is not.

PureTryOut commented 3 years ago

So interesting situation. I have 3 machines I can run Nymphcast on: a laptop, a desktop and a RockPro64 with Plasma Bigscreen on it installed. If I run the server on the RockPro64 and the client on my desktop, the client can't find the server. However I just tried the server on my laptop and the client still on my desktop and it could find it, and the same the other way around.

I haven't setup a firewall myself but maybe the postmarketOS configuration by default installs one nowadays, I'm not entirely sure but I recall such a change being done recently. I'll check

PureTryOut commented 3 years ago

Derp, yes that was it. A firewall after all... Ignore my silly problems :unamused:

PureTryOut commented 3 years ago

What ports are used for actually playing and sending commands? Enabling UDP 4004 in the firewall did make the machines find each other, but now the Player hangs when I actually try to play something.

MayaPosch commented 3 years ago

NymphCast Server: UDP 4004 (discovery), TCP 4004 (playback).

NymphCast Media Server: UDP 4005 (discovery), TCP 4005 (playback).

I'll add this to the documentation.

PureTryOut commented 3 years ago

Ah TCP, yup that does the trick, thanks! What exactly is that media server you mentioned though?

MayaPosch commented 3 years ago

https://github.com/MayaPosch/NymphCast-MediaServer

It's somewhat similar to a DLNA server, I guess. It makes a list of media files available to clients, and the client can initiate playback of this content which is then streamed from the media server to the server.

PureTryOut commented 3 years ago

Ah so you install that on a separate machine with media files, e.g. a NAS, and then clients can instruct servers to play it? Interesting, will package it too, thanks!

MayaPosch commented 3 years ago

Yes, that's the general idea :)

I developed it for situations like e.g. having the client on one's phone whilst on the couch, and the media files being all on a desktop system/server/NAS on the network. Not having to copy movies etc. to one's phone every time (and using up battery...) seemed like a plus.