How can I stream live television to 50-100 computers?
April 20, 2013 8:59 PM   Subscribe

What is an inexpensive hardware and software configuration that would allow someone to stream a handful of channels of live TV to 50-100 computers, accessing these on demand?

I've been contracted by an educational institution to do an upgrade to some of their network systems. Primary project is running GigE throughout several buildings. In a conversation with the customer, he was remarking that their cable provider wants to charge them $40k/month to set up cable feeds in all of the rooms (or maybe it was $40k to install... I may have misheard). This is utterly ridiculous, since he only wants 4-5 channels available, and it will be rarely used more than 50-100 times on a given week. The only exception is presidential inaugurations, shuttle launches, or other nationally televised events they will all watch at the same time (2 times a year at the most).

As I was driving home, I thought about my home setup using TVHeadend and RasBMC/XBMC. I have a PCIE TV tuner, and it can stream my HD cable to different rooms, and we can even DVR to an external USB 3.0 SSD without issue. My wife and I can be watching multiple channels, and I can PiP on my laptop. It works very smooth and it's not a remarkably robust or expensive system. I mean, one of the clients is a Rasberry Pi.

So, I thought, how hard would it be to setup a dual-Xeon with 4 tuner cards, and use a some sort of broadcasting stream (only broadcasting those 4-5 channels, and the 1 channel during big events) that allows them to open up a client like XBMC or the already installed WMC and watch the broadcast of whatever channel they want. For the scale he's looking for, I figure VLC, MythTV, or TVHeadend, and a well configured tower should be able to do the trick for less than $4000, right? Or am I overlooking something?

Also, there is no need for the ability to pause, rewind, or record anything. Just to pull up the channel and watch, the same as you would on a regular television.
posted by Bathtub Bobsled to Computers & Internet (17 answers total) 2 users marked this as a favorite
 
I think that would violate the license terms of your cable provider.
posted by Chocolate Pickle at 9:02 PM on April 20, 2013 [4 favorites]


Yes, how legal do you need this to be?
posted by supercres at 9:03 PM on April 20, 2013


Yup. The educational institute I work at has one feed coming in. We get to pick one channel, and it shows on all the TVs. To legally get the ability to watch different channels on different TVs, we'd have to buy a cable subscription for each of the TVs.
posted by mollymayhem at 9:10 PM on April 20, 2013


Response by poster: I wasn't interested in the legality, thereof. I really don't care.

From a strictly technological standpoint, is this possible and how?
posted by Bathtub Bobsled at 9:21 PM on April 20, 2013


we do this with FTA (broadcast, not cable) TV for a couple of client sites. the stream is software transcoded down in realtime to reduce local bandwidth requirements, because they don't need full HD at the end points. I'm not directly involved with that part of the project, but can check out the basic setup when I'm in the office on Monday. our setup is Linux at both the server and client end, if that makes a difference.
posted by russm at 9:30 PM on April 20, 2013


Irrespective of the number of destination TVs, if you want more than one simultaneous channel, you're going to need a cable box for each of them. I don't really see how you could get those installed without the cable company smelling a rat.
posted by Chocolate Pickle at 9:58 PM on April 20, 2013


All you need is one tuner per channel and then something like Darwin Streaming Server or one of the many alternatives and you are pretty much set. Unless you want to do this with premium channels you shouldn't need anything special and the cable provider can't tell any difference - this is what DVRs do, after all.
posted by feloniousmonk at 10:11 PM on April 20, 2013


Look at Videolan. You will likely need one physical server/videocard/cable box per channel to be streamed.
posted by Sophont at 11:20 PM on April 20, 2013


I've never used it, but I'd look to at this from SiliconDust: http://www.hdhomerun.com/products/hdhomerun/hdhomerun-tech3-industrialcommerical/
posted by Good Brain at 12:51 AM on April 21, 2013


If you'll pardon another comment on the legality of this: YOU might not care if the setup is or isn't legal, but it should be, if only for the school's sake: $40K a year is certainly a lot of money, but so is a lawsuit.
posted by easily confused at 3:16 AM on April 21, 2013


Since most TV's can pick up over the air local HD channels, wouldn't that serve their purpose, in a legal manner?
posted by HuronBob at 5:25 AM on April 21, 2013


HuronBob - at our customer sites, we stream TV over the network so each endpoint can have a single computer instead of a computer plus a TV (plus a game console). our legality details are almost certainly very different to Bathtub Bobsled's.
posted by russm at 5:51 AM on April 21, 2013


Mod note: Let's assume that legal issues will worked out one way or another by the school, and focus on the technology. Thanks
posted by taz (staff) at 7:14 AM on April 21, 2013


I don't have figures handy and suspect a hardware-only solution for 100 client computers is above your budget, but Robotel offers both hardware- and software-based video sharing from a teacher station to multiple student computers.
posted by thatdawnperson at 7:41 AM on April 21, 2013


I think this is what multicast is for, on a network level. Instead of the server firing up a separate connection for each client (which would saturate the bandwidth pretty quickly), the client just "listens" to traffic that is being broadcast by the server.

I have a thing at home that does this- a HD Homerun Prime. It has three tuners that are fed to computers via LAN. I use Windows Media Center to view and record, but the protocol is more or less open, I think I can just point VLC at it if I wanted to. You could get one or more of them and then use some kind of Linux server to process and advertise the streams to the clients.

In fact, they have a product that does exactly what you want. Somewhere in here.

(As for legality, I'm not entirely sure. I know that for home users, you aren't required by law to have a separate license or subscription for each TV in the house. But for a commercial setup, it might be different. For broadcast TV, you are fine.)
posted by gjc at 10:51 AM on April 21, 2013


OK, here's how we do it. Note this is FTA TV not cable, but on the server end it should work with any tuner that presents a V4L source device. the target networks are 10GB backbone with 1GB to the end devices.

mumudvb sets up the tuners, takes the packet stream and serves the individual program streams over HTTP. according to the app notes, "These streams should be directly accessible for the larger TVs, but use too much bandwidth to be provided to every client machine".

the raw stream from mumudvb is consumed (and transcoded?) by vlc-nox and streamed out to the clients, which are plain VLC. again according to the app notes, vlc "Appears to be the most reliable streaming solution at the moment". apparently we get acceptable realtime transcoding of 2 streams per 3GHz Xeon core.

we use Hauppage tuners, and in our experience they need a >= 3.7 kernel to work reliably.
posted by russm at 7:03 PM on April 21, 2013


So I don't do this to the scale you're doing - I've only got about ten clients, however MythTV with four usb DVB-S cards does the trick here. But it is very PVR oriented - while we can watch live tv, almost no-one does. I run this off an old pentium4 box that I picked up for free, and it works really well.

Depending on your country, obviously you'll need the "right kind" of tuner, but I assume you already know that :).

The biggest issue with mythtv for this, though, is windows clients are not so great - specifically, forced fullscreen and other fun stuff. Not so bad, but not 100% optimal.

For your use case, btw, the failure mode will almost certainly be disk IO on the central server. with enough ram, cache should save you, but be forewarned :)
posted by jaymzjulian at 7:30 AM on April 22, 2013


« Older How to stay organized and synced without...   |   Learning via Treehouse Newer »
This thread is closed to new comments.