Scalable live video streaming to cooperative clients using time shifting and video patching
Sponsored Links
This presentation is the property of its rightful owner.
1 / 25

Scalable Live Video Streaming to Cooperative Clients Using Time Shifting and Video Patching PowerPoint PPT Presentation

  • Uploaded on
  • Presentation posted in: General

Scalable Live Video Streaming to Cooperative Clients Using Time Shifting and Video Patching. Meng Guo and Mostafa H. Ammar INFOCOM 2004. Introduction (1/2). Overlay multicast A client forwards the content it is receiving, and serves other client ’ s request as a server. Problems

Download Presentation

Scalable Live Video Streaming to Cooperative Clients Using Time Shifting and Video Patching

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

Scalable Live Video Streaming to Cooperative Clients Using Time Shifting and Video Patching

Meng Guo and Mostafa H. Ammar


Introduction (1/2)

  • Overlay multicast

    • A client forwards the content it is receiving, and serves other client’s request as a server.

  • Problems

    • Clients would leave or fail

    • Rejoin latency implies data loss

  • CoopNet

    • Multiple Description Code (MDC)

    • Multicast different portions of MDC streams over several overlay multicast trees

    • Disadvantage

      • Video quality fluctuation (client leave & join)

Introduction (2/2)

  • Goals

    • Continuous streaming service

    • Single description code

    • Clients always receive full quality video streams

  • Solutions

    • Provide time shifting streams at the server

    • Using video patching to allow a client to catch up with the progress of the live video program

    • A buffering scheme that allows the clients to store the video packets, and to playout when needed

Basic operations

  • When a client first joins the multicast group, it always joins a multicast tree of the original stream.

    • If the server has free video channel available, the client connects to the server directly.

    • Otherwise, the client joins the tree by connecting to a client already in the tree who has both enough available bandwidth and the shortest overlay path to the server.

  • Use packet loss rate to detect service disconnection

  • Node rejoin delay rc

    • The time interval between the moment when the client c is disconnected and the moment when the client is reconnected.


  • Viewing delay

    • (the playback time of the original stream) – (the playback time of the video stream that the client is watching)

  • Starving period

    • The time interval that the client is not receiving any video

  • Freezing period

    • The time period when the client side play out is temporarily stopped.




Received stream

Viewing delay








Infinite shifting

playback time


Starving period

= Freezing period


In a live streaming service, is it essential to receive the missed part of the video stream?

Client playout











Video patching in live streaming

playback time



Client receive rate

t1+r1: rejoin the original stream

t1+Δ1: rejoin the patching stream

t1+d: receive the patching stream



Continuous video streaming

  • There still some periods that the client’s playback is halted.

  • Solution

    • Initial access delay

  • Longer access latency can result in smoother video reception.

Continuous video streaming with initial delay

The example of system operations (1/2)

The example of system operations (2/2)

Design details

  • Time shifting video server

  • Channel allocation

  • Patching stream selection

  • Node join algorithm

  • Node leave

Video server design

1:1 channel allocation

Static multiplex channel allocation

Dynamic multiplexing with channel merging

  • m: the number of live channels.

  • Based on the lifetime:

    • A video program of length T

    • At time t0, the lifetime of the original stream is T–t0.

    • The lifetime for the patch stream is its time shifting value, i.e., the life time of Sk is d×k.

  • The number of reserved patching channels

  • The number of allocated video channels

  • The number of patching channels |P| is monotonically increasing as the video program proceeds.

Patching stream selection

  • Let a client disconnects from the multicast group at td, and it sends a node rejoin request to the server. When the server receives the rejoin requests, the live video playback time is t1.

  • The estimated connection set up time = t1–td.

  • The stream si is selected, while i is caculated by the formula below:

Because of the server->client latency

Node join algorithm

  • A “well shaped” overlay multicast tree should be wide and short.

  • Level Join

    • A newly arriving client joins the node whose overlay path distance to the server is shortest.

  • Bandwidth First

    • Push the client with larger bandwidth up to the higher level of the tree.

    • Also consider the Level Join algorithm.

Failed node discovery process

Simulation environment

  • Bandwidth capacity of the end hosts

    • Barrow bandwidth: 1.5 Mbps, 70%

    • Medium bandwidth: 10 Mbps, 20%

    • High bandwidth: 100 Mbps, 10%

  • The time shifting value = 4 seconds.

Video patching on client video reception


Playout the video data received during the previous patching

Disconnect: consume the data stored in the buffer

Video patching on viewing performance

A larger life time implies shorter delay and less buffer usage.

Influence of video patching on tree structure

high bw with patching

high bw no patching

stretch = delay

tree height

Average stretch

Patching increases the level of the multicast tree.

(reduce the number of live channels -> reduce the degree of root)

Video server channel utilization

Client requests queuing delay

  • Login