Re: Software for streaming audio or video over LAN

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/19/18 9:13 PM, Samuel Sieb wrote:
> On 12/19/18 7:59 PM, Marko Vojinovic wrote:
>> Guys, I'm surprised that this thing is so complicated to design. If I
>> were to do it, I'd just have the server add a timestamp tag to each
>> packet, indicating that "this packet is to be played at 09:34:27 GMT",
>> and send enough packets ahead of time to clients. Each client then
>> collects enough packets, decodes the data, and plays it according to
>> the timestamps. Given that, any synchronization issues between the
>> system clocks of the clients should be handled by NTP, which already
>> does an excellent job.
>>
>> Am I missing some obvious problem with such a design?
> 
> Most software is designed for people that don't have any idea what NTP
> is. :-)
> 
>> And I'm also surprised that LMS is the only choice here? Could it
>> really be true that nobody else implemented anything like this, ever?
>> Because to me it sounds like a quite common thing to ask for. When I
>> posted the question, I was expecting to receive at least 4-5 different
>> suggestions, and then people would start fighting over which one is the
>> most convenient, etc... Instead, I receive only one suggestion (LMS),
>> and a bunch of responses that what I'm asking for is more or less
>> impossible to design, which is quite surprising.
> 
> I looked for a long time before I found this.  I was starting to work on
> my own solution.  I think the consumer market prefers pre-built
> solutions like the Sonos speakers.  Also, I wonder if most people are
> more interested in personal audio anyway.  They want earbuds, not
> multi-room systems.

I don't know why I didn't think of this before. D'oh!

For prerecorded (even live) audio content, Icecast (open-source) or
Shoutcast (proprietary) worked very well for us. Unlike HDS, HLS, MPEG-
Dash and the like, it is connection-oriented. This means that clients
play whatever the server is ingesting at the moment and remain connected
to the server for the duration of the session. Because of this, any
given server can only handle so-many clients (primarily limited by
server bandwidth). In my experience, Icecast (at least) itself is fairly
lightweight.

Icecast provides a description subchannel so the client can display
"what's playing now (artist, album, song)". I think it's the most common
mechanism used for internet radio stations other than apps such as "I
Heart Radio" here in the US and most audio playback clients I've used
support it.

If you may potentially have large numbers of clients, Icecast (at least)
provides a "fanout" mechanism, meaning that a stream comes into an
"ingest" server. That ingest server only allows client connections from
"edge" servers and the edge servers are what clients connect to. You can
have as many edge servers as are needed (up to what the ingest server
can support). You could have multiple layers of servers (ingest-
level1distro-level2distro-edge) with the understanding that each layer
between the ingest and edge will insert a delay, but all clients should
see the same delay. It also provides for some authentication mechanisms.

We used Icecast in the "ingest-edge-client" mode very successfully in
the past (two "classes" of content, so two ingest servers and seven edge
servers per ingest server). We've had simultaneous connections of >120K
clients spread across all the edge servers with a total bandwidth of
about 4.2Gbps at full song (pun intended).

Icecast is available from the standard repos:

	icecast.x86_64		2.4.4-1.fc29	updates
	icecast-doc.noarch	2.4.4-1.fc29	updates

The maintainer (last time I checked) was based in the UK, was a truly
nice chap and quite responsive and helpful.

Website: http://icecast.org/
----------------------------------------------------------------------
- Rick Stevens, Systems Engineer, AllDigital    ricks@xxxxxxxxxxxxxx -
- AIM/Skype: therps2        ICQ: 226437340           Yahoo: origrps2 -
-                                                                    -
-           Fear is finding a ".vbs" script in your Inbox            -
----------------------------------------------------------------------
_______________________________________________
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



[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [EPEL Devel]     [Fedora Magazine]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Desktop]     [Fedora Fonts]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Fedora Sparc]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux