Diploma Thesis
Total Page:16
File Type:pdf, Size:1020Kb
DIPLOMA THESIS TITLE: “Linux-Box: DVB and VoD Streaming Over Local Area Networks” DEGREE: “Enginyeria Tècnica de Telecomunicació” AUTHORS: Juan José Colmena Pablos,“Comunication Systems” Óscar Molina Fernández,“Computer Networks” Director: Gregorio Procesi Tutors: Michele Pagano David Rincon Rivera DATE: May 14, 2007 Títol: “Linux-Box: DVB and VoD Streaming Over Local Area Networks” Autor: Juan José Colmena Pablos Óscar Molina Fernàndez Director: Gregorio Procesi Tutors: Michele Pagano David Rincon Rivera Data: 14 de Maig de 2007 Resum Aquest treball tracta sobre un projecte comú anomenat Linux-Box portat a terme per diferents persones al departament de Telecomunicacions (IET) de la Universitat de Pisa. Linux-Box és un sistema dotat amb targetes TDT (DVB-T) i de televisió per satèl·lit (DVB-S) que permet transmetre aquestes senyals fins a un àmbit domèstic. Més endavant podria ser utilitzat en àmbits privats com les cases de clients o en institucions públiques com escoles, universitats, biblioteques i també seria possible en àmbits empresarials. El projecte està dividit en 4 apartats: 1. Ubuntu 6.06 LTS. Explica perquè s’utilitza Ubuntu en el projecte. A més també s’explica de forma breu que és Linux i les distribucions més utilitzades. 2. Multimedia Network Protocols: s’expliquen els diferents protocols desde la capa de xarxa fins la capa d’aplicació que s’utilitzen en el projecte Linux-Box. Aquests protocols son utilitzats tant en streaming, com en anunciació, unicast/multicast, encapsulat de vídeo i codecs. Els diversos temes tractats aquí es fan amb el propòsit de comparar i no només com a recerca teòrica. A la fi es veuen els programes utilitzats en el projecte per analitzar el tràfic de la xarxa. 3. Linux-Box: s’explica el funcionament i els objectius globals del projecte. Es dedica un sub-apartat a “VideoLan - VLC” part important a nivell de sofware. Més endavant es parla de les característiques de la Linux-Box de forma acurada: streaming de VoD i senyals de TV i s’analitzen els problemes coneguts i les seves solucions proposades. A la fi s’enumeren els llenguatges de programació utilitzats al projecte i en quina part s’utilitzen. Observarem que és una aplicació on diversos llenguatges de programació estan contínuament solapats. 4. Developed Part: es posa en pràctica la teoria estudiada a la resta del treball. Està dividida en 4 seccions: Desenvolupar una aplicació en codi C per convertir la llista de Canals (tan terrestre com de satèl·lit) en format XML. Una secció dedicada al streaming de Canals de TV a la pàgina web principal. Un anàlisis profund dels paquets creats per la Linux-Box i la seva activitat a la xarxa. Finalment s’analitzen els diferents scripts i les seves configuracions. Alguns són útils per a un futur desenvolupament i d’altres s’utilitzen en seccions prèvies. 5. Conclusions: conté les conclusions i línies futures. El projecte compta amb diverses opcions que encara poden ser implementades i estudiades. Aquí exposem les nostres interpretacions i possibles línies futures d’estudi. Title: “Linux-Box: DVB and VoD Streaming Over Local Area Networks” Author: Juan José Colmena Pablos Oscar Molina Fernàndez Director: Gregorio Procesi Tutors: Michele Pagano David Rincon Rivera Date: May 14, 2007 Overview This work is about a common project carried on by different people in the IET department of Pisa University, called Linux-Box. Linux-Box is a device provided with DTT (DVB-T) and satellite television (DVB-S) sources that permits to transmit these signal in a domestic area. Further on will be reliable in private homes and public places such as schools, universities, libraries and environments like enterprises or offices. The work is divided in the following sections: 1. Ubuntu 6.06 LTS: In this section is explained why is used Ubuntu in the project. Also it is explained what is Linux and their most famous distributions. 2. Multimedia Network Protocols: in this section diverse protocols are explained starting from the network layer until the application layer that appear in the Linux-Box project related with streaming, announcement, Unicast/Multicast, video encapsulation and codecs. The diverse topics will be treated with a spirit of comparison and not only as a theoretical research. At the end there will be treated each other programs involved in this work to analyze the network traffics. 3. Linux-Box: In this section is explained what is their operation way and the objectives of the global project. It is dedicated a sub-section to the main part of the working mode at software level: “VideoLan-VLC”. Later on, the Linux-Box characteristics are treated deeply: streaming of VoD and TV signals, known problems analysis and possible solutions. To finish, programming languages involved in the global thesis are enumerated and put in the global situation. It is interesting to see that it is a truly distributed application where diverse programming languages are constantly interlaced. 4. Developed Part: Here the theory studied in the rest of the research is put in practice. It is divided in four sub-sections: Developing an application in C code to convert channels lists (as much as Terrestrial as Satellite) to XML format. Section dedicated to the TV channels streaming in the main Web Page. Deep analysis of the created packets by the Linux-Box and their activity in the net. Finally different scripts with different configurations are tested. Some of them are useful for future developments and others used in the previous sub-section. 5. Conclusions: This section contains the conclusions and the future lines. The project has many options that can be implemented and studied. Here are explained our interpretations and future possibilities. Index 1 INTRODUCTION................................................................................................ 7 PART 1: THEORETICAL RESEARCH ............................................................ 10 1. UBUNTU 6.06 LTS .................................................................................. 11 1.1. Linux..........................................................................................................................11 1.1.1. What is Linux?................................................................................................... 11 1.1.2. Why Linux?........................................................................................................ 11 1.2. Distributions............................................................................................................. 12 1.2.1. Red Hat ............................................................................................................. 12 1.2.2. Suse .................................................................................................................. 13 1.2.3. Fedora ............................................................................................................... 13 1.2.4. Mandrake .......................................................................................................... 13 1.2.5. Ubuntu............................................................................................................... 13 1.2.5.1. Why Ubuntu 6.06 LTS................................................................................... 14 1.3. Environments ........................................................................................................... 14 1.3.1. Gnome............................................................................................................... 14 1.3.2. KDE ................................................................................................................... 15 1.3.3. Others (3D Environments)................................................................................. 15 2. MULTIMEDIA NETWORK & VIDEO PROTOCOLS................................ 16 2.1. IP................................................................................................................................ 17 2.2. TCP vs. UDP ............................................................................................................. 19 2.3. Headers and efficiency............................................................................................ 22 2.4. RTP (Real-time Transport Protocol)....................................................................... 25 2.4.1. What’s RTP? .....................................................................................................25 2.4.2. Characteristics................................................................................................... 25 2.4.3. Header Format .................................................................................................. 26 2.4.4. How does it work?............................................................................................. 27 2.5. RTSP (Real Time Streaming Protocol)................................................................... 27 2.5.1. What is RTSP?.................................................................................................. 27 2.5.2. Characteristics................................................................................................... 28 2.5.3. Format ............................................................................................................... 28 2.6. Announcement and Session Description Protocols............................................ 30 2.6.1. SAP ..................................................................................................................