Title: P2P Digital TV Recorder
1P2P Digital TV Recorder
- Supervisor Professor Michael R. Lyu
- Prepared by Ho Tsz Wing, Andy
- Lau Wai Shun, Jack
2Content
- 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
3Project background
- Watching TV is a major entertainment
- People often miss their favorite programs
- People need to schedule the recording of the
programs
4Project 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
5Summary of Work in Sem1
P2P Digital TV Recorder
- 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
6Improvement 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
7Improvement Work in Sem2
Problem
Cause
Solution
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
- Peers cannot reject the recording tasks gt
Inflexible
8Improvement Work in Sem2
Problem
Cause
Solution
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
Replication methods take too much time and CPU
resource
9Improvement Work - 1
- Decentralized searching algorithm and buddy list
- Decentralized recording algorithm and bonus system
10Component of Server
Xml.asp
Database
Login/Logout Application
User Search Application
11 Login / Logout / User Search
Offline
Login message
Online
Offline
Online
Buddy Information
Online
Online
12Task of Client Side
- 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
13Download Topology Napster (Sem1)
N2
N1
N3
Client
N4
Server
Owner_at_
Lookup(TVB News)
KeyTVB News
N8
N9
N7
N6
Simple, but O(N) states and a single point of
failure
14Download Topology Gnutella (Sem 2)
N2
N1
Lookup(TVB News)
N3
Client
N4
Owner_at_
KeyTVB News
N6
N8
N7
N9
Robust, but in the worst case O(N) messages per
lookup
15P2P Digital TV Recorder Protocol
Type
ID
Port / Channel
Download Streaming / Recording Message
IP
Program Title
TTL / Hop
16Performance Enhancement
Forward the message to other peers
All pass
Check IP Field
Check Message ID
Check File Exist
Check TTL
17Scheduling of Recording Task
Centralized
Decentralized
- 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
- 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.
18Scheduling Policies
19Scheduling Policies
20Bonus System
10
10
Free Rider
Normal User
unable to decide record or not
able to decide record or not
21Improvement Work - 2
- Video-On-Demand (VoD) streaming
22Why use VoD streaming?
- Download
- 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
23Tools used in developing the streaming application
DirectShow Library
GraphEdit
Windows Media Encoder SDK
24DirectShow 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.
25DirectShow Filters and Filter Graphs
- DirectShow Filters
- 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
26DirectShow Architecture
27Writing 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.
28Approaches in Graph Building
29Reasons 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
30Number of days of TV programmes that can be
recorded with a given hard disk size
22.09
20.63
1.31
1.25
31GraphEdit
- The filter graph built by our application
32Uses 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
33Experiment Result
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
34Experiment Result
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
35Windows 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
36Steps to create an encoding application
37Encoding 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
38Uses 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//localhost8080 - It then connects to the requesting peer and the
peer will view the file at the specified address
39 Streaming Architecture
Streaming request
Connection established
Streaming request
40Difficulties 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).
41Difficulties 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
42Further 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//localhost8080 - 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
43Further 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
44Conclusion
- 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.
45Thank You !