Digital Television via IP Multicast Group 15M Lee Howes (Group Leader) James Robinson (Group Secretary) Ashley Brown Jay Cornwall Simon Fothergill Lyndon Leggate Project Summary • Allow networked PCs in the Department of Computing to receive and display television programmes. • Take Television channels from a Digital Terrestrial Television (DVB-T) reception card. DVB is a registered trademark of the DVB Project. It is used with kind permission of the DVB Project and does not indicate full compliance with the relevant standards. Background Information Ashley Brown Lee Howes MPEG-2 Transport Streams • Consists of a number of sub-streams, each identified by a number (its PID). • Can contain audio, video and other data for a single programme, synchronised to one time base (a Single Programme TS or SPTS). • Transport Streams can be multiplexed together to form a Multi-Programme TS (or MPTS). • Each Transport Stream contains information about the PIDs and types of each audio, video or data stream. Digital Television (DVB) • Digital Terrestrial Television in the UK follows the DVB-T standard. • Multiple channels are broadcast on a particular frequency, in the form of an MPEG-2 Transport Stream. • The entire Transport Stream is processed by the receiver and the required channel extracted. • Additional information is included in the Transport Stream to provide channel names, subtitles, digital teletext etc. Only one copy of the data is sent to the next level down in the tree, reducing network traffic IP Multicast Data is only sent where it is required Existing Solutions • VideoLAN – Streaming of DVB channels, MPEG files, MPEG encoder card feeds. • DigiTV – Streaming of DVB channels. • Digiguide – Provides 2 weeks listings and scheduled reminders on a subscription basis. Co-operates with other programmes to allow scheduled recordings. Our Solution Lee Howes Our Feature List • Distribution of Digital Terrestrial TV channels over IP multicast. • Selection of channels to broadcast. • Multiple TV cards. • Client Programme Guide. • Accumulation of usage statistics. • Programme recording and pausing of live TV • Programme reminders. Structure of Proposed Solution Transmission (Slave) Server Config Hardware Interface DVB Mux Other Sources DVB Main Transmission Server Client Software MPEG Demux/ Display Main UI Listings Display Master Server Master Configuration Listings Source Stats Database Listings Server Statistics Listings Data Transmission Server Ashley Brown TX Server – Architecture HTTP, STORED FILES NETWORK TRANSMISSION SERVER DVB Hardware Interface • The server uses a Java wrapper around the C LinuxTV API for DVB devices. • The API allows the card to be tuned and MPEG2 data (in particular a full DVB Multiplexed Transport Stream) to be read from a device. • Support for hardware acceleration of MPEG-2 TS demultiplexing has been included, although is not used at present. • A similar interface could be provided under Windows. Configuration James Robinson Configuration • What configuration? – Schedule – Permissions – etc. • Required for various modules • Publish on web server – Can use Apache authentication and SSL security • XML Files • Configuration tool – Creates main configuration files – Web based Configuration - Demo Listings Server Lee Howes Listings Server XMLTV XML Source XMLTV XML Parser Schedule Tree Internal Structure System Config. XML Source docTV XML Parser XML Source Channel Selection Web Server MPEG Decoder Jay Cornwall MPEG Decoder • Java Media Framework (JMF) provides audio/visual playback support. • MPEG 2 video decoding not supported. • Lack of documentation and examples. • A different approach to audio/visual decoding was taken. MPEG Decoder Java Client Decoding Component (Java AWT widget) Video Decoder Audio Decoder LibMPEG2 (native library) FFMPEG (native library) MPEG Decoder • 720 x 576 x 32 bit: ~30% load on an Athlon XP-M 2400+. • Supports MPEG 2 video and MPEG 1 / 2 audio. • Potential for further codec support. • But a loss of portability. • Restrictions on native access prevent aspect ratio correction under Linux. Client Lyndon Leggate Client • Features – Watch live TV (if available & permitted) – Pause live feeds & resume from that point – Record programmes (scheduled or live) – Playback pre-recorded programmes – Programme reminders & auto-tune – View full TV programme listings – Usage statistics Statistics Simon Fothergill Statistics • • • • General reasons and motivation for statistics Within this project: Simply, but extensibly When’s popular? What’s popular? Client Stats Manager Stats Collector HTTP CGI PHP SQL Stats Database PHP SQL Putting it Together Lee Howes Integration and Testing • Tested interfaces between interacting components • Tested and integrated in stages as components developed (using VideoLAN Client initially to test the server) • Transmission test to VLC in mid November Integration and Testing 2 • Multiple DVB cards • General tests of listings such as behaviour with bad date formats • Long distance unicast radio feed to home ADSL from Transmission Server A Few Problems… • Initially IP multicast appeared not to work on all switches. • A change of multicast address range solved this. • Towards the end of the project, some faulty code resulted in the server saturating its connection. • A faulty switch flooded the network with traffic, upsetting other services. Evaluation • A good start for further progress • System is flexible in design allowing for future expansion • Substantial problems with Java/Native interface for video could be avoided with a purely native client Shortcomings • Control channel not encrypted, anyone could refresh server. • Java event thread overcrowding causing lack of GUI responsiveness. • Current reliance on XML TV – radiotimes.com changed website format shortly before the presentation. General Future Improvements • • • • • • DVB streaming under Windows Digital Radio streaming (DAB) Streaming from an MPEG encoder Server time-shifting of channels More configuration options Fast, Native client, possibly using GTK to keep cross platform • Full use of JMF to make Java client work efficiently – not a problem in Windows, more of an issue in Linux Feature Comparison Matrix (Server) V id e o L A N D igiT V docTV OS DVB UDP M PEG E n co d er S to red M PEG PS TS A u d io H TTP S o u rces Y es No Y es No No No Y es No No Y es Y es N ot Y et 1 N ot Y et 2 Y es N ot Y et 2 No Y es No Y es 3 Y es No No Y es 3 Y es No No N early 4 Y es No No Y es 3 Y es Y es Y es Y es 3 Y es Y es Y es Y es 3 Y es Y es Y es