P2P Digital TV Recorder Supervisor: Professor Michael R. Lyu Prepared by: Ho Tsz Wing, Andy Lau Wai Shun, Jack
Content Project background and objectives Summary of Work in Semester 1 Improvements in Semester 2 Decentralized searching algorithm and buddy list Decentralized recording algorithm and bonus system Streaming and video format conversion Difficulties and Solution Further Improvements Conclusion
Project background Watching TV is a major entertainment People often miss their favorite programs People need to schedule the recording of the programs
Project objectives Allow people to view back a previous TV program without doing scheduling themselves Let the users view the program on demand Increase the availability of the TV programs Achieve load balancing among the participating peers
Summary of Work in Sem1 P2P Digital TV Recorder Program Core Download the video file from other peers No Buddy List All peers’ information is stored in a centralized server A centralized scheduling algorithm Peers unable to reject the recording task Using a complex algorithm to achieve high availability Performance enhancement Whole file replication Erasure code replication Research Results In most cases, erasure code replication performs better than whole file replication When the peer availability attains a certain level, the performance of the whole file replication close to erasure code replication
Improvement Work in Sem2 Problem Cause Solution Queries needed to handle increase dramatically with the increase of the number of peers Use buddy list system Try to keep as less as information in the sever Performance of the server become the bottleneck of the system
Improvement Work in Sem2 Problem Cause Solution Peers cannot reject the recording tasks => Inflexible A centralized server will assign the recording task to the online peer without considering their contribution to the system A distributed scheduling algorithm Implement a bonus system The user is able to accept or reject the task
Improvement Work in Sem2 Problem Cause Solution Replication methods take too much time and CPU resource As the original video in dvr-ms format is too large, no matter which replication we use, much time is consumed. Implement a streaming server Real time encoding is fast enough
Improvement Work - 1 Decentralized searching algorithm and buddy list Decentralized recording algorithm and bonus system
Component of Server Xml.asp Database Login/Logout Application User Search Application
Login / Logout / User Search Offline B Login message A Directory Server C Online Offline Online Buddy Information E D Online Online
Task of Client Side Client Application Download Streaming Recording Download (Implemented) Basic function Send the video file to the requested peer Download Client Application Streaming Encoding to wmv Preview function Recording Scheduling among peers Bonus system Streaming Recording
Download Topology – Napster (Sem1) Client N4 Owner@ Server Lookup(“TVB News”) Key=“TVB News” N8 N9 N7 N6 Simple, but O(N) states and a single point of failure
Download Topology – Gnutella (Sem 2) Lookup(“TVB News”) N3 Client Owner@ N4 Key=“TVB News” N6 N8 N7 N9 Robust, but in the worst case O(N) messages per lookup
P2P Digital TV Recorder Protocol Type ID Port / Channel Download & Streaming / Recording Message IP Program Title TTL / Hop
Performance Enhancement Forward the message to other peers All pass Check IP Field Check Message ID Check File Exist Check TTL
Scheduling of Recording Task Centralized Decentralized Server will schedule the recording of all program in the morning Send out the recording request to 2 peers randomly before the program starts Peers who received the recording request cannot reject it. Peers initialize the recording task when the program starts Peers are able to determine recording or not if the bonus points of the peers attain a particular level Peers forward the recording message to one of its buddies
Scheduling Policies
Scheduling Policies
unable to decide record or not Bonus System 10 10+ Free Rider Normal User unable to decide record or not able to decide record or not
Video-On-Demand (VoD) streaming Improvement Work - 2 Video-On-Demand (VoD) streaming
Why use VoD streaming? Download VoD streaming the user needs to wait for a long time errors may occur in the downloading process VoD streaming save the user a lot of time and storage space can be used as a preview function
Tools used in developing the streaming application DirectShow Library GraphEdit Windows Media Encoder SDK
a media-streaming architecture for the Microsoft Windows® platform DirectShow Library a media-streaming architecture for the Microsoft Windows® platform provides for high-quality capture and playback of multimedia streams Example uses: file players video editing applications file format converters etc.
DirectShow Filters and Filter Graphs receive multimedia streams as input and produce output A source filter introduces data into the graph. A transform filter takes an input stream, processes the data, and creates an output stream. Renderer filters receive data and present it to the user Filter Graphs A set of connected filters controlled by a high-level component called the Filter Graph Manager
DirectShow Architecture
Writing a DirectShow Application The application creates an instance of the Filter Graph Manager. uses the Filter Graph Manager to build a filter graph. uses the Filter Graph Manager to control the filter graph and stream data through the filters.
Approaches in Graph Building Method Used The Filter Graph Manager builds the entire graph RenderFile The Filter Graph Manager builds part of the graph Render The application builds the entire graph AddFilter, Connect or ConnectDirect
Reasons for using DirectShow Library Windows MCE records TV programs in dvr-ms format Dvr-ms files are not efficient for storage (1hr TV program recorded in good quality requires about 1668MB) Dvr-ms files cannot be streamed over the internet DirectShow is used to convert dvr-ms file to wmv file that can be used for streaming The file size of 1 hr wmv file is only 101MB if the bit rate is 225kbps
Number of days of TV programmes that can be recorded with a given hard disk size 22.09 20.63 1.31 1.25
GraphEdit The filter graph built by our application
Uses of DirectShow Library Steps to convert dvr-ms file to wmv file using DirectShow Library: start once Windows MCE has finished recording a particular TV program create the filter graph and render the dvr-ms file original dvr-ms file will be deleted in the case that the storage space is not sufficient for new recording
Experiment Result Bit Rate (Kbps) Video Size File Size (KB) Conversion Time (s) 218 320 x 240 1,711 58 441 3,317 60 666 4,928 62 480 x 360 1,731 115 3,413 116 5,069 125 The dvr-ms file used in this experiment has a length of 60s, a file size of 27,399KB and is recorded in good quality
Experiment Result Bit Rate (Kbps) Video Size File Size (KB) Conversion Time (s) 666 320 x 240 4,928 62 480 x 360 5,069 125 640 x 480 5,170 209 800 x 600 5,194 327 The dvr-ms file used in this experiment has a length of 60s, a file size of 27,399KB and is recorded in good quality
Windows Media Encoder SDK used to compress live or stored audio and video content into Windows Media files or streams create multimedia productions from devices attached to their computers
Steps to create an encoding application
Encoding with CBR and VBR Constant Bit Rate (CBR) Encoding bit rate and size of the content are known before encoding for content that varies in complexity, the encoding quality is not constant Variable Bit Rate (VBR) Encoding it compensates for changes in the complexity of the content bit rate and size of the content are not known before the encoding
Uses of Windows Media Encoder SDK When the client receives a streaming request, it will create an encoder object, encode the appropriate file using CBR encoding and broadcast it at the address http://localhost:8080 It then connects to the requesting peer and the peer will view the file at the specified address
Streaming Architecture Directory Server B E C D A Streaming Host Streaming request Connection established Streaming request
Difficulties and Solutions Difficulty Dvr-ms file (the default file format for the recorded TV in Windows MCE) cannot be streamed over the Internet Cause Windows Media Encoder 9 Series SDK does not support the encoding and broadcasting of dvr-ms file Solution We have to use DirectShow Library to convert the dvr-ms file to a format that is compatible with Windows Media Encoder 9 Series SDK (i.e. wmv file).
Difficulties and Solutions Difficulty The wmv file resulted from the conversion of dvr-ms file by DirectShow Library has sound only but no video. Cause The default transform filter chosen by the RenderFile method (InterVideo Video Decoder) cannot decode MPEG-2 stream to MPEG-1 stream Solution So we have chosen to use the GPL MPEG-1/2 Decoder in our filter graph to solve this problem
It is possible to have real time streaming in the following ways: Further improvement It is possible to have real time streaming in the following ways: First, we can start the file conversion as soon as Windows MCE starts to record the TV program Next, we can use Windows Media Encoder SDK to encode the wmv file and broadcast it at http://localhost:8080 Finally, the client can connect to the above address to get the video content instantly However, there is one drawback as doing recording and converting at the same time takes up a lot of CPU time
Further improvement It is also possible to use p2p technique to stream the file It can reduce the network bottleneck at the video server It can provide a fault tolerant Video-on-Demand streaming it raises technical, performance, quality, business, and legal issues
Conclusion We have implemented our application in a decentralized ways using a buddy list system to enhance the performance. We have introduced a distributed scheduling algorithm and a bonus system to enhance the availability of the TV programmes. We have also developed a streaming server to reduce the storage requirement and enabled the user to preview the TV programmes.
Thank You !