DIY IPTV system using VideoLAN
VideoLAN is a project that was started by students at the École Centrale Paris in France. The software was first released under the open source GNU General Public License and is now continuously being developed by contributors worldwide. It originally consisted of two programs – the VideoLAN Client (VLC) and VideoLAN Server (VLS). They were later merged into one program, the VLC Media Player.
VLC can be used to do the following applications:
- Play back CD, DVD or audio/ video file from the network, hard disk and other storage media.
- Recording of audio and video materials into DVD or other storage media using different file formats like WMV, AVI, MPEG-2, MP4, MOV, DivX, VOB and others.
- Transcoding audio/ video material from one file format into another. (ex. Converting DVD VOB file from DVD to AVI file).
- Streaming audio and video materials into a network for point-to-point application using UDP unicast transport protocol. (ex. Videoconferencing between two sites).
- Streaming audio and video materials into a network for point-to-multipoint application using UDP multicast transport protocol. (ex. IPTV system)
- Video-on-Demand (VOD) application across a network using the HTTP transfer protocol.
We will talk about one of the applications that we did for our office, which is a small IPTV system. Our signal sources come from satellite TV, terrestrial broadcast and a CCTV camera. These signals are streamed from video servers that are connected to our network and are received and decoded in individual workstations or mobile laptops.
As seen from the diagram, each signal source has a corresponding video server. To receive satellite signal, we used a DVB-S PCI card installed in a video server. For the terrestrial broadcast signal, we connected the audio/video output of a TV tuner to the A/V inputs of a video graphics PCI card installed in another video server. The same was done for the CCTV camera which video signal was fed to the video input of a video graphics card in the third video server. All the ethernet ports of the video servers are connected to the same network where the client workstations are also connected.
After connecting all the signal sources to the video servers and the network, the next step is to stream each signal to the network. From VLC’s File menu, select Open Capture Device and then check the Stream/Save and Settings buttons to open the Stream Output window. In this window, click Play locally (if you want to view what you are streaming) and the UDP button. In the IP address field beside the UDP button, input 22.214.171.124, which belong to the range of IP addresses designated for multicast protocol. Do the same procedure for the other sources with the multicast IP address progressing - 126.96.36.199, 188.8.131.52 and so on.
You can select what particular codec and bitrate you prefer in streaming a program. This will also depend on available bandwidth that your network can handle. Mp4v requires lesser bandwidth than mp2v and is recommended for small capacity networks. You can also use sources other than video graphics or capture devices. If your source is from the video server’s hard disc, select Open File and if its from the DVD drive, select Open Disc.
To view the streamed program in a client PC, you should also have the same VLC media player installed in the PC. From the File menu, select Open Network Stream and then check the UDP/RTP Multicast button. In the IP field next to this button, input the IP address of the source program you want to watch (ex. input 184.108.40.206 to watch the program streamed from that IP address). To view the next program stream in the same client PC, input 220.127.116.11 and so on. If you want to create a playlist or a channel list of the available program streams in your IPTV system, select Playlist from the View menu to open the Playlist window where you will see all the opened program streams. Select Save Playlist in the Manage menu and create a file name for your playlist. The next time you open VLC, you can access the saved playlist either from the File menu or the View menu. If you have a mobile laptop with VLC installed, you can also watch the streamed programs via a wi-fi access point that is connected to the network.
What was discussed in this article is a very basic IPTV system created for the home or small office application. VLC media player can be also used for bigger systems running across a WAN network. A Video-on-Demand (VOD) service can also be added by using a SAP server and using HTTP instead of UDP because a return request from the client needs to be sent to the SAP server for selection of video content to be viewed. Portable mobile devices (with the VLC media player installed) can also be used for mobile TV applications. Even commercially available encoders (with IP output) and decoders (with IP front-end) can be mixed and matched with VLC-equipped PCs in the same IPTV system. There are limitless configurations that can be created depending on the requirement and availability of resources. You can check on tips on the design and implementation of these systems at the VideoLAN Forum.