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(a)alldigital.com -
- AIM/Skype: therps2 ICQ: 226437340 Yahoo: origrps2 -
- -
- "Very funny, Scotty. Now beam down my clothes." -
----------------------------------------------------------------------