How to stream EVERY channel from Freeview onto your network

So, you’ve read my guide to streaming Freeview via VLC, and you’re thinking, ‘that was too easy’. What’s next? Well, we’ve streamed one channel, and you could potentially leave that running for your users… but what if someone wants to watch a different channel?

How about streaming ALL the channels?

I’m so glad you asked.

In my last school we had an Exterity IPTV system that I had been quietly jealous of ever since I left it behind. A commenter on my last article had the same system, but was less enamoured of it on account of the fact that his was buggered. Certainly a distressing situation to be in given how expensive Exterity is: buying the full 6-tuner system from RM will set you back over £8,000. They may not be the cheapest supplier, but you get the idea.

The thing is, these systems are a few years old, and the world has moved on. Today, free open-source software exists that will let you and I build something to do roughly the same thing for less than £500.

Yes, £500. You’re welcome.

This is a very technical article, so if you’re only here for me ranting about HP, this isn’t for you.

You will need

Your brain, again. Not only am I still making you think, but this will be a bit harder than my guide to streaming a single channel, and it’s not going to be a step-by-step guide due to the complexity.

A spare computer with at least 3 empty PCI slots (or USB 2.0 ports), and preferably with a gigabit Ethernet adapter if you want to stream a lot of channels. If you aren’t planning a high number, you can get away with a 100Mb card; I stream 32 TV channels and 22 radio stations from my box, and it uses about 80Mb of bandwidth (though it should be noted a few of the TV channels broadcast at mutually exclusive times, such as CBBC and BBC3).

This computer will need to run Linux; you can’t just slap some software on that spare Windows XP machine in the corner. I strongly recommend a dedicated unit. The good news is that it doesn’t have to be anything like high spec. You can almost certainly get away with the minimum specs for the Linux distro you choose. I chose Ubuntu because it’s the one I’m most familiar with and the DVB hardware support is pretty good. The machine I used is a 2005 vintage Acer Veriton and it barely tops 10% CPU usage.

Past its sell by date as a workstation, but more than good enough for IPTV streaming.

A gigabit ethernet switch is preferable at least on the network segment you plug the streaming machine into, and preferably a gigabit backbone throughout your site. You won’t need gigabit to the desktop, however.

6 DVB-T tuner cards (or 3 dual-tuner cards) that work under Linux. Preferably PCI, but you can get USB ones if you’re stuck for PCI slots. I’ll explain why you need 6 tuners later. I’ve been using Hauppage tuners, specifically the WinTV Nova-T 500, because they work well for me and Ubuntu automatically installs drivers that work.

You’ll need three of these puppies. They cost me under £60 each on Amazon.

An aerial splitter with at least as many outputs as you have tuners, since you’ll need to plug the aerial into each card. Most of these come with signal boosters built in, which will probably be handy.

A rough idea of which Freeview transmitter you get the best signal from. In my last guide we had to look up the exact frequency details, but there’s software on Linux that can do this for us. You’ll only need to know which transmitter gives you the best signal, so go here and punch in your address. Note that the one with the best signal is not necessarily the nearest one; if you’re within 50-60 miles of London, for example, you might find you get better reception from Crystal Palace than from a much closer transmitter, on account of Crystal Palace having a 20MW trasmitter, one of the most powerful in the country.

Why you only need 6 tuners for all those channels

DVB systems like Freeview don’t broadcast every TV channel on its own frequency like analogue TV does. It groups channels together onto a single frequency using multiplexing. At present, there are 6 multiplexes for standard definition (DVB-T) in the UK: Multiplexes 1, 2, and A-D. Each multiplex has a single frequency. This is why in my previous guide, tuning into a single frequency left you with a small list of channels to choose from in VLC. It’s also why the channel listings on the UK Free TV site are grouped into 6 blocks.

(In the UK, HD Freeview is broadcast on a separate multiplex, using an upgraded encoding method called DVB-T2, but since at the time of writing there are no DVB-T2 tuners for computers on the market, I’m not covering it here. Some current DVB-T tuners say they are “HD”, but this is just marketing BS.)

When your TV tuner picks up a channel, it’s actually picking up the entire multiplex, and just discarding the data for the channels it doesn’t want. Most consumer DVB software (e.g. WinTV, Windows Media Player), and almost all set-top DVB receivers, will only let you watch or record one channel at a time. This is merely a software limitation. You could potentially be watching BBC1 while recording BBC2 and CBBC at the same time with only one tuner, because they are all on the same frequency. The reason most devices restrict you to one channel at a time is because explaining to dumb end users why they can watch BBC1 and record BBC2, but not watch BBC1 and record ITV1, is very hard. So, they restrict you to one channel to prevent the deluge of calls to their tech support line by people who will never understand what’s going on.

You, however, understand. So you can merrily pick up multiple channels on a single tuner. With 6 tuners, you’ve covered every multiplex in the UK, and thus every channel.

Let’s get started

1. First off, get your tuner cards into the machine and get them working under Linux. If you haven’t already done so, you’ll also want to install the following packages using your package management system:

  • dvb-apps
  • dvblast
  • minisapserver
  • vlc (useful for testing for tuner card if things don’t quite go to plan)

If you’ve used DVB under Linux before you’ll already be familiar with dvb-apps. The dvblast package is the secret sauce in this project. Developed by the same awesome team that brought us VLC Media Player, dvblast saw its first public release in May 2009. It is a very lightweight program designed for one singular purpose: tune in to DVB broadcasts, and stream them onto a network. That’s all it does. And it does it very, very well. We’ll come on to minisapserver later.

2. Before we start streaming, we need to get the full TV channel details for your local transmitter. To do this, we’re going to use the scan command that comes with dvb-apps, like so:

scan /usr/share/dvb/dvb-t/uk-CrystalPalace -u > channels.txt

That file in /usr/share/dvb/dvb-t/ tells the scan command which transmitter frequencies to check, and is supplied as part of the dvb-apps package. There’s one for each transmitter in the UK (and other countries too). Substitute with the correct file for your chosen transmitter.

Problems with tuning failed!!! messages? Make sure the aerial is plugged in (duh) and if you still have problems, try installing the w-scan package using apt-get and running w_scan -X -c GB > channels.txt instead, as documented here.

You should end up with a file containing a line for each channel that you can pick up, looking like this:

CBBC Channel:505833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:620:621:4671
BBC Red Button:505833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:4479
BBC NEWS:505833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:640:641:4415
BBC THREE:505833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:0:4351
BBC TWO:505833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:610:611:4228
BBC ONE:505833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_3_4:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:600:601:4164
ITV1:481833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:520:521:8261
ITV2:481833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:530:531:8325
Channel 4:481833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:560:561:8384
E4:481833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:570:571:8448
More 4:481833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:590:591:8442
Heart:481833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:631:8772
FIVE:481833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:540:541:8500
ITV2 +1:481833330:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:600:601:8361

Yours should be longer; this is just some channels from the first two multiplexes. My top tip is to import this into a spreadsheet (delimited by a colon) to get a better view of the fields. Only a few of them are important for us:

  • Column A is the channel name.
  • Column B is the frequency (in Hz) of the multiplex this channel broadcasts on. The channels will be grouped together in the file by multiplex, so the frequency won’t change on every line.
  • Column D is the bandwidth. In the UK it will almost certainly be 8MHz.
  • Column G is the phase modulation type for the channel. I won’t try to explain it (you can delve into Wikipedia for that), suffice to say you’ll need to know it later. This should be the same for each channel that broadcasts on the same multiplex.
  • Column M (the last one) is the SID (service identifier) for the channel. This is very important as it is what dvblast uses to identify which channel to broadcast. Note that this is not the same as the EPG channel number, which isn’t shown in the file.

Go through this file and pick out which channels you want to stream. You almost certainly don’t want all of them since some are utter tripe and waste of bandwidth, while others are… not exactly suitable for a school, for example.

3. Once you have this data, you need to start writing the configuration files for dvblast. You’ll need one file per multiplex. I find I work best with an example, so here’s my configuration file for Multiplex 1, which carries most of the BBC channels:

Multiplex 1

;BBC News
239.255.1.80:5004    1    4415
;BBC One
239.255.1.1:5004     1    4164
;BBC Red Button
239.255.1.105:5004   1    4479
;BBC Three
239.255.1.7:5004     1    4351
;BBC Two
239.255.1.2:5004     1    4228
;CBBC Channel
239.255.1.70:5004    1    4671

The lines starting with a semicolon are comments, and you can write whatever the hell you want there, but I find the channel name is a good idea. The rest is simply a line with three columns: The IP address (and port) to stream the channel to,  the ‘always-on’ flag (which you should almost always set to 1) and, importantly, the SID to identify the channel.

The IP addresses I’ve shown here are multicast addresses. I talked about how to pick the IP address to stream to in my last guide, but since you’ve had a beer since then and forgotten it, I’ll repeat it here.

  • If your network switches support multicast, pick a multicast address. There’s a long and detailed document from the IANA about picking one, but unless you are already using multicast on your network then you really just need to pick something in the 239.255.000.000239.255.255.255 range, which is identified by the IANA as the Site-Local Scope. Anything in this range should work. I used 239.255.1.1 as shown below.
  • If your network doesn’t support multicast, or you don’t want to use it for whatever reason, then enter the broadcast address for your local subnet.

My addresses are all in the 239.255.1.x range, with the EPG channel number as the last octet. I could have simply gone for 1, 2, 3… etc. It’s up to you.

Time for another example:

Muliplex 2

;Channel 4
239.255.1.4:5004     1    8384
;E4
239.255.1.28:5004    1    8448
;Five
239.255.1.5:5004     1    8500
;Heart Radio
239.255.2.28:5004    1    8772
;ITV1
239.255.1.3:5004     1    8261
;ITV2
239.255.1.6:5004     1    8325
;More 4
239.255.1.14:5004    1    8442

This is the multiplex that carries the rest of the ‘old’ analog channels: ITV, Channel 4, and Five, along with some others. You’ll also notice a radio station in there. Freeview has radio stations on it as well as TV, and they use exactly the same encoding as the TV channels, so we can stream them too. The observant among you will spot that I switched to the 239.255.2.x range, which I did solely because the EPG numbers for the radio stations start at 700, which doesn’t fit into an IP address octet, so I bump the radio stations up to .2 and then subtract 700 from their number to get my last octet. Again, you don’t have to follow this numbering convention.

4. Now you have these files written out with each channel you want to stream… we’re ready to start streaming them. You’ll need to start a separate instance of dvblast for each multiplex, using commands like so:

dvblast -a 0 -c /root/M1.cfg -f 505833330 -m qam_16 -b 8 -e
dvblast -a 1 -c /root/M2.cfg -f 481833330 -m qam_64 -b 8 -e

etc.

Here’s what each parameter does:

  • -a n tells dvblast to use tuner number n for this multiplex. Obviously, you can’t use each tuner more than one at any one time. Numbering starts at 0, not 1, you idiots.
  • -c nameoffile.cfg tells dvblast to use the config file you just write. It doesn’t matter where you save it.
  • -f 000000000 is where you specify the frequency for this multiplex. Remember how you noted that down from the scan listing earlier? You better have done, because next you’ll need…
  • -m qam_x the  modulation type for this multiplex. And then…
  • -b n the bandwidth for this multiplex.
  • -e Finally, -e tells dvblast to also stream the EPG data. You’ll see how to use this in VLC later, and it’s very exciting. No, really. Shut up, it’s exciting, damnit.

5. Once you’ve started up dvblast, you should be able to start receiving on another machine! Same drill as last time…

Go to the Media menu, and pick Open Network Stream.

Enter rtp://@ followed by the streaming address of the channel you want, e.g. rtp://@239.255.1.1

Now click Play.

6. Now I’m going to show you the extra-exciting EPG interface.

To get to it, go to the Tools menu once a channel is playing, and select Program Guide.

Ta-daaaa! The guide will only show you a couple of programs at first but within about 10-15 seconds or so it should update with the rest of the day’s programming. It’s not the prettiest interface in the world, but you can scroll through and click on upcoming programs to see a synopsis.

If that all worked, you must now be wetting yourself with excitement, but we’re not done yet. Firstly, do you really expect the end users to know about typing in rtp MRLs with multicast IP addresses? What, are you going to give them a list of IP addresses for each channel?

No, of course not.

7. We’re going to set up the Session Announcement Protocol, which VLC can receive, to allow your users (and you) to simply pick the channels from a nice friendly list of channel names. This is why we installed the minisapserver package earlier. All you have to do is write a config file for it, like so:

SAP Configuration:

# sap.cfg - Configuration file of the mini SAP server

# Global miniSAPserver options
[global]

# Number of seconds between announces. 5 is default. Internet announces better use 30.
sap_delay=5

# The network interface on which to stream.
#interface=eth0

[program]
type=rtp
name=Channel 4
user=AngryTechnician
machine=dvb.angrytech.internal
site=http://intranet.angrytech.internal
address=239.255.1.4
port=5004

[program]
type=rtp
name=E4
user=AngryTechnician
machine=dvb.angrytech.internal
site=http://intranet.angrytech.internal
address=239.255.1.28
port=5004

[program]
type=rtp
name=Five
user=AngryTechnician
machine=dvb.angrytech.internal
site=http://intranet.angrytech.internal
address=239.255.1.5
port=5004

[program]
type=rtp
name=Heart Radio
user=AngryTechnician
machine=dvb.angrytech.internal
site=http://intranet.angrytech.internal
address=239.255.2.28
port=5004

[program]
type=rtp
name=ITV1
user=AngryTechnician
machine=dvb.angrytech.internal
site=http://intranet.angrytech.internal
address=239.255.1.3
port=5004

[program]
type=rtp
name=ITV2
user=AngryTechnician
machine=dvb.angrytech.internal
site=http://intranet.angrytech.internal
address=239.255.1.6
port=5004

[program]
type=rtp
name=More 4
user=AngryTechnician
machine=dvb.angrytech.internal
site=http://intranet.angrytech.internal
address=239.255.1.14
port=5004

[program]
type=rtp
name=BBC News
user=AngryTechnician
machine=dvb.angrytech.internal
site=http://intranet.angrytech.internal
address=239.255.1.80
port=5004

[program]
type=rtp
name=BBC Red Button
user=AngryTechnician
machine=dvb.angrytech.internal
site=http://intranet.angrytech.internal
address=239.255.1.105
port=5004

[program]
type=rtp
name=BBC One
user=AngryTechnician
machine=dvb.angrytech.internal
site=http://intranet.angrytech.internal
address=239.255.1.1
port=5004

[program]
type=rtp
name=BBC Three
user=AngryTechnician
machine=dvb.angrytech.internal
site=http://intranet.angrytech.internal
address=239.255.1.7
port=5004

[program]
type=rtp
name=BBC Two
user=AngryTechnician
machine=dvb.angrytech.internal
site=http://intranet.angrytech.internal
address=239.255.1.2
port=5004

[program]
type=rtp
name=CBBC Channel
user=AngryTechnician
machine=dvb.angrytech.internal
site=http://intranet.angrytech.internal
address=239.255.1.70
port=5004

I’m not sure the user, machine, or site fields are necessary, but they were in the example config file I used, so I filled them in. The order you put the channels in is sort of important, as the SAP daemon will send the announcements for each channel one by one, in that order. However, since the users could open up VLC while the announcements are already halfway through, they won’t necessarily be in that order when the user sees them. My advice is to teach your users how to sort the channel listing in VLC (below).

Gerard Sweeney also points out in the comments that you can group the announcements by adding an extra line to each [program] definition like so:

playlist_group=News Channels

These do however suffer from the same sorting issues as non-grouped channels.

8. Now start the SAP server like so:

./sapserver -c sap.cfg

9. Receiving the SAP announcements is a doddle in VLC 1.0 and upwards (you can do it in earlier versions, but it was more hassle, so just upgrade already):

Open VLC, go to the View menu, and select Playlist.

Click the arrow next to Local Network to expand it, then click Network Streams (SAP). After a few seconds (longer depending on how many channels you have), the list of channels will appear. You can click the top of the Title column to sort alphabetically. Just double-click one to start playing.

Now everything is nice and convenient for playback, but there’s one last thing to do to make life easier for you as the administrator. Remember how you had to start dvblast 6 times, and then start the SAP daemon? You don’t really want to do that manually, do you? Of course not.

10. Let’s get the machine set up to start dvblast and sapserver at bootup. I started doing this using init, but that  turned into a colossal pain in the backside because typically it would start up dvblast before the network interface was ready, which would cause dvblast to immediately terminate. Instead, I’m using upstart, which is starting to replace init in Ubuntu and some other distros. One of the many nice things about upstart is that it can trigger something to happen immediately after the network interface becomes ready (and stop the process when the network goes down).

Upstart is very easy to use once you’ve figured out the config file syntax, and since you haven’t yet done that, I’m just going to save you the trouble by posting examples of the scripts I used. Copy these into individual .conf files in /etc/init

dvb-m1.conf

# dvb-m1
#

description    "DVB streaming, Multiplex 1"

start on net-device-up IFACE=eth0
stop on net-device-down IFACE=eth0

exec dvblast -a 0 -c /etc/dvb/M1.cfg -f 505833330 -m qam_16 -b 8 -e

dvb-m2.conf

# dvb-m2
#

description	"DVB streaming, Multiplex 2"

start on net-device-up IFACE=eth0
stop on net-device-down IFACE=eth0

exec dvblast -a 1 -c /etc/dvb/M2.cfg -f 481833330 -m qam_64 -b 8 -e

And so on for the other multiplexes, then:

dvb-sap.conf

# dvb-sap
#

description	"DVB streaming, SAP listings"

start on net-device-up IFACE=eth0
stop on net-device-down IFACE=eth0

exec sapserver -c /etc/dvb/sap.cfg

And you’re done. dvblast and sapserver will start up the moment eth0 becomes ready, and will even shut off if eth0 goes down.

All that for under £500

If this has all worked for you, then you’ve managed to build a live TV streaming system for your network that serves all the Freeview channels you want, 24/7. Earlier I said you could do this for under £500. I bought my three WinTV Nova-T 500 dual tuners for less than £60 each, and even adding in an aerial splitter brought my total to under £200. Since I already had an old spare PC knocking around, that was the entire cost of my project. Compare that with the £8,000 for Exterity and you’re laughing all the way to the Bursary.

If this didn’t work out for you, then you may have to figure some things out on your own. This is what I did, and it worked for me. If you have questions, post a comment and I’ll try to answer.

Was this useful? Useless? Do I have a glaring typo or a completely broken script? Feedback on this guide in the comments.

Onward to Part 2: How to stream Freeview HD (DVB-T2) over multicast using dvblast, you Idiots

Tags: , , , , , , , , ,

About The Angry Technician

The Angry Technician is an experienced IT professional in the UK education sector. Normally found in various states of annoyance on his blog. All views are those of his imaginary pet dog, Howard.

205 responses to “How to stream EVERY channel from Freeview onto your network”

  1. Captain obvious says :

    or you could just use http://www.tvcatchup.com for free

    • AngryTechnician says :

      Unfortunately, despite your name, you’ve missed the obvious flaws in this plan:

      1. TVCatchup doesn’t have all the channels that are on Freeview.
      2. The ‘standard’ quality stream is noticeably inferior quality to that broadcast on Freeview. Only 5 channels are on the ‘high’ quality stream, and I can’t even see what that looks like because my ISP apparently doesn’t support it.
      3. It shows adverts at the start of every session, even on channels which don’t carry adverts.
      4. It doesn’t carry subtitles, which may seem like a small detail, but these can be incredibly useful at times.
      5. The whole point of this guide, and the one before it, is to provide a service that doesn’t rely on your internet connection, which is in almost all cases the slowest, most contended, and least reliable part of your network.

      TVCatchup may be fine for home users who don’t mind crap quality streams, but it isn’t suitable for larger networks where dozens of clients could be watching simultaneously, especially under conditions like those seen during the World Cup. TVCatchup is a consumer solution, while multicast IPTV is an enterprise-class solution, despite it being possible on a very limited budget. On even larger networks, multicast streaming effortlessly scales to hundreds, thousands, even hundreds of thousands of clients without placing any additional strain on the streaming server. That may seem overkill, but the experience of some schools with only 10-20 clients trying to watch online streaming during the England vs. Slovenia match was that their ISP couldn’t cope with demand.

    • Chaz Sehmi says :

      Hi Angry Tech,
      This is excellent work however Ive stumbled with writing a config file as our Network doesnt support Multicast addresses?
      I have been given the Broadcast address for the local subnet but cannot get it to work with VLC media player. How do I write a config file to seperate each channel as you have done with the individual multicast addresses?

      Would it be possible to give em an example? of the config file and how to run it on VLC the command rtp://@subnetmask….:port as an example.

      my example config is: this is with the broadcast address

      172.16.245.255:5004 1 4382

      your help with this will be greatly appreciated?

      regards

      Chaz.

      • The Angry Technician says :

        First, be aware that doing this on a broadcast-only network will send all TV traffic to all devices on the network, whether they request it or not. If you have any non-trivial number of channels being broadcast you will likely encounter severe performance problems with your network, so I do not recommend it.

        If you’re using the whole-subnet broadcast address you might have to separate out the channels by using a different port for each one (5004,5005,5006, etc.) You shouldn’t need to use this address at all though – network equipment that does not support multicast will simply treat the traffic as broadcast anyway, so just use the regular multicast addresses.

  2. Andy says :

    Excellent write up – well done.

  3. Gerard Sweeney says :

    You, Sir, are a God towering over we mere ants. I bow down before you.

    Cue the sound of me hurrying up the imaging rollout so I can have a crack at this fantastic looking project!!!

    Thank you so much for taking the time to put this all together.

  4. Gerard Sweeney says :

    Quick newbie Linux question… Good start, eh?! [whine]

    Ubuntu – should I go for Desktop or Server version? I’m assuming Desktop since it’s “just” punting out multicast streams rather than relying on any form of authentication. Do I assume correctly?

  5. Gerard Sweeney says :

    The 3 WinTV Nova-T 500 cards are ordered, and the PC (A super-duper Optiplex GX280 which was destined for recycling) is ready with Ubuntu Desktop – hopefully the caps won’t crap out! :)

    The School was fairly “happy” to pony up the cash, since £150 is probably significantly less than the cost of getting an Exterity bod (or third party) to even step one foot in the school.

  6. Trev says :

    Hi

    Great blog, really well thought through and written.

    I am looking to set up in a slightly different scenario as would like to set up streaming to a variety of Macs and TVs at home. Do you know a way I can take the VLC streaming and tune in TV channels to pick up the broadcasts? Ideally this would mean I would tune channel 1 to streaming BBC1, channel 2 to streaming BBC2, Channel 12 to Sky Sports News etc etc. Almost like the way that its done in hotels.

    I know I could just buy freeview boxes but I want to also stream my videos, music etc to the same TVs.

    Hope that makes sense and any ideas would be appreciated

    Cheers

    • AngryTechnician says :

      You’d be looking at dedicated hardware, pretty much exactly like those used in modern hotel setups. Unfortunately I don’t know of any consumer-oriented units, and the business ones that are out there are quite expensive (Exterity do them from about £200 upwards).

  7. 17 G33k says :

    another SWEEEET how to by the almighty AT.
    being 6 weeks from completion of a new build work have just had all the shop baught professional SH** paid for at great expence (and this only allows for a limited number of clients at once.

    what with all the pc’s that i am being forced to scrap i am going to do one for home and scrap my old 26 inch crt tv and buy a new sexy 32inch monitor. will be interesting to see if an old tv uses more or less power than an eco pc with no cdrom and a ssd drive and a lcd monitor.

  8. Gerard Sweeney says :

    I don’t know if this will be of use to anyone, but…

    With the sap.cfg file, you can add:

    playlist_group=x

    to each [Program] section so that its listing will appear under groups (like sub-directories).

    EG:
    [program]
    type=udp
    name=4Music
    user=freeview
    machine=wswwhfview-01.erc.education
    site=http://wswwhfview-01.erc.education
    address=239.192.10.159
    port=5000
    playlist_group=(Music/Radio)

    Your mileage may vary with this, but I tried putting the group names in brackets to try to ensure they stayed up the top – other wise I got interesting things like:

    ITV2
    ITV3
    ITV4
    Radio Stations group

    With brackets around the names, the directories go up at the top.

    However, an annoying “feature” in the version of VLC I used1.1.0 sorts the names differently if you click on the Title column header to sort:

    Channel1
    Channel2
    (Group1)
    (Group2)
    (Group3)

    If you click again (sorting descending), then you get:

    (Group3)
    (Group2)
    (Group1)
    Channel2
    Channel1

    which isn’t ideal either :)

    So I guess you either need to have them ALL grouped or not grouped. If they’re all grouped, then you shouldn’t need the brackets. (Going in circles much? Ed)

    Hope this is of some use?

    Oh, and in case you were wondering how I’m getting on with the project :)

    Right now, I’m just waiting on the school taking delivery of a new aerial distribution box to replace the shonky old one which sees the signal strength plummet. Fingers crossed!!

    Cheers,
    Gerard

    • AngryTechnician says :

      That’s a handy tip, which I may use for separating out TV and Radio channels – thanks!

      • Gerard Sweeney says :

        Happy to help with the tip – it’s a tiny contribution compared to your formidable guide.

        I now have my streaming beastie up and running, and it’s all good and I am extremely pleased to be able to remove “Fix Exterity” from the to-do list.. It’s been a fun learning project, as I’d never touched Linux before then…

        I don’t know if this would be of interest to anyone, but…

        I’ve written myself a kludgy little AutoIt script to parse the channels.txt file to generate the Multiplex files, sap.cfg etc used by the Upstart service at reboot.

        The script reads in a config file so I can say which channels to not add (Babestation etc).

        The more astute of you will realise that AutoIt is a Windows only app. So at the moment, I have it running as a WINE app which is called by a script immediately after doing the scan channels bit..

        The script also creates Windows shortcuts in a shared folder for the Staff to save me having to explain to folks how to use VLC’s playlist and its eccentric behaviour with not always displaying the video window for video streams if you switch from one to another (it plays the audio only).

        The shortcuts generation bit isn’t really of much use at the moment on the Linux box, but I just run the same script on a proper Win32 box. At some point, I’ll try getting the Linux box to talk to the network, though that’s a battle with our IT boys for another day :)

        If anyone would like a copy of this script, let me know.. Just don’t wet your pants too much at the thoroughly shonky coding.

        At the risk of sounding boot-licky – thanks again!
        Gerard

  9. spark says :

    So, I think I’d like to try streaming our Language sat channels though a similar system. Presumably this would work with analogue OK?

    Choice of scart or RF output. Anyone any ideas on the number of cards I’d need for 6 channels? 3 dual tuner cards?

    • AngryTechnician says :

      The dvblast software will only work with digital broadcasts (terrestrial or satellite), but if you can tune in VLC to receive the broadcast from your analog card, you can stream it in much the same way as in my single-channel guide. The signal will need transcoding, but VLC can do that too so long as you have sufficient processing power to transcode 6 video streams in realtime.

      You’re correct that you’ll need 1 tuner per channel in this case, since the channels aren’t multiplexed, so 3 dual-tuner cards will get 6 channels.

  10. felice ostuni says :

    Hi, first of all thnks for this article, i’ve found finally a detailed example for dvblast.

    But now, i need some help please.. this is my situation :

    I’ve a pc with 2x dual dvb-t tuners (Nova-T 500) and i’m trying to demux and record 8 channels.. (from 2 different mux) I’m not really interestet to stream, i just need to build a 24/7 recording server.
    After a lot of try and error streaming with vlc (basically it consume a lot of CPU during transcoding) I just used mencoder to tune/encode in flv/save one channel from each adapter, so max 4 channels.
    Later i found dvblast, and finally i can demux with it and record/encode each single channel with mencoder.

    my problem:

    in dvblast, when i use multicast addresses, my gateway (zyxel p-660hw modem/router/4 port switch) stop working .. it seems to go at 100% of cpu usage, even if setup only 2 channels.
    I tried setting up a non-multicast address but local ip not worked, and when using the lan broadcast address 192.168.0.255 i cant figure how i can record/watch, mencoder and vlc player does not receive nothing.

    P.S. on the router box i see it support IP multicast IGMP v1/v2 .. but ..

    • AngryTechnician says :

      I would say that if the switch is dying when it tries to do multicast, and it’s supposed to support multicast, there is clearly something wrong with it. All bets are off at that point. If one thing that’s supposed to work is broken, who knows what else might not work? Maybe broadcast is broken too.

      I think your first step should be to try different networking equipment. You could also try upgrading the firmware if you haven’t already done.

      Another possible option could to to DISABLE multicast on the router if the option is there. That may sound counter-intuitive, but on non-multicast equipment, broadcasting to a multicast address simply works like broadcast, and may stop the router from locking up. It may not help, but it’s always worth a try.

      • felice ostuni says :

        ok, found multicast configuration in my router but for each multicast option i try got same result: CPU at 100% and stop (DISABLED/IGMP1/IGMP2)

        firmware is the last and forcing dvblast to “udp” not helped, same result.

        if possible i’ll try with another hardware (ideas/suggestion?)
        then if not is working i’ll come back to “mencoder only” solution.. buyng other tuners :(

  11. Gerard Sweeney says :

    Quick question as someone who’s never used Ubuntu before..

    I decided to make an image of the PC – just in case, and it says that it’s using 27Gb(!).

    The image with high compression scaled down to 17Gb.

    I’m not fussed about the size of the image, as it’ll just live on a couple of external drives for safe-keeping, but it seemed ever so slightly chuffing massive considering it originally installed from a CD.

    Any thoughts?
    Gerard

    • AngryTechnician says :

      The only thing I can think of is that the imaging software is not correctly interpreting empty space on the drive, so has copied everything from the position of the first file on the disk to the position of the last file – even if there is empty space in between.

  12. Gerard Sweeney says :

    Could be..

    I just grabbed a freebie Windows one called Macrium after our obscenely expensive imaging/deployment system by Altiris/Symantec doesn’t appear to support reading Ubuntu-formatted HDs – though one of the boot disks can be Linux-based. Bit odd?

    I thought it was that perhaps DVBlast was caching the streams in some form or other. Clutching at straws :)

    Like I said, I’m not that fussed – it just seemed pretty damn huge. Even Windows doesn’t get THAT bloated from what is basically an initial install with a few added components… It takes at least a fortnight for that to happen :)

    Thanks for the suggestion, though…

    Tomorrow will hopefully see me attempting to restore said image onto a different HD – just to make sure :)

  13. Gerard Sweeney says :

    I realise this is probably one for (perhaps) VLC’s forums… Or Exterity’s – oh, wait they don’t have one. And we’re out of warranty, so no support. Tch..

    Things took a slightly annoying turn today.

    I tried to get the Exterity Receivers we have connected to the plasma TVs to watch one of the channels being streamed, and they don’t “hear” the SAP announcements from MiniSAPServer.

    The only one it picks up is our single Exterity broadcaster – a “brick” which converts a PAL signal (DVD player in our case) into a Multicast stream, including SAP announcement.

    According to the receiver’s GUI, it “always listens on the address used by Exterity servers (239.255.255.255)”.

    On VLC..

    The Exterity “brick” channel is udp://@239.192.10.56:49408
    My channels (eg BBC1) are udp://@239.192.10.107:5000

    If I manually enter the multicast address into the receiver, then it works. So it appears it’s just the SAP which isn’t being picked up.

    All in all, a little annoying, but not catastrophic by any stretch of the imagination!!!

    • AngryTechnician says :

      Have you done a Wireshark trace to see if you can spot anything different between the two sets of announcements? Might not be anything you can change but you might at least get some answers…

  14. James Yale says :

    Nice guide, wanted to achieve something just like this when I was in a shared house at university actually.

    Just a note about Debian (and Ubuntu) init scripts if you don’t want to go through using upstart: You can add a script using the update-rc.d command, if you put your init script in /etc/init.d (lets call it startblast) you can add the rc.d links AND make sure it starts after your network interfaces with the following syntax:

    update-rc.d startblast defaults 80 30

    The first number is the start sequence number (networking starts at 35), the second the kill number, those two should also be reasonable selections for a standardish system (if you want to check they don’t conflict: ls /etc/rc*.d).

  15. Spark says :

    Been trying to set this up, I’m getting there but I can’t open the stream on client computers.

    I can open a copy of VLC on the Ubuntu box and it connects to the stream just fine. I have tried a multicast address and the Broadcast address so far… Are there any good reading sources online that anyone has come across?

    Cheers

    • AngryTechnician says :

      A few questions to see if I can help:

      What network switches are you using?
      Are the clients on the same switch as the streaming box or a different one?
      Are the clients running a firewall of any kind?

      • Spark says :

        I’ve got my test server and clients off the same switch at the moment which is a 3com 3c17302a superstack. I think Multicast is enabled by default? (Bridge>Multicast Filter > IGMP> Snoopmode > IGMP Multicast Filtering:Enabled)

        The clients have no firewall and I haven’t enabled one in Ubuntu either.

        I might carry the box round and try it on my core switch which is a much newer model.

        Does every device on the network have to support multicast? We still have a number of older hubs dotted around the building.

        Cheers

        • AngryTechnician says :

          It certainly sounds like the switch shouldn’t have any problems, though it’s always worth checking on another device.

          Normally if the switch doesn’t support multicast filtering, it will simply broadcast the traffic to every device on the switch. Multicast should still operate normally on other segments of the network. At least, that’s what happened on my network until I scrapped all the non-multicast switches this summer.

  16. Spark says :

    Update,

    I have tried this setup on my top of the range core switch (with a client computer connected to the same switch) and it works perfectly. Unfortunatley if I try from clients further down the tree connected to other switches I get nothing. I’ll post back if I figure out what’s stopping it.

  17. tombull89 says :

    Slighty late to the party, how would you feel about making a tutorial for streaming video (be it TV or video playlist) or music across the internet?

    I’ve looked at Windows Media Service 2008 but was wondering if VLC was better to do this sort of thing.

  18. Rich says :

    Fantastic tutorial!
    Do you think it would be possible to create some sort of web front end for this system so that the teachers could just click which ever channel they wanted and up fired VLC on the correct channel?
    Rich

    • AngryTechnician says :

      Do you mean embedding the video player into a web page that handles channel selection? Or just launching standalone instances of VLC? Both are possible, though the methods are quite different and each have their advantages and disadvantages.

      • Rich says :

        Hi,
        I think a website front end would be best and then embed the player into it.
        Any idea how to do that or where to point me?
        Rich

    • Gerard Sweeney says :

      Hello, there..

      For what it’s worth, the AutoIt script I wrote for our version of the streamer generates the shortcuts pointing to VLC.exe with the relevant switches to launch it with that channel.

      I am – however – quite keen to find a way to get IE to play it embedded. I am tinkering with Xibo for our digital signs in the foyer area (6 screens) and would like to have the ability to have Freeview as a channel for times when important broadcasts like the World Cup and/or tennis are requested.

      Cheers,
      Gerard

  19. Chris says :

    Does anyone know of a cheap set top box / media extender / other box that I can use to watch the live TV channels from a normal TV? I have several TVs in my house with no antenna sockets, but I can run ethernet to them so would like to use this as a cheap solution to be able to watch TV on these TVs? There must be a cheap hardware media thingy out there that can handle RTP streams… maybe with a guide would be a bonus :)

    Also, does anybody know if this method works with DVB-S? And how DVB-S splits its multiplexes? Would like to add the freesat channels missing from freeview to the mix to get the ultimate list of channels on one platform. ;)

    • AngryTechnician says :

      If you find such a box, let me know. The only one I know of is the Exterity kit, which hardly qualifies as ‘cheap’.

      dvblast does work with DVB-S. I was interested in much the same thing as you, but unfortunately, there are many more multiplexes on satellite than on Freeview (typically with fewer channels per multiplex), and you still need a separate tuner for each multiplex. To pick up all the Free To Air channels would require dozens of tuners, and just picking out worthwhile ones that are missing from Freeview causes the numbers to stack up beyond what you could pack into one box.

  20. nabil says :

    very helpfull
    thanks for all
    very well done!

  21. ScottishTech says :

    Oh no..

    It’s all gone horribly wrong!

    After they did the switchover here, I can’t get it to scan anything.
    I’ve updated the uk-BlackHill list with the updated frequencies using the calculation specified and also using a working updated one from a fellow BlackHill user.

    Now when I do scan, I get pid timeout error messages and nowt else.

    I’ve used w_scan and it finds the Central Scotland frequencies, but nothing else is happening.

    A £20 freeview box hooked up to the aerial shows almost 100% signal strength.

    Has anyone else run into similar issues???

  22. ScottishTech says :

    Phew..

    Thanks to the help of the same fellow uk-BlackHill user (redspecial2000 on DigitalSpy), I’m now back up and running.

  23. obinou says :

    Hello !
    I replicated your setup here in France, it works fine (Only 4 multiplex, no radio), using 2x DVT usb sticks.

    However, I would like to enhance the setup by preventing the switch to replicate the streams to all ports.
    To do that, I enabled IGMP snooping and IGMP filtering (so that it blocks multicast stream until the client has sent a “IGMP Join” message).

    While VLC does send this message, I found out that dvblast does not generate the correct IGMP counterpart message to inform the switch it is a multicast sender. Thus, the frames are blocked at the switch level.

    I can of course uncheck “multicast filtering” at the switch, but then multicast packet are flooded.

    Do you have tried this setup ? Did you found a solution ?
    (The switch is an entry-level Netgear smartswitch, a GS-716T)

    Thanks

    Note that this works fine with “mumudvb” (it sends IGMP report messages), but I did not used it because it is really too unstable in bad reception situations.

    Thanks
    obinou

    • AngryTechnician says :

      I use multicast filtering on our HP Procurve switches to do this, and it works fine with dvblast. The admin interface switch has a port traffic monitor and it shows zero traffic until the client sends the IGMP join.

      I haven’t done any analysis of dvblast traffic on my system as I’ve never had any issues. What version of dvblast are you using?

      • obinou says :

        I use dvblast 1.2, included into my debian distribution

        Thanks for the report ! I’ll continue to investigate.

      • obinou says :

        I think I found the culprit by comparing mumudvb & dvblast code.

        In fact, in mumudvb, for each multicast address used for stream multicasting, they create a “receiving socket” on the same address and call the ioctl IP_ADD_MEMBERSHIP on it.

        By doing this the OS does send an IGMP query on the netport port, which is then captured by the switch to build its table.

        dvblast does not do such a thing, and thus, no IGMP packet.

        Your switch seems to be smart enought to handle this; not mine.

        I will work on that.

      • martin says :

        Hi,

        How would you do this on a Cisco switch?
        Many thanks

        Martin

    • Kevin says :

      Hi obinou !
      Are you from France?
      I would like to ask you something because I from France but my english is not good.

      Merci beaucoup

  24. tony says :

    A bloody good guide Sir.
    I’m planning on implementing this in our IT basement dungeon that has no RF signal (cliche, i know, but i still find other IT depts in similar locations).

    We have a 1gbit line to another building (which has a decent freeview signal (which i plan to split)) then send the signal over the leased line to our 40inch flatscreen sitting dead on our wall right now (other than a static network diagram presented on the screen occaionally which we pretend to look at when directors come in)

    a couple of questions….(if you dont mind!)…
    1. have any of you managed to get a VLC setup on a cheap pc working with remote control, or do you all have exterity receivers to tune into the igmp multicast packets?
    1a). we dont fancy spending £200 on an exterity receiver, so do any of you have any alternatives for a remote controlled receiver (we have plenty of IT parts!).

    again, just to reitterate what everyone else is saying, thanks for posting this detailed guide (one that you can follow for once which is rare enough troughing through google now days).

    Tony.

    • tony says :

      looking a bit further into my own question, a mythtv front end receiver looks like it could well fulfill our needs. all we’ll need is small linux box (mythbuntu is a mythtv pre-built distro….nice) on vga/hdmi to our tv with a windows mce remote (+iR) attached (supported by myth tv). Multicast dvb-iptv support looks a little patchy – says it supports recording on the back end, but not sure about live streams on the front end.
      still, it is a nice clean gui if i can get it running and it should also stream any other files we have on the network file share with a couple of mce remote clicks…. if you have any other front end suggestions to your DVB-IPTV dvblast backend, i would welcome them.
      cheers again. Tony.

  25. ScottishTech says :

    For what it’s worth, I never did find out why our Exterity receivers can’t see the SAP from the Linux PC..

    I did capture “stuff” on WireShark, but had absolutely no idea whatsoever what I was meant to be looking for. Any ideas?

    Also – it’s nice to know, Tony, that lumping pretend presentations onto the screens when people of importance are visiting isn’t unique to schools… Do you ever get a TOP PRIORITY DROP EVERYTHING Helpdesk request when said pretend presentation doesn’t work?

    • tony says :

      heh, everytime scottishtech. “ignore the exchange server messages, get your arse up here to fix my ppt presentation now!”
      though luckily (for myself) i’m no longer on the front line anymore.

      i’m having a real troublesome time with ubuntu 11.10 and a terratec synergy piranha usb dvb stick. i’m no linux guru, but when i have to start editing perl scripts to point their “autoconf.h” to different place in /usr/src header directories, i know i’m in unknown territory. I’ve found the firmware file for the stick and its sitting pretty in the /lib/firmware directory but dmesg logs are having a fit. looks like drivers for it (in the sms10xxx modules) have been written for older kernels of linux and when i try to compile them i get all sorts of errors i cannot fathom.

      might roll back to ubuntu 9/10 as it looks like other people have this working fine on other usb dvb sticks. (i’m running ubuntu 11.10 on an old dell laptop with that stick in the usb port).

      oh well, no sweat no gain.

  26. Martyn says :

    Just stumbled upon this.. great post. Since it was over a year ago, are there any further improvements that could be made?

    Also – if you wanted to ‘save’ the stream to a hard drive, like a pvr, is this possible using this set up?

  27. ScottishTech says :

    Purely out of hypothetical interest here :)

    If I were to use VLC to record some streams as MPG files, and then host said files on a server running something like Subsonic, making them available to those who needed it…

    Would the school need to request some different form of licence for this? Or is it just completely forbidden by some copyright rules I’m blisfully unaware of?

    • AngryTechnician says :

      Digital storage and distribution of recordings is permissible under the terms of the ERA licence, which you hopefully already have if your school has any VHS/DVD recordings. You must of course comply with the ERA terms, including in particular the recording labelling requirements (see clause 10 of the licence).

  28. ScottishTech says :

    Hmm..

    So a way of doing that might be for Staff to go to a basic web page with some legal blurb copied from their PDF and a link at the bottom saying “I understand, and comply with the above” which would then take them to the proper Subsonic (or similar) server?

    This is all still HUGELY hypothetical, in that I suspect I would be murdered by my PTBs for even considering introducing this unsupported “hobby” project.. The joys of departmental politics!

  29. ScottishTech says :

    More hypotheticals :)

    If I were to download a file from BBCi Player Desktop and then (ahem) make it more inclined to stick around after its intended self-destruct… Would I be allowed to use this file?

    I’m asking to try to determine the difference between manually scheduling ProgramX to record on VLC versus modifying a copy downloaded from BBCi Player..

  30. Tim C says :

    Thansk for guide.

    Is it possible to do something similar for FreeSat? as well if so coudl you give a few pointers.

    I dont know much about how these srtreams are handeled by clients but is it possible to use players like Squeezebox to play freesat/Freeview Radio stations?

    Thanks

    • AngryTechnician says :

      Freesat actually works exactly the same way because it uses DVB-S, which is extremely similar to DVB-T at the data layer. If you have a DVB-S tuner that you can tune in to with VLC under Linux, you can use dvblast with it.

      The only problem is that Freesat has far fewer channels per multiplex, so you need more tuners (and more LNBs). To get all the FTA channels you would need literally dozens of tuners, so it’s not cost effective.

      Squeezebox does not support RTP streams, so that’s a no-go. The only dedicated media players I know of apart from Exterity that support RTP are the Dune HD players that are just hitting the market.

  31. Not so happy this didn't work. says :

    Didn’t work for me and my T500 Cards. I bought 2 as well. :/ Don’t show up in VLC or FLME. :(

  32. martin says :

    Great article, are you able to do a similar one but taking a satellite mux ?

  33. Adam says :

    also being in a school could you tell us some of the uses this has for the teachers and students. this seems like a good idea and allot cheaper than the commercialy avalible solutions but what are the uses.
    Thanks

    • AngryTechnician says :

      Basically it comes down to whatever your school would find a ‘normal’ television useful for. In the senior part of our school, I know some teachers will put the news on during form time so that pupils have an awareness of current affairs. With the younger children, being able to pop a children’s channel on during wet break or after-school care is invaluable.

  34. Steve says :

    A quick question on the legal side – do you have any pointers as to what is required as to licenses – I’m struggling to find any germs of wheat in Google’s chaff…

    We’re a higher education place so probably slightly different to a regular school as students live on-site. As such, I know that if they bring their own TV (or laptop with TV tuner?), they’re supposed to have their own license.
    If I was to set a system like this up, any idea if I’d be falling foul of some legal issue if I allowed the students access to it from their own rooms? Or would the TV license that we have covering the TVs in our student common rooms also extend to the students?

    Cheers,

    • The Angry Technician says :

      The communal licence would not cover them. The presence of TV tuning equipment is unimportant, all that matters is whether you are watching live TV, regardless of means. The same is actually true for watching live streams from iPlayer: they would still need a TV licence to be legal (source).

      • Steve says :

        That makes sense. Thanks for the link, a better source than I managed to find. I’ve never quite understood why live streams require a license, but watching the same program later doesn’t. I wonder whether introducing a 30 second buffer counts as non-live…

        I guess though I could make it available as a service with a strict disclaimer that they need to have a license to use it. That’s what sites such as tvcatchup appear to do via their T&Cs.

  35. faisal says :

    hello,

    can u help me out if i have a tv far away and i want to stream channels on it through wifi, then what can i do?
    can i use stb?
    but its expensive, can anybody have a cheaper solution?

  36. itfcmedia says :

    Is there a reason why I couldn’t use a single feed quad card? Like the sf800 or HVR-4400 for example. I’m trying to get around having to feed multiple aerials to supply all cards. I guess I’d have to research the drivers issues with linux etc but essentially it is just like having four cards (realise I’m just sounding it out)

  37. itfcmedia says :

    Me again.

    I get error: can’t fopen config file /root/M1.cfg
    regardless of where I put it. http://pastebin.com/05TrftwL

    dvblast -a 0 -c ~/M1.cfg -f 481833330 -m qam_16 -b 8 -e

    Am I missing something glaringly obvious?

  38. abdi says :

    hi, I need help how can I stream tv channel in my middelware for my cleints STB

  39. Gerard Sweeney says :

    Hmm – a small problem chez our school.

    We recently(ish) had a major upgrade of configuration which saw us forced to move our IP streamer from its own VLAN onto the same VLAN as the teacher workstations as multicast across VLANs was no longer an option without shelling out serious cash.

    I recently noticed that the connectivity of the teacher workstations connected to one model of Cisco switches was distinctly slower than other ones on a different model of Cisco switch. The activity lights of the Teacher VLAN ports also resembled strobe lights.

    If I removed the ethernet cable from the streamer PC then all was well with the world.

    Any thoughts on how to resolve this in case our Infrastructure chaps are more in favour of simply powering down the streamer?

    • The Angry Technician says :

      It sounds like multicast filtering either isn’t enabled or is not working on that switch. What model is it?

      • ScottishTech says :

        We have 3 main types of Cisco switch. Actually, I realised last night there’s a fourth one (2 48 port non-POE ones), but I haven’t checked those.

        Main 4750 = Works correctly
        2950 = Works correctly
        3560 = Does not work correctly

        Each remote cabinet in the school as a 3560 (for POE phones) with at least 1 2950 connected via fibre module.

        Thanks for the suggestion – it gives me hope it’s a fairly simple fix – fingers crossed that’s confirmed on Wednesday when we’re back at work.

  40. Dull ZZ says :

    It is a very useful guide for me. But I do have a question to ask, I only have one freeview receiver, I still prefer to watch TV anywhere (at home) I want. Is there an other way of automatic turning the frequency of the multiplex(only have one receiver) of dvblast or I have to do them manually using SSH every time I need to change channel?(e.g change from BBC One to ITV One). Sorry that my English is poor.

  41. Jonas says :

    I have some trouble with upstart. It is installed and debian boots, but if I check the status of dvblast and sapserver with ‘initctl list’, I receive the following message: ‘dvb-m1 stop/waiting’

  42. Jonas says :

    Can someone explain me why the upstart script is stop/waiting when I ask for its status with ‘status dvb-m1’?

  43. Jason Rivers says :

    I know this has been on the internets for a while, but I would just like to say that this is probably the best write-up I’ve yet found. However, I am getting a problem with dvblast with error: error: setting frontend failed (Invalid argument)

    I can launch the Tuner in VLC and all is fine, the fill command I’m running on dvblast and it’s output is:

    $ dvblast -a 0 -c /home/jason/dvb-stream/666.cfg -f 666000 -m qam_64 -b 8 -e
    DVBlast 2.0.0 (release)
    warning: restarting
    debug: turning on DVB compliance, required by EPG information
    debug: using linux-dvb API version 5
    debug: Frontend “WideView USB DVB-T” type “OFDM (DVB-T)” supports:
    debug: frequency min: 44250000, max: 867250000, stepsize: 250000, tolerance: 0
    debug: symbolrate min: 0, max: 0, tolerance: 0
    debug: capabilities:
    debug: INVERSION_AUTO
    debug: FEC_1_2
    debug: FEC_2_3
    debug: FEC_3_4
    debug: FEC_5_6
    debug: FEC_7_8
    debug: FEC_AUTO
    debug: QPSK
    debug: QAM_16
    debug: QAM_64
    debug: QAM_AUTO
    debug: TRANSMISSION_MODE_AUTO
    debug: GUARD_INTERVAL_AUTO
    debug: HIERARCHY_AUTO
    debug: FE_CAN_RECOVER
    debug: tuning OFDM frontend to f=666000 bandwidth=8 inversion=-1 fec_hp=999 fec_lp=999 hierarchy=-1 modulation=qam_64 guard=-1 transmission=-1
    error: setting frontend failed (Invalid argument)

    I also compiled 2.2, and that was the same, and I tried -n 0.

    $ ls /dev/dvb/adapter0/
    demux0 dvr0 frontend0 net0

    Any help on getting this running would be much appreciated!

    Thanks!

    • Jason Rivers says :

      Forget that, I missed the frequency being Hz, not KHz! (Do’H) – Though, I’m not getting playback on VLC (it has picked up the program name, and the program guide) I’ll have a look at that in the morning. Thanks for a great article.

      Jason.

  44. Ben says :

    I’ve ended up going down the USB route here – using the USB equivalent in the Nova-t 500 range (almost exactly the same price of ~£60 for a dual tuner) Whilst a little less tidy, the only machine I could fine going spare with 3 PCI slots was a massive old server, and I suspect that problem will only get worse – whereas USB is going to be around for a while.

  45. Ben says :

    Hello, I have got my streaming working making heavy use of your excellent guide. One issue I did have was the upstart script – I found it was failing as it was running after network was up (good) but before the DVB-T cards were, hence dvblast was quitting.

    This thread:

    http://ubuntuforums.org/showthread.php?t=1345079&page=2

    Gave a solution to a similar problem, which then resulted in the following upstart script:
    # dvb-m5
    #

    description “DVB streaming, Multiplex 5″

    start on filesystem and net-device-up IFACE=eth0.812
    stop on net-device-down IFACE=eth0.812
    script
    #added to ensure that the DVB-T cards are init before dvblast
    for i in {0..5}
    do
    TUNER=”/dev/dvb/adapter$i/frontend0”
    while [ -c !$TUNER ]; do
    sleep 2s
    done
    done

    exec dvblast -a 3 -c /home/cctv/Desktop/M5.cfg -f 529833000 -m qam_64 -b 8 -t 64
    end script

    Which waits until all 6 tuners are up before continuing. Since each script only uses one tuner, the loops isn’t strictly neccesary, but makes it a bit more generic.

    • Jonas says :

      What kind of error did you receive at first, because I use your script, but it won’t work. I still get ‘dvb-m1 stop/waiting’ when I use the command ‘initctl list’.

      • Ben says :

        Jonas, I never actually captured the error. However, the problem was that dvblast was starting too early. Although the above should work, since the /dev/dvb/adapterX folder should not exist untilt that tuner is ready, I still found dvblast starting too early, and I’m not sure why.

        I ended up putting a “sleep 30s” command in before the exec line, which means the script waits until the devices all exist, then waits another 30 seconds.

        This is a horrible hack, but should ensure that everything is up and ready before the dvblast command is run, and anyway this script does not run very often – so the delay of a few seconds doesn’t really matter.

        • Dave says :

          Hey there. Best write up ever!!!
          I have everything running perfect on multicast etc within my local network. Is there a way of accessing this externally with my external ip?
          I’ve tried restreaming each multicast ip via http and setting my external port numbers. But this leaves me with an instance of vlc open for every channel but can’t get this to work anyway. So I’d like to know if it’s possible to watch the live stream externally and if so how?

          • The Angry Technician says :

            I’ve actually been looking at a program that does this just this week, and will be posting about it in a day or so. In the meantime, check out UDPXY for a headstart!

            • Dave says :

              Briliant!!! Im going away abroad for a month and i was playing with the idea of using this setup so i can still watch my favourites away. Iv downloaded the open source, just trying to figure out how to install and use now.

    • mattie47 says :

      Interesting….I spent hours trying to get upstart to work but just didn’t fully understand it. My solution was simply to put each dvblast command into the gui Ubuntu start up program, so it runs them once I’ve logged into the machine. This is fine because I’ve got the machine to auto log in. Call it a dirty way of doing things, but it does work.

      This was working perfect, right up until I had to add another NIC to stream all the channels on IPv4 on 1 NIC and IPv6 on another NIC (don’t ask, but it is necessary in my client set up). Currently on rebooting the machine, all the commands will run sweet, but both streams will go out eth0 instead of eth0 and eth1. Routes added in /etc/networking/interfaces are correct as my current fix for this problem is to ethdown eth0, then ethup eth0. If you’re only using 1 NIC, I think what I described above will work more than fine, but thought I should mention the rest for anyone else reading this.

      Another thing I find helpful – apt-get install bmon. I find bmon quite good for monitoring each of the 3 NICs (Other nic for management) in the machine.

      On a related note, I’m currently writing a tutorial similiar to Angry Techs but with my experiences. Should be up in a few days: http://www.mattie47.com

      • The Angry Technician says :

        You can specify the outgoing ethernet adapter by adding it’s IP4 address to each line of the channel config files.

        Example: change the line

        239.255.1.3:5004     1    8261

        to

        239.255.1.3:5004@192.168.1.1     1    8261

        I recently switched to a multi-adapter network setup on my own server and this worked for me.

        • mattie47 says :

          Interesting…

          I read the man page several times and am surprised I didn’t pick up on trying to do that. Currently, config is set up like below:

          ;TV3
          239.255.1.3:5004 1 1300
          [ff08::3]:5004 1 1300

          I might give this a shot at work in the morning. Will report back on any success.

          Cheers.

          Curious, but did you ever end up having a look at mumuDVB?

          The only time I tried it (and failed, months before dvblast admittedly…Have yet to give it another go) was getting it to run at home on a tp link WR1043ND running OpenWRT with a USB tuner following: https://forum.openwrt.org/viewtopic.php?pid=144920 (posting this purely because I think it’s awesome you can run multicast tv running just from a wireless router).

        • Matt says :

          Thanks for the advice. It appears to have also fixed another problem. The network card we had doing IPv6 randomly would start sending the multicast out using the link-local address instead of the global address.

          In /etc/networking/interfaces we originally had:

          auto eth1
          iface eth1 inet6 static
          address 2001:0017:0017:0000:0000:0000:0000:0001
          netmask 96
          up ip -6 route add metric 1 ff08::/16 via 2001:0017:0017:0000:0000:0000:0000:0001 dev eth1

          Which appeared to do the job (ff08::/16 being the multicast range) but would then randomly choose to start sending the packets out with a source address of the fe80:: link local.

          So for those wanting to do IPv4 and IPv6, our sample config looks like this:

          ;FOUR
          239.255.1.4:5004 1 1301
          [ff08::4]:5004@[2001:17:17::1] 1 1301
          ;TV3PLUS1
          239.255.1.5:5004 1 1302
          [ff08::5]:5004@[2001:17:17::1] 1 1302
          ;C4
          239.255.1.8:5004 1 1303
          [ff08::8]:5004@[2001:17:17::1] 1 1303

          and we removed the static routes from /etc/networking/interfaces

          Hope this may be helpful for someone :)

  46. Dave says :

    How you getting on with udpxy? im installed and ready to go but trying to figure out how to use, i have dvblast running and have my list of multicast ip’s, just trying to figure out how to tell it to open the streams for external use.

    • The Angry Technician says :

      If you’re compiled and udpxy is running, all you need is the URL format, which is like this:

      http://192.168.1.1:4022/rtp/239.255.1.1:5004

      As you can probably guess, the first IP address is the address of the machine running udpxy (you can use a hostname too) and the second IP address is the multicast stream you want to watch.

      • Dave says :

        So how would the external client connect?
        The external ip would be needed a port number would be the ‘4002’ in the example above?

        Thanks
        Dave

        • The Angry Technician says :

          Yep, just forward a port on your router to your internal Linux box on whatever port you’re running udxy on. It doesn’t have to be port 4022, I just used that as it was in an example on the udpxy forums.

  47. Gabi says :

    just a query, in theory could you potentially use a DVB-T tuner device on your laptop, to stream TV to your TV via a streaming media box like the boxee or roku? I’m in Ireland, so don’t know if that would be an issue, I get UK freeview at the mo, via sat dish and receiver box, but need one for each TV and need to drill wall of house to get feed in from sat box. have been using a WIfi radio for last few years and absolutely love it. (revo mondo) and am slowing waking up to the idea that I could get my TV in a similar way…

  48. KL says :

    Great how to!

    Ive been playing about this at work and have come into a slight issue, when using dvblast with a KWorld tuner I can only send the signal of around 6 channels, any more and VLC picks up the program name but wont pick up video / audio.

    However if i use an old Hauppage mytv.t usb tuner i get a lot more channels in the exact same config (i.e. i send out 8 channels in the conf file with dvblast on tuner 0 (Kworld) i get 5 good connections and 3 only pick up thej program name no video, when i stop the command and use the exact same config but send out on tuner 1 (Hauppage) all 8 VLC windows pick up the channels almost immediately!)

    Is there a difference in the quality of tuners and sending out a number of channels? I’m not the best when it comes to Tvs / freqs etc :).

  49. Norfolk'N'Good says :

    I have been following this post, and its great – i have been wanting to impliment somthing like this for years!

    After installation all is well, streaming channels no worries at all, however; my network is having problems with the multicast traffic – our site is covered with HP switches with IGMP enabled, but the multicast traffic contunes to flood the network – i have fould this on the mumudvb site (http://mumudvb.braice.net/mumudrupal/node/43) -> (14.10. HELP ! my multicast traffic is flooded (I have a HP procurve switch)) and following up on the HP website (http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?lang=en&cc=us&taskId=120&prodSeriesId=3231819&prodTypeId=12883&objectID=c02597360).

    So my question is: is there anyway of adding something into the configuration for the multicast traffic to be joined to a multicast group – like the work around in mumudvb “put multicast_auto_join=1 in your configuration file.” for the stupid HP IGMP Snooping switches.

    I have attempted to configure mumudvb but with no sucess thus far. But as dvblast actually works i’d rather keep using this – just without flooding the network.

    I have also looked at the udpxy, for unicast traffic, but the dvblast needs to be
    running – and therefore it will still be sending out mulitcast data.

    Looking back at obinou’s post (8th September, 2011 at 10.54 ), he had a very similar issue – did you get it sorted?

    Thanks in advance.

    • The Angry Technician says :

      Are all the switches running the latest firmware? If they are, and you’ve still got flooding issues, one suggestion I could make is to run dvblast on a loopback interface (or an untagged vlan) and use udpxy to take the input from that interface and serve it unicast on a normal interface.

    • mattie47 says :

      What part of setting up mumuDVB did you have issues with? It took me a wee while to get it working, as I have two NICs that traffic goes out on (IPv4 on one, and IPv6 on the other), but below is my config file. I’m also running DVBlast out 3 other tuners, and mumuDVB out the 4th tuner.

      freq=594
      autoconfiguration=full
      multicast_ttl=20
      multicast_iface6=eth1
      multicast_ipv6=1
      card_dev_path=/dev/dvb/adapter3

      My issue was that mumuDVB couldn’t find the tuner, and I didn’t realise I had to literally point it to which tuner I meant. As you can see I’m using auto config, this was just to get it working, and I haven’t done much with it since, because I can just use SAP to see the correct channels. We’re simply using this and DVBlast for testing multicast, which has proven to be very helpful. Sent 74.4TBytes around quite a large network over about 4-5 weeks!

  50. brendon says :

    mate, I knew (blindly/in my heart/whatever) it was possible, eh, and following your guides I now understand yet another aspect of serving, which will be added to my “let’s get to know servers” server. Just purchased $32 worth of usb tuners from ebay – hopefully the interface is pretty standard by now. The cheap one I bought a few years ago worked fine with jockey. I’m easily serving many channels at once (on the same receiving computer actually) with no dramas out of a four year old low spec laptop. So…. if this all works, I’m gonna start collecting a bunch of throwaway computers from kerbside cleanup and buy some bulk tuners from overseas and maybe start selling these as a turnkey sollution at the kind of price that the average consumer can expect to afford to have live streaming of dvb around the house. Thanks for the inspiration – did you say you were a teacher? I hope your students realise you are giving them powerful sollutions that could be worth money in this economy…

  51. Paco says :

    That sounds like my project for Christmas. Do you need to pay TV license this way? I always watch stuff from the iPlayers or http://blip.tv but there are lots of shows that I miss. It’s always good having this option though.

  52. brendon says :

    brilliant guide, works like a charm. Works great on ubuntu server. Only thing is the router overheats. Which is strange because I watch multiple “streams” (per se) over “Samba” just fine, but whenever dvblast gets cranking, the router only lasts about 48 hours then twigs out and is super hot – even if no clients connect to the streams the whole time. We do have some switches and about 9 computers connected, but never had any dramas till dvblast, and since turning off the streaming for a few weeks after trying it twice, now everything is back to normal and we’re all downloading and watching media of various shared drives like crazy. Is this normal? Does RTP somehow stress the router out even when no client is connected? Is there some way I can take a load off the router by doing whatever task is causing it to get hot, by using some kind of magic software on the server?

  53. Terry Pothin says :

    Hi,

    Does this system also work over the internet if i wanted to only stream one channel for example ? Can you control the streaming rate of each channel in your config file ?

    Thanks.

  54. Kenneth says :

    Scanning for Freeview from Bluebell Hill required the file to be amended to the file below ….

    T 674000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
    T 650000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
    T 626000000 8MHz 2/3 NONE QAM256 32k 1/128 NONE
    T 666000000 8MHz 3/4 NONE QAM64 8k 1/32 NONE
    T 618000000 8MHz 3/4 NONE QAM64 8k 1/32 NONE
    T 738000000 8MHz 3/4 NONE QAM64 8k 1/32 NONE

  55. Tim says :

    I know you lambasted the first reader comment on mentioning TV Catchup. But out of interest, I wonder if you could you use your system above to reproduce something similar to TV Catchup, obviously building some kind of user player to receive the stream in place of the VLC player…..

    • The Angry Technician says :

      It’s possible, but probably not practical. If you goal is to broadcast over the Internet, you would face the same legal issues that have dogged TV Catchup for years (see http://en.wikipedia.org/wiki/TVCatchup) you’d also need a hugely expensive amount of bandwidth as multicast doesn’t work over the vast majority of the Internet (I’m surprised TV Catchup can afford to run their service just on the adverts they add). To reduce costs you could transcode the streams to a lower-quality format, but you’d need a fair amount of processing power given the number of channels involved, and a significantly more complicated software setup.

  56. Nateevs says :

    Hi,

    Awesome write-up I must say. The best written on the this topic on the internet. I followed all your steps and everything just worked. I have gone on to do other things since then.

    However, I have a problem that I don’t know if you have encountered. You are perhaps more experienced at his and you may have an answer. I am streaming four multiplexes from 3 physical PCs and I multicast the channels over a network using a Cisco 3560 switch.

    The problem I have is that I can never see more than exactly 18 channels on VLC at any point in time. If all streamers work, it will be exactly 18 even though there are 32 channels on the network.

    I know I am missing something but I just cannot put a finger on it. Do you get all your SAP-announced TV channels on VLC?

    Please help. Thanks.

    • The Angry Technician says :

      Are the SAP announcements done from one of the PC’s or do they each announce their own channels separately? Are the missing channels all from one source or is it random?

      • The Angry Technician says :

        No, I haven’t. My guess is that it might be to do with VLC not correctly interpreting SAP announcements from multiple sources. As a test, try putting all the channels in the config on a single machine, and see if you still get any missing.

        • Nateevs says :

          Thanks.

          I was tempted to think it is VLC as well except I am running VLC on 4 different client PCs and I witness the same behaviour – 18 announced channels on all 4.

          I will move the SAP announcements to a single PC and I will let you know what happens tomorrow.

          Thanks for your help.

  57. Nateevs says :

    Hi,

    Apologies for not getting back immediately. I have only just found time to try it out.

    I started out typing this message to tell you that still it didn’t work except now I am getting 22 channels instead of the previous 18.

    I decided to look at why I was getting 18 at first and now 22. I looked at my first SAP file which I called sap1.cfg (to identify channels from the 1st Transponder) and then I realized that I had increased the number of channels I was streaming from the transponder – 22 of them. Before I contacted you, only 18 of them.

    I thought ah!, perhaps I should put all the channels in one single file. (I previously had a separate SAP file for each transponder) Bingo, VLC can now see alllllll my channels. This literally happened only a few minutes ago.

    Thank you very much for suggesting to put the SAP announcements on one PC. Cos attempting to do that led to the solution.

    SUCCESS!

    Thanks for helping when I didn’t need to contact you and eventually when I did.

    You is a STAR!

  58. Matthew Harmon says :

    Very interesting guide. I’ve been setting up a few Digital signage players (mainly LG models, and 1 experimental RaspberryPi model on test) but these do not support RTP URLs. It is possible to create an empty video file (ideally an avi or mpg) that contains opens the stream and plays it back? I will mainly want to be using BBC News, but I guess you would need 1 file for each channel. I’ve had a search online but I can only find instructions on recording the streams into a file, but I want it to play live (or as close to live as possible).

    So far I have managed to get it to play live BBC News from iPlayer, but this relies on an internet connection, which some clients don’t have, so offering a local steaming solution would be great

  59. Gary Lee says :

    Hi there, may I ask how you have IGMP filtering set up on your ProCurve switches? We’re fully ProCurve over here (mainly ZL and GL series) and I have the default Multicast Filtering option enabled, but having the server running still seems to cause us major problems (dropped packets and general slowness etc) I checked it out in wireshark and I can still see multicast packets flying about for all the channels’ IP addresses even when the machine I’m capturing from doesn’t have VLC open.

    Any help would be much appreciated.

    Cheers,
    Gary

    • The Angry Technician says :

      That’s the option I used. Is it happening on all switches or just some of them? Also what model is your core switch? I had trouble with our 5308xl, it can’t handle any significant amount of multicast routing without freezing up at random, even on the latest firmware.

      • ScottishTech says :

        I experienced the dropped packets and slowness at our place. So much so that I was ordered to switch it off.

        Basically, if I connected the streamer to a 3560 on VLAN10, any VLAN10 PC in the whole school on a 3560 would experience significant slowness, and the activity lights on the switch would go absolutely tonto. Regardless of whether anyone was actually watching any TV channels or not.

        To clarify – there are 9 remote cabinets in our school, all with at least 1 3560 and 2950. The 3560s are there to provide POE for the phones. All of them would have this issue.

        However – PCs on VLAN10 on the lower-spec Cisco 2950s in either the remote cabinets or the main cabinet where the streamer is connected were blissfully unaware of any problems.

        So there’s something flooding the 3560s but our Infrastructure team – oddly enough – weren’t overly joyous at the thought of trying to support my £150 freeview network-killing streamer. Particularly as it looked like (presumably costly) support calls to VMB might be required.

        Interestingly, the still-functioning Exterity “brick” which converts a SCART socket device to a multicast stream also exhibits this problem. So I’ve had to leave it switched off as well unless absolutely necessary. It’s only one multicast stream, but the activity lights are still VERY noticeably faster when it’s powered up – again, even if nobody is watching the damn thing.

        I’m going to try moving the “brick” to a 2950 at some point, and see what happens. During the Summer. So I don’t kill the whole school!

      • Gary Lee says :

        I’ve had monitoring alerts about a few of our outlying switches, but I’ve only ever been at the core when the server is running, because I can’t leave it broadcasting for any length of time, therefore I can’t be sure it’s affecting them all, it could just be the monitoring system can’t get a timely response going via the core switch.

        The core switch is a 5412zl, however the TV box isn’t connected directly to it, but through another 5412zl which is linked over fibre trunk, both have the default IGMP filtering enabled.

  60. James Robinson says :

    Hi there. I came across your page about distributing TV around the house to distribute every freeview channel.

    However, I wonder can you help? I do not want to get every Freeview channel running all the time on my netowrk – just the main 5 and a few more.

    My current setup, was put in at the time of DSO for Winter Hill in 2009 and I set my TVs up so they wound function the same way as they did before DSO.

    So I have the following setup:

    Ch 22: BBC1
    Ch 24: Granada
    Ch 26: BBC2
    Ch 28: Channel 4
    Ch 30: Channel 5
    Ch 32: Satellite receiver
    Ch 38: Camera
    Ch 41 Virgin Media V+HD box via RF moulator
    Ch 44: Sky
    Ch 47: Virgin Media Tivo box (via RF modulator)
    Ch 51: Virgin
    Ch 53: Sky HD
    Ch 61: Freeview box and DVD player via RF mod and scart adapter

    (BTw no interference on channel 61 as yet and will only hae to move it if I get this after 4G starts).

    Anyway, as I have no fewer than 6 of the boxes looking at Freeview, three of them on the same mux, it has become aparent to me that our electricity bill is too high for comfort.

    Many of the boxes run at 10Watts per hour, two of them are 4.5 watts per hour but they have transformers on them and the electtricity in there is wasted.

    So what I need is a device that will accept my UHF aerial, but will distribute the entire mux on different output frequencies. I would want an output of

    BBC1
    BBC2
    Granada
    Channel 4
    Channel 5
    Virgin
    Virgin Tivo
    Sky
    2nd Satellite box
    Extra freview box

    etc

    all on a box that will take UHF in and split the mux up so that one stream runs on one UHF channel, the next on another etc.

    Are you able to help me on this and please reply directly to my e-mail address. I am trying to get what we have now but for less electricity consumption.

    Thanks for your hep and I look forward to hearing from you.

    Regards
    James Robinson

  61. Alex says :

    I really appreciate you putting your effort into building this tutorial. Are there any updates you can share with us. Maybe compression on video stream. Looking forward for your feedback. Thank yiu

  62. Andrew says :

    Hi to all,

    I am facing a problem with the DVblast which i spend couple of hours to solve but i think i need you help.

    I am located in London and i have a single DVB-T card. When i am using the following command i can watch all the channels from the config file without problem:

    dvblast -a 0 -f 482000000 -c arqa.cfg -m qam_64 -b 8 -U -t 10 -i 1

    When i am using the following command for another multiplex dvblast can’t stream it with the error “warning: invalid FEC 999”

    dvblast -a 0 -f 490000000 -c bbca.cfg -m qam_64 -b 8 -t 10

    The only difference between the two multipexes is the FEC because the freq 482000000 have FEC 3/4 and the freq 490000000 have fec 2/3. Can i change the fec to auto or to something else for the freq 490000000 ?

    Thank you
    Andrew

    • The Angry Technician says :

      I can’t see anything wrong with your dvblast syntax – I’m using the Crystal Palace transmitter too and don’t have any problems, so it may be card-specific.

      You can specify the FEC manually using the -F (uppercase) switch in recent versions of dvblast by giving the known FEC without the /, e.g., for a FEC of 2/3, specify -F 23 on the dvblast command line.

  63. zachb90 says :

    I have already built this server with 3 dual tuner cards. The only problem is I have 30 analog channels i need to stream. How can I put the analog channels in a mux? Is there any hardware or software to mux several channels together?

    • The Angry Technician says :

      I don’t know of any way to do that. Analogue channels would need to be captured by separate tuners and then encoded to digital, which I don’t cover at all in my guides.

  64. Yasser Sobhy says :

    Hi angry technician

    first I thanks you very much for your great and helpful articles

    and I have three questions I hope you can answer

    1- I do stream tv channels through my network and it works fine, but what if I have a TV that I want to connect to my lan to view these streamed channels

    is there any device or adapter I can use to connect RJ-45 to my TV (usually through RCA or RF cables NO HDMI OR VGA CABLES AVAILABLE IN ALL TV’s) and let users change channels through thier remote control?;

    and if there are a HDMI or VGA inputs in my TV’s can they change channels through thier remote control?

    2- what Multiplex exactly is, I am from Egypt and I don’t know how to get that Multiplex for NileSat satellite. Note: if I open my TV receiver menu I can see that there are some channel have the same frequency is that frequency the Multiplex or can I use it instead of Multiplex (Nilesat frequency are usually consistes of 5 numbers like 11639 )

    3- I stream my channels in a 100mbs cables using mutilcast, so how many users can view may channles, for example if I stream 10 channels at 5mbs bandwidth will this consume 50mb of the cables bandwidth without affecting over PC’s connected to the internet through the same cable

    thanks in advance

    • The Angry Technician says :

      1. I believe there are boxes out there that do this (the hotel industry uses similar devices) but I have no experience with them so I’m not able to recommend one.

      2. A multiplex in TV terms is a combination of several digital channels onto one frequency. So when you look on your TV menu and see channels on the same frequency, those channels are on the same multiplex. You don;t need to know the numbers of the multiplex itself, it’s the frequency that is important.

      3. If you stream 10 channels at 5Mbps, the bandwidth usage at the server will be 50Mbps. But unless the channels are being watched, there will be NO bandwidth used elsewhere on the network (if your switch handles multicast correctly). Even though the channels are being pushed onto the network by the server, the switch filters the data out and doesn’t pass it on to the other computers until they request it.

  65. wagdi says :

    I want to do a wireless network the users around 100 users and I want to share around 10channals form receiver or satellite card I need The way to do this without internet and
    the distance 2 kilometers
    please help me

  66. Qamar says :

    Is is possiable to set up same here in Pakistan? As I did not know how to scan freeview channel list. Here is local tv cable network over coaxial cable.

    • The Angry Technician says :

      I don’t think so. For this to work your local TV system (whether it is aerial, cable, or satellite) needs to be digital using the DVB system. As far as I am aware Pakistan cable TV does not use DVB.

  67. Chris says :

    Has anyone got this working for DAB radio or even FM?
    I’d like to get some more radio stations set up – those that are not covered by the Freeview.

    Cheers

  68. NotAngryWoman says :

    Hi Angry man,
    The method you have listed works absolutely fine if I stream just 1 channel (example: BBC THREE) of a frequency group(example, BBC THREE, BBC TWO, BBC ONE, etc use the same freq 505833330), both client and server are happy. But when I increase the number of channels to be streamed, the number of packets coming out of the server reduces drastically and hence, there is poor video quality(like stuttering) in the client. I am using 1GB switch (and of course linux OS).thanks.

  69. ben says :

    Does anyone know what the total number of muxes is likely to become?

    Looking at the crystal palace details here:

    http://www.ukfree.tv/txdetail.php?a=TQ339712

    It looks like there are 6 now, soon to be 9….maybe more later…? It starts to make having a tuner per mux a bit more difficult if it keeps going up :-)

  70. Jim Woollison says :

    Or you could buy a modern PVR. My Panasonic DMR HWT130 will send all Freeview channels to my network. Is it called DLNA?

    • The Angry Technician says :

      It may make all the channels available, but how many can you actually watch simultaneously?

      I think what you’re seeing is an EPG with every channel being sent to the network via DLNA, but it only tunes in when you actually select one of those channels. Looking at the product info, it only has 2 tuners. Even if it were able to take all channels from a single multiplex at once (and I’ve yet to find a consumer Freeview box that does this), you still need 1 tuner per multiplex, and to get every channel just in SD you need to tune to 6 multiplexes, which means at least 6 tuners.

      The above solution gives you the number of tuners you’d need, and in theory you could have 100+ devices tuning into every individual live Freeview channel at once. At best I suspect you could only watch up to 2 live channels at a time on that Panasonic. If I’m wrong, and you can indeed watch more than 2 live channels simultaneously, then it’s unlike any other Freeview box I’ve seen so far and is an absolute bargain.

  71. Mix says :

    Hi! Thanks for a great tutorial! But i still have problems getting this to work, hope you can help me :)

    I am using dvblast 2.2.1 on debian machine with Fujitsu Slim USB DVB-T stick.
    Scanning channels went well, it finds all the channels what i need.

    My channels.txt:
    http://pastebin.com/tvihr3eV

    My config file:
    http://pastebin.com/vh5kajhr
    Commented out most, only leaved ETV in there for testing.

    Now when i run dvblast with correct frequency i get lots of debug messages what i cant understand:

    http://pastebin.com/gTfQ2Tdi

    It also says:
    debug: frontend has acquired signal
    debug: frontend has acquired carrier
    debug: frontend has acquired stable FEC
    debug: frontend has acquired sync
    info: frontend has acquired lock
    frontend has acquired lock
    debug: – Bit error rate: 0
    debug: – Signal strength: 32913
    debug: – SNR: 50

    So it actually should work i think??!?!?!

    When i get on my windows machine and try to open rtp://@239.255.1.1 with VLC
    I get absolutley nothing.

    I dont know if its a problem with dvblast or with my network settings, hope you can help me!

    Regards

    • The Angry Technician says :

      Are you able to install and run VLC on the Debian machine to see if it works there?

      • Mix says :

        Hi, i got it working after messing with mumudvb instead, it was propably somekind of multicast issue. With mumudvb it works with unicast, but it eats lot of bandwitch, i have only 10mbit upload, and one viewing instance takes about 5-6mbit. So if i want to stream to 2-3 devices on WAN, its impossible. So heres another question for you, can i somehow stream to vps and then re-stream from there using vps 1gbit connection, so i could stream more than 2-3 devices simutaneously. I have to use unicast anyway, as i understand multicast only works in LAN.

  72. Tommy says :

    This is a great guide and even now in 2014 I would like to setup a mediastreamer to stream the local channels when I’m on holiday.
    Here in Belgium we have DVB-C but i guess it would also work.
    I just need some advice about the TBS6618 card. This is a DVB-C tuner card with a CI slot.

    The question : could I have all channels that are now on my TV to work with one TBS6618 card? It seems linux drivers are available but before I order the card it would be nice to know howmany cards I actually need.

    I’m not a regular ubuntu user but I can follow newbie commands guide fairly well
    If i would have about 5 channels to view on holiday that is more then enough, I would prefer to push it trough my cable modem witch has 10Mbit upstream.

    Greetings

    Tom

    • The Angry Technician says :

      From what I know about the Belgian DVB implementation, you’d need too many tuners for it to be practical. You always need 1 tuner per multiplex for this method, and while we currently only have 6 multiplexes in the UK, I believe Belgium has somewhere around 12, so you’d need 12 tuners to get them all.

  73. Kevin says :

    Thank you Angry Tech,for this fantastic tutorial on tv streaming around the house , easily the best I have read ,even for people whom have little linux knowledge ,like myself .
    I have a question . How can you make DVBlast stream it’s output to a file on the local H.D.D ,instead of just streaming to the network .There must be way do you think , but I can’t find it ,because I am newbie to linux .

    • The Angry Technician says :

      A quick way to do it manually is to use VLC to open the stream and save it to disk using the Stream function on the Media menu.

      I’ve also blogged before about a program called udpxrec, which converts the multicast stream to unicast. That program comes with another command-line tool called udpxy which can save to disk.

  74. Ang says :

    Hello,
    I was following your inputs about streaming and everything went very well. However, I wonder is it possible to decrypt two or more scrambled channels from one multiplex at the same time? As soon as I set it up, I get errors from the second stream where dvblast keeps resseting that second scrambled stream. I do have CI module and everything but still not worling with 2 or more scrambled cahnnels at the same time… Yeah, maybe I’m an idiot ;-)

  75. ALI JASSIM says :

    Greetings to you
    Dear
    i have one question !
    can i broadcast all channels with 1 DVB card ? with different frequency ?
    or One Card only for One Frequency ?

    Yours Sincerely

    • The Angry Technician says :

      Its one card for one frequency. The only exception is if your card is a dual tuner card.

      • ALI JASSIM says :

        Thank you for your fast replay ! :)

        my card name is : TechniSat SkyStar 2 eXpress HD
        so from your experience , Is this card TechniSat SkyStar 2 eXpress HD can use only one frequency ?

  76. Martin says :

    Great article, just one question. How/what would you use to take the -e command in DVBLAST to populate an EPG?

  77. David says :

    Just thought I’d add in that I’ve recently done this and it’s working a treat. I used 3 win nova t500 dual tuner cards, Ubuntu 14.04 Lts desktop with him a gui turned off on some old P4 acer tower with 3 pcis, 1gb Ram, an 80gb HD and giga ethernet. Few problems I overcame were:

    1. Dvblast now uses # not ; for the comments (channel names) as above.
    2. My hardware installed unbuntu 14.04 no problem at all, everything worked out the box but the gui was painfully slow, move mouse, wait, mouse moves. I turned the gui off and booted to the cli, no problems from then on.
    3. Sorting multicast on my netgear prosafe and Cisco Small business switches was a mind f**k. I basically has a laptop running wireshark to see what was going on on the switch while I messed with all the multicast settings until I got to a configuration that allowed me to run the streams while not flooding the network with multicast traffic! The Cisco Small Business stuff requires you to add each multicast address you want to allow on the network! Mind blown.
    4. The SD PoE exterity boxes work a treat with the streams as long as they are in the 239.255.x.x range. Remote allows you to scroll through all the sap announced channels and change them like they were being streamed from an exterity ‘server’
    5. The cheapest dirtiest screw fix aerial and coax cable with the cheapest 6 way splitter I could find at an electrical wholesaler worked an absolute treat! I spent £45 on an aerial and cable, £15 on a splitter and £160 on 3 cards, I had the hardware that I saved from the scrap bin. Total cost £220.

    Just need to take an image of the disk now in case I break it… And maybe transfer it to a rack mount case!

  78. ned says :

    Only 5yrs behind you :) Like your articles & styles.

    …Just finished setting up pi with sundtek usb tv tuner, tvheadend. Only wish I’d got to your site before spending 3 days ranting & embarrassing myself.

    BTW…I’m in the Lake district with crap broadband & dodgey 3 ft lakeland cottage walls which can’t keep the cold out but certainly do a number on the wifi & streaming from ipads to the tellie.

    Which got me thinking…why not hook up a pi to the aerial connection sitting in the corner of the room…the slippery slope

  79. alexatkinuk says :

    I wanted to do this but as I have several WiFi routers/APs on the network that I couldn’t get IGMP Snooping to work on, I had to rethink.

    What I ended up doing is setting up a second network bridge on my server and telling dvblast to broadcast to that instead of the real LAN. Then I added a static route so that multicasting uses this bridge by default and then ran udpxy on the same box as normal.

    When a client from br0 requests a unicast stream, udpxy looks for the multicast stream on br1 and then streams it back to the client over br0. So its only using REAL network bandwidth on-demand.

    As I only ever need a couple of streams at a time, this is actually more efficient than multicasting a ton of channels over the whole LAN all the time, and cheaper than buying a managed switch to avoid that.

    I hope this helps other people as I was unable to find a good explanation of how to do this so spent a few hours trying different things before I got it to work.

  80. Andrew says :

    what upload speed would you need to broadcast all freeview channels

  81. Gerard Sweeney says :

    Another way might be to to write a little script to generate shortcuts for each channel and save that in a shared folder. That’s my plan for work – save explaining to the assorted staff how to use VLC :)

    If you want a copy of my shonky script, give me a shout.

  82. streamnewbie says :

    well, a very helpful article. i’m indonesian, too bad that digital terrestrial doesn’t work in my country.
    do you have any recommendation hybrid tv tuner, dual tuner, that supports linux well??umm, i am using debian squeeze 2.6.35 (updated kernel)

    thanks a lot. sorry that my english not so good.

  83. ben says :

    I’ve just been reading the man pages for dvBlast – is there a way to stream the various channels with subtitles on at the source, or is this always something that has to be done at the receiving client?

  84. The Angry Technician says :

    There is no way to render subtitles by default using dvblast – it has to be done at the client.

  85. Ben says :

    Cheers for the reply. Setting subtitles on/off at source would be useful – but it sounds like the only solution would be to use VLC to re-encode the TV and subtitles into one, then stream out…possibly not worth the trouble. Will have a play :-)

  86. stefan says :

    I want to make local streaming over the LAN i make the m1.cfg like this one
    ;MTV1
    192.168.1.255:1234 1 1
    but dvblast is not able to connect
    Why I am doing wrong

  87. The Angry Technician says :

    dvblast only works with multicast addresses, so you have to send to a 239.255.x.x address, as explained in the article. Computers on the local LAN with 192.168.x.x addresses (or any other ‘normal’ address) will still be able to pick it up; the 239.255.x.x. addresses are special addresses that can be used regardless of the IP range in use for unicast.

  88. stefan says :

    Tnx, I thought I can use my dvb-t stick with dvblast for local LAN streaming. I thought I can forward port in my router and can stream over WAN with mine public IP. So what kind of software I need to stream over LAN or WAN without multicast address.

  89. Fred says :

    Hi , Well done this is great . Do you know if it possible to do this using freesat (we are a little remote)
    Thanks

  90. The Angry Technician says :

    Freesat actually works exactly the same way because it uses DVB-S, which is extremely similar to DVB-T at the data layer. If you have a DVB-S tuner that you can tune in to with VLC under Linux, you can use dvblast with it.

    The only problem is that Freesat has many more multiplexes, with fewer channels per multiplex, so you need more tuners (and more LNBs). To get all the FTA channels you would need literally dozens of tuners, so it’s not cost effective.

  91. Dan says :

    As things change with dvblast and:
    ;BBC News
    239.255.1.80:5004 1 4415
    seems no longer works you should update to:
    #BBC News
    239.255.1.80:5004 1 4415