# Linux Friendly Video Streaming?

For quite some time I just resigned myself to the fact that I’d have to boot into windows or use some other poor method to get my netflix on… then Erich Hoover arrived with a heroic flast to his eye, chin thrust forward and proclaimed, “Do not go gentle into that sudo shutdown -r now! Rage, rage against the needlessness of these cursed reboots!

Here is how to install the Netflix Desktop App on Ubuntu. Open a terminal and run these commands:
sudo apt-get update
sudo apt-get install netflix-desktop

# To stream everywhere, Netflix encodes each movie 120 times

Xboxes, iPads, connected TVs: Netflix streams to a lot of different devices. More than 900, to be precise. And many of them have different screen sizes, bitrate requirements and codec support. That’s why Netflix is doing a whole lot of encoding: Each and every movie is encoded in 120 different versions, according to a behind-the-scenes video recently published by the company.

The download feature, which lets Comcast adopt an iTunes-ish model without the incremental pay-per-view component (for now), is a nice add-on because it lets users watch shows and movies on planes and in other venues that usually don’t have a solid enough broadband connection for streaming.

# Ericsson Adapts to the TV Streaming Challenge

The problem with ABR is that the client device, such as a smartphone or tablet, is in charge of the bandwidth and isn’t fair about how that capacity is allocated. If an iPhone is the first device on the home network to request a video stream, it will typically receive a high bit-rate version — perhaps more than it really needs. Then, when a connected HD television requests a stream, it tends to get the scraps, resulting in a crummy-looking pixel-icious image.

Ericsson AB (Nasdaq: ERIC) is trying to solve the problem by applying Weighted Fair Queuing (WFQ), a data packet scheduling technique, to ABR streams.

From Wikipedia on WFQ:

WFQ is a generalization of fair queuing (FQ). Both in WFQ and FQ, each data flow has a separate FIFO queue. In FQ, with a link data rate of $R$, at any given time the $N$ active data flows (the ones with non-empty queues) are serviced simultaneously, each at an average data rate of $R/N$. Since each data flow has its own queue, an ill-behaved flow (who has sent larger packets or more packets per second than the others since it became active) will only punish itself and not other sessions.

As opposed to FQ, WFQ allows different sessions to have different service shares. If $N$ data flows currently are active, with weights $w_1, w_2 ... w_N,$ data flow number $i$ will achieve an average data rate of

$\frac{Rw_i}{(w_1+w_2+...+w_N)}$

It can be proven [1] that when using a network with WFQ switches and a data flow that is leaky bucket constrained, an end-to-end delay bound can be guaranteed. By regulating the WFQ weights dynamically, WFQ can be utilized for controlling the quality of service, for example to achieve guaranteed data rate.

# Hugo Awards: An apology and explanation

Our editorial team and content monitors almost immediately noticed a flood of livid Twitter messages about the ban and attempted to restore the broadcast. Unfortunately, we were not able to lift the ban before the broadcast ended. We had many unhappy viewers as a result, and for that I am truly sorry.

# How video copyright went insane

This is the story of Cablevision, the companies that followed in its wake, and how we got to the strange place where wasting resources on thousands of tiny antennas made you legal—but where using one antenna broke the law.

# Cross-domain policy file specification

A cross-domain policy file is an XML document that grants a web client—such as Adobe Flash Player, Adobe Reader, etc.—permission to handle data across multiple domains.

# get-flash-videos – A command line program to download flash videos

Download videos from various Flash-based video hosting sites, without having to use the Flash player. Handy for saving videos for watching offline, and means you don’t have to keep upgrading Flash for sites that insist on a newer version of the player.

Update 10/14/2012: Try this site.  The relatively newer github site here.  I think I had problems with the code.google.com version which didn’t seem up to date.

# Linux 3.3: Finally a little good news for bufferbloat

Bufferbloat, as you’ll recall from my 2011 predictions column, is the result of our misguided attempt to protect streaming applications (now 80 percent of Internet packets) by putting large memory buffers in modems, routers, network cards, and applications. These cascading buffers interfere with each other and with the flow control built into TCP from the very beginning, ultimately breaking that flow control, making things far worse than they’d be if all those buffers simply didn’t exist.

Bufferbloat was named by Jim Gettys of Bell Labs, who has become our chief defender against the scourge, attempting to coordinate what’s become a global response to the problem.

What AQM does is monitor the buffer, and signal the end points to slow down any time the buffer starts to fill, either due to that one transfer or competing transfers, by dropping or marking packets.  So the buffer is kept (almost) empty, except when it is handling a burst of traffic. So the steady state latency of the buffer, rather than being the size of the buffer, is set by the size of the bursts in traffic.  The size of the buffer becomes almost irrelevant.