Changes between Version 12 and Version 13 of Other/Summer/2015/hVideo


Ignore:
Timestamp:
Aug 18, 2015, 8:36:00 PM (9 years ago)
Author:
kushoza94
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Other/Summer/2015/hVideo

    v12 v13  
    66
    77Live-streaming video from a device to the Internet in an efficient manner can be a tricky task. The concept of video-streaming itself is simple; the device records whatever is going on and then streams the video file information live to a video-hosting website. The problem arises with the nature of internet/data/WiFi connections. Having an unstable connection will result in a low, partially corrupted, and blurry video file on the streaming server. The original video file can always be uploaded later on to wherever the video was streamed to, but just simply re-uploading the same video file is a waste of bandwidth and time. Bits and pieces of the video file were already sent to the streaming server during the live-streaming process; why not use the information previously sent to figure out and upload whatever is missing? That's the goal and name of our project: Dynamic Video Encoding.
    8 
    9 == What We've Accomplished So Far ==
    10 
    11 * Attempt ORBIT tutorials.
    12 * Establish WiFi connectivity between two nodes in the ORBIT network.
    13 * Simulate video corruption using a network emulator (netem) by transmitting videos from one node to another with varying degrees of packet loss.
    14 * Establish a working knowledge of Ruby.
    158
    169== Goals ==
     
    9386[[Image(Completebandwidth.PNG)]]
    9487
    95 By analyzing both the camera and client bandwidth profiles, we can hopefully create a better stream quality by dynamically adapting to the network conditions and improving the quality where possible.
     88By analyzing both the camera and client bandwidth profiles, we can hopefully create a better stream quality by dynamically adapting to the network conditions and improving the quality where possible.
     89
     90=== Video Encoding Algorithms ===
     91
     921. Throughput Estimation Method
     93* Averages past bandwidth estimates and creates a smoothed throughput estimation curve
     94[[Image(ThroughputEstimation.png)]]
     95* Standard deviation determined by recent deviation from expected throughput
     96[[Image(ThroughputEstimation2.png)]]
     97
     982. DASH Adaptation Algorithm
     99* The algorithm measures average download time of each segments
     100* It then builds an adaptation decision based on this download time and the average bitrate of the whole video
     101[[Image(DashAlgorithm.png)]]
     102[[Image(DashAlgorithm2.png)]]
     103* The function maxbw(s_i) returns the max bandwidth for that specific segment i
    96104
    97105== People ==