Child pages
  • Delivering live video streams to YouTube over IPv6

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • More scalable. YouTube can distribute video much better than any locally run system. In our case we had a limit of 1GB/s, so anything over a few hundred visitors would mean the video stream got jerky and dropped out. This used to happen when someone posted a link to the stream on a popular forum such as GeenStijl.nl. 
  • Multiple bit rates. We used to do transcoding into various lower bit rate streams, so that users on slow connections (mobile phones) could also watch it. This required an expensive plugin, which needed careful configuration, and which put a significant CPU burden on the streaming server. Google does this now, so no plugin needed, no CPU load, and less complex configuration.
  • Youtube works on much more devices. Many mobile devices have dedicated apps for YouTube, which makes sure it plays well on those devices.
  • Less support issues for end users. YouTube is the defacto standard for viewing video content on the Internet, so end users will have few issues with it.
  • Users can post comments. While it is possible for users to comment on the stream, we had to disable it because eventually the comments filled up with trolling messages.
  • Stream has a recording backlog of 4 hours. You can actually skip back 4 hours, which is handy if you missed some action (smile)
  • Production side is IPv6-only. Both the camera and the relaying system do not need to be publicly available. The camera just needs to communicate with the relaying system, which in turn needs to talk to YouTube. Since YouTube is dual stack, this means that both the camera and the relaying system can be purely IPv6:

Overview

Gliffy Diagram
namewebcam live setup

 

Configuration of the camera

The camera is an Axis Q1755, which is mounted outside our office on the 4th floor of Singel 468 in Amsterdam. 

...

  • Create a dedicated user on the Axis (System Options -> Security -> Users) that has only viewer permissions, and assign a password to it. Since it is a machine, you can use pwgen -s 64 1.
  • Make sure the RTSP server is enabled (System Options -> Network -> TCP/IP -> Advanced). The default port is 554.
  • Audio setting (Video & Audio -> Audio Settings): Half-duplex, AAC encoding, 16 KHz, 64 kbit/s.
  • Enable audio (Video & Audio -> Video Stream -> Audio). This sounds obvious, but if you deselect this, Google will report "NO DATA".

Configuration of the streaming server

The server is a VMware VM called coppi.terena.org, which runs Ubuntu 14.04 LTS and is located in the SURFnet datacenter in Amsterdam.

...