On 12/17/18 4:27 PM, Marko Vojinovic wrote: > > Hello everybody, > > Huh, it's been a while... :-) > > I'm interested in your suggestions/experience regarding multimedia > tools for streaming audio and possibly also video via LAN (mostly WiFi), > played back on multiple client machines, with little to no latency. > > You know --- say I want to play some music on my laptop in the living > room, and I want to hear the same thing play on another computer in the > kitchen, and another one in the garage, etc... ;-) > > Ideally, it should be low-latency, in the sense that playback should be > synchronized across devices. Like, if two machines are playing in two > rooms, and I'm in the hallway in between them, I shouldn't hear any > offset between the two playbacks. > > I'm looking for Linux-centric solutions in general, but mostly from > Fedora or CentOS land. It should do audio, while video would probably > depend on the WiFi speed, I guess. > > So far, I've been thinking of a DIY combination of bash scripts and > mplayer, but I guess it's easier to try out something that someone > already made, before I end up mocking up the whole thing from scratch > myself. > > Looking for any pointers and suggestions (including keywords for > google). ;-) An issue I've dealt innumerable times in my ~20+ years in the streaming business. Most streaming platforms now use quasi-HTTP connections to packetize the stream content (HLS, HDS, MPEG-Dash, et al.). As clients connect, they're given a "playlist" of these packets. Depending on the server and how it's set up, the server may have "n" "current" chunks, passes "n-1" chunks in a playlist, and expect the player to request another playlist when the last chunk starts playing. The gotcha here is that each client will get a slightly different playlist. Synchronization between multiple clients is almost impossible in this scenario if the current chunk list is more than one. One can try to mitigate it by making the current chunklist and the playlist exactly the same length, but that's not always possible. Older technologies such as Icy (Shoutcast/Icecast) and RTSP (the old RealNetworks protocol) do support client synchronization (sorta), but due to the inherent latencies in decoding the data, absolute synchronization is also difficult (you'll hear the differences). As long as the data is packetized, seamless synchronizing among multiple clients is almost impossible IMHO. There's almost always a lag of some sort. It's not like broadcast radio or TV. Even digitized TV signals will display differently on different TVs in the same room due to signal reflections, hardware differences in the decoders, software, etc. If you're trying to emulate the experience you might have in wandering through a shopping mall, malls typically use fully analog systems with a distribution amplifier feeding a bus where individual loudspeaker amps pick the signal off the distribution amplifier for local playback. No packetization, no decoding, nada. The only synchronization issues there are the speed of the signal on the bus (thank you, Grace Hopper). ---------------------------------------------------------------------- - Rick Stevens, Systems Engineer, AllDigital ricks@xxxxxxxxxxxxxx - - AIM/Skype: therps2 ICQ: 226437340 Yahoo: origrps2 - - - - "Very funny, Scotty. Now beam down my clothes." - ---------------------------------------------------------------------- _______________________________________________ users mailing list -- users@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to users-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/users@xxxxxxxxxxxxxxxxxxxxxxx