Changes between Version 12 and Version 13 of Other/Summer/2015/hVideo
- Timestamp:
- Aug 18, 2015, 8:36:00 PM (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Other/Summer/2015/hVideo
v12 v13 6 6 7 7 Live-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.15 8 16 9 == Goals == … … 93 86 [[Image(Completebandwidth.PNG)]] 94 87 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. 88 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. 89 90 === Video Encoding Algorithms === 91 92 1. 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 98 2. 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 96 104 97 105 == People ==