Important note: References to any products in this tutorial should not be taken as recommendations for or against those products. There are a lot of suitable products in this area, and you should choose the ones that suit you best.
Sometimes you may want to use some video to show how your application will look when it is broadcast, or to test any code that plays media, selects a new service or reads data from the MPEG stream (e.g. section filtering or service information access). Usually, you will need to feed a transport stream into your STB to do this.
The IRT reference implementation will let you play back streams from the hard disk, but users of all other developer STBs will need to feed the transport stream in to the broadcast input (the satellite, cable, or antenna socket on your STB). Developers in places where free-to-air signals are being broadcast on the appropriate type of network may be able to connect their STB to a real signal and use that for testing. If a real signal is not available, or if you want to test a transport stream with some specific features, then you will need to set up your own system for doing this. There are two main parts to doing this:
Usually, an STB will have a cable, satellite or terrestrial input. To convert a transport stream into the right format, you need to use a modulator of the appropriate type. The diagram below shows the basic setup that you need:
A transport stream playout system is basically a device that reads a transport stream from a file and plays it out over a high-speed ASI (Asynchronous Serial Interface) connection or Ethernet interface at the appropriate speed. This can be fed into an appropriate modulator, or any other piece of head-end equipment. While many companies sell standalone transport stream playout systems (e.g. the Tektronix MTG300), many ASI add-on cards for PCs such as the DekTec DTA-100 will include software to play out a transport stream. Often, transport stream playout systems will also function as transport stream recorders, allowing you to record a transport stream from an ASI connection. This can be invaluable for testing.
Standalone modulators such as the Miteq DVM-100 cable modulator will take a transport stream from an ASI or Ethernet connection and convert it into a signal that can be fed directly into your STB. Some modulators for satellite systems may require a separate upconverter to convert the frequency of the signal into the correct range for the STB to receive it - all satellite STBs receive signals in the L-band range (approximately 950 MHz to 1450 MHz), even if the frequency arriving at the dish is higher. If you are using a cable or terrestrial STB, or a satellite modulator such as the Tandberg SM6615 that has L-band output, then you will not need this.
It is possible to buy modulator cards for a PC such as the DekTec DTA-107 that let a PC handle all of these tasks, and depending on what you need this may be a better solution. It's more compact than standalone equipment, and may be considerably cheaper. The downside is that you may need to make sure that the card has the software to support playing out a transport stream on a specific frequency with a specific set of modulation parameters. If you are using a modulator card in a PC, then a separate playout system is not necessary. This system is probably the simplest for testing and for carrying to off-site demos, because it all fits into a single PC.
All of this assumes that you actually have a transport stream, of course. If you don't, then our tutorial on generating a transport stream will give you the information that you need to build one.