P2P FUSION DEV. CONFERENCE 2008 Ali Abbas1 Video Processing Tools Participants: Delft University of Technology 13 th Nov 2008
P2P FUSION DEV. CONFERENCE 2008 Outline Video on Demand (VoD) Live streaming Conclusion Future Work Ali Abbas213 th Nov 2008
P2P FUSION DEV. CONFERENCE th Nov 2008Ali Abbas3 Video processing 1: multirate VoD (1) Problem: –Single bitrate –Lower than needed –Higher than the download engine Solution: –Download the video at multiple rates –Always download the lowest quality –Switch to a lower rate/quality when needed –Switch to a higher rate/quality when possible Flicker-free switching presents technical video-encoding difficulty Solution to this: modify encoding such that it is based on time and not on Groups of Pictures (GOPs)
P2P FUSION DEV. CONFERENCE st Sept 2008Dick Epema (WP2)4 Video processing 1: multirate VoD (2) A controller checks the sizes of the buffers of different video qualities and based on these, forwards the video of a certain quality to the video player
P2P FUSION DEV. CONFERENCE 2008 Need all data in order Cannot distribute hashes beforehand.torrent/.tstream contains public key Verify data with signatures, instead of hashes. –Included in the pieces 13 th Nov 2008Ali Abbas5 Live Streaming
P2P FUSION DEV. CONFERENCE th Nov 2008Ali Abbas6 Unlike BT based file download, order does matter for VoD/Live Streaming Real-Time based constraints: Pieces needed in a specific order and on time. Bandwidth constraints: Download speed >= Video speed. BitTorrent Modification
P2P FUSION DEV. CONFERENCE 2008 Conclusion 13 th Nov 2008Ali Abbas7 Respects BT properties: –Easy to modify BT clients –Efficient data exchange –Encourages uploading Respects Streaming properties : –Download video in-order for playback –Codec-agnostic –Video-on-Demand and Live video
P2P FUSION DEV. CONFERENCE Research Work in Progress Explore video clipping by means of partial downloading + local clipping of videos (integrated with multi-rate VoD) 13 th Nov 2008Ali Abbas
P2P FUSION DEV. CONFERENCE th Nov 2008Ali Abbas9 s = Session() Tdef =TorrentDef.load('bla.torrent') d = s.start_download(tdef) Session = Tribler instance TorrentDef = definition of a torrent d = class Download = download in progress API Example: Download
P2P FUSION DEV. CONFERENCE th Nov 2008Ali Abbas10 API: Download Configuration Where is the content saved to? A DownloadStartupConfig instance defines how a torrent is downloaded: –Normal/video-on-demand mode –Up/download rate limits –Where to save data
P2P FUSION DEV. CONFERENCE 2008 Video On Demand 13 th Nov 2008Ali Abbas11 Simple: just a mode of download dscfg = DownloadStartupConfig() dscfg.set_video_start_callback( vod_ready_callback ) d = s.start_download(tdef,dscfg) def vod_ready_callback(d,mimetype,stream,filename): # Called by new thread If filename: videoplayer.play_file(filename) else: videoplayer.play_stream(mimetype,stream)
P2P FUSION DEV. CONFERENCE th Nov 2008Ali Abbas12