Progressive video download, pseudo streaming and realtime streaming

Last update : January 30, 2013
In the past, audio and video on the Web was primarily a download-and-play technology. You had to first download an entire media file before it could play. Today, streaming technologies allow watching audio and video files almost immediately, while the data is being sent, without having to wait for the whole file to download.

There are three methods of delivering streaming audio and video content over the Web.

The first method uses a standard HTTP server to deliver the audio and video data to a media player. Unlike the download-and-play client, a special streaming client embedded in the webpage starts playing the audio or video while it is downloading, after only a few seconds wait for buffering, the process of collecting the first part of a media file before playing. This streaming method is called progressive media download.

The second method is called pseudostreaming. Pseudostreaming is a protocol that can be installed on regular HTTP servers. It uses a server side script for Flash-to-server communication. The player sends a HTTP request to the server with a start time parameter in the request URL’s query string and the server script responds with the video stream so that its start position corresponds to the requested parameter. This start time parameter is usually named simply start. The video viewer skips the nondownloaded parts of the videos.

Both FLV and MP4 video can be played back with  pseudostreaming. The following scripts or tools are available :

  • The H264 streaming module for Apache, Lighttpd, IIS and NginX.
  • The mod_flv_streaming module for Lighttpd.
  • PHP/ASP scripts such as XmooV PHP.
  • Content delivery networks such as Bitgravity, Edgecast or Limelight.

There is one major advantage to streaming with a Web server rather than with a streaming media server—utilizing existing infrastructure.

The third method uses a separate streaming media server specialized to the audio/video streaming task. A streaming server offers the following advantages :

  • More efficient use of the network bandwidth
  • Better audio and video quality to the user
  • Advanced features like detailed reporting and multi-stream multimedia content
  • Supports large number of users
  • Multiple delivery options
  • Content copyright protection

The following protocols are commonly used by streaming servers :

  • UDP – this protocol provides the most efficient network throughput. The only downside to UDP is that many network administrators close their firewalls to UDP traffic, limiting the potential audience of UDP-based streams
  • TCP – this protocol provides an adequate, though not necessarily efficient, protocol for delivering streaming media content to flow through the firewalls
  • HTTP + TCP – this combination has the benefit of working with all firewalls that let Web traffic through (port 80) and provides much more control (fast forward, rewind, etc) than a standard Web server, but also adds some overhead to the raw TCP stream that decreases scalability.
  • Multicast – this protocol enables hundreds or thousands of users to play a single stream, but will only work on networks with Multicast-enabled routers. Multicast is becoming prevalent on corporate networks, but is still very rare on the Internet

Useful informations and tutorials about streaming are available at the streamingmedia.com website.

In 2009, Amazon CloudFront, the easy-to-use content delivery service, introduced the ability to stream audio and video files. Streaming with Amazon CloudFront is exceptionally easy: with only a few clicks on the AWS Management Console or a simple API call, you’ll be able to stream your content using a world-wide network of edge locations running Adobe’s Flash® Media Server. Like all AWS services, Amazon CloudFront streaming requires no up-front commitments or long-term contracts. There are no additional charges for streaming with Amazon CloudFront; you simply pay normal rates for the data that you transfer using the service.

Recording and processing Flash (flv) videos

Last update : January 30, 2013

Today this contribution has only a historical value.

After YouTube and Google, new players like Metacafe, Blip.tv, Revver, Yahoo Videos and so on have entered the online video sharing space. Today millions of video clips, technology shows, music albums, movie trailers and private films are available on these video sites for online viewing or they can also be downloaded to your hard drive for offline viewing.

The downloaded video files are generally in FLV format (Flash Video) which is an Adobe standard for video compression. It has fast becoming the web standard for delivering online video (replacing Apple QuickTime, AVI, Windows Media and Real rm formats) because Flash Video can be viewed inside Macromedia Flash Players which are shipped by default with most web browsers.

To download Flash Videos, the following approaches are possible:

To record Flash Videos, the following tools are available :

To play Flash Videos on the desktop, use the following players :

To split Flash Videos, use this tool :

To convert and edit Flash Videos, different file conversion programs are available :

  • SUPER from eRightSoft
  • An free online conversion tool (beta) to PC, iPod and PSP is offered by vixy.net.

To encode and publish :

To captionate Flash Videos, the tools available are :

To extract image frames from FLV Videos :

To embed Flash videos in a webpage :

To play Youtube Videos in a webpage :

  • use the Youtube code (an embedded YouTube watermark logo is displayed in the right bottom corner of the player)
  • Mediaplayer by Jeroen Wijering (LongTail Video) ; an embedded YouTube watermark logo is displayed if the standard URL http://www.youtube.com/watch?v=xxxxxxx is used to respect the terms of service (TOS) of YouTube.  The watermark logo is not shown if  the mp4 url  format http://www.youtubemp4.com/video/xxxxxxx.mp4 is used to play the YouTube videos.

To extract audio data from Flash videos :

Links to tutorials about Flash video processing are given below :

Flix Video Encoding and Publishing

last update : october 2010

In the past the On2 Flix product line was the leading line of encoding and publishing solutions for Adobe® Flash® Player, available as application software, plug-ins and software development kits for servers, desktops, and browsers.

On February 19, 2010, Google Inc. announced that it has completed its acquisition of On2 Technologies, Inc., valued at approximately $124.6 million.

On June 21st, 2010, ON2 announced that they are discontinuing sales of licenses for On2 Flix Pro, On2 Flix Standard, On2 Flix Exporter, On2 Flix PowerPlayers, On2 Flix Live, On2 Flix SDK for DirectShow, and On2 Flix Publisher. Google will no longer sell or support these products.

Flash Video (FLV) : delivery and encoding

Last update : Januray 30, 2013

Due to the popularity of the Adobe Flash player, Flash video (FLV) was the standard of choice for Internet Video publishers in the past. Publishers could choose between three methods of delivering video content.

  • Progressive Download
  • Streaming
  • HTTP pseudo-streaming

Downloads are easy and work with any server, but do not offer content protection nor seeking to undownloaded parts. Streaming servers offer these functionalities, but have to be installed and managed. Since serverside access and knowledge are not available to every developer, there exist an in-between solution of HTTP pseudo-streaming through the use of small serverside scripts. A detailed tutorial about HTTP video streaming has been written by Jeroen Wijering, the renowned developer of the JW player and cofounder of LongTail Video and Bits on the Run.

The streaming protocol for Flash video is RMTP (Real Time Messaging Protocol). RTMP is a proprietary persistant protocol developed by Adobe Systems for streaming audio, video and data over the Internet, between a Flash player and a server.

The RTMP protocol has three variations:

1. The “plain” protocol which works on top of TCP and uses port number 1935
2. RTMPT which is encapsulated within HTTP requests to traverse firewalls
3. RTMPS which works just like RTMPT, but over a secure HTTPS connection.

The HTTP pseudo-streaming works through a very simple mechanism. It’s a progressive download using server side scripting to allow random access to parts of the video that have not yet been loaded. A well known php script for HTTP pseudo-streaming was xmoov, developed by Eric Lorenzo Benjamin jr. The FLV video must contain keyframes metadata which can be added with a patcher like FLVMDI.

The second issue for delivering flash video on the web is the encoding. An in-depth comparison of available codecs is presented by Jan Ozer in an article published on the website digitalcontentproducer.com.

Flash video uses three different codecs:

  • The Sorenson Spark codec, introduced in Flash version 7, (Sorenson H.263) was used a lot (e.g. at YouTube, Google Video, MySpace). This codec was also found in most freeware / shareware software that encodes FLV.
  • The TrueMotion VP6 codec developed by On2 Technologies was introduced in Flash version 8. It was a famous proprietary codec used in the Flix encoding tools offered by On2. Two versions of the VP6 were available: VP6-S was recommended for HD (high-definition) production, and VP6-E was the best for SD (standard definition) production.
  • The industry-standard H.264 video codec is icluded in Flash since version 9r115. This codec is also known as MPEG-4 Part 10, or MPEG-4 AVC (for Advanced Video Coding). With H.264, DVD-quality online video is very well possible. An advantage of the H.264 codec is that it is also used in a lot of portable devices, such as the iPod/iPhone, Sony PlayStation Portable (PSP) or Nokia N series smartphones.

A comparison of the quality of H.263 and 264 codecs is presented by Jeroen Wijering on the Bits on the Run website.

I use the commercial version of Jeroen Wijerings video-player (licence No 2007.3264). My video files are hosted on the Amazon S3 servers, the preview pictures are hosted in the same folder as the video player on another server by using a relative path for the corresponding flashvariable. Since 2010 I use the Amazon Cloudfront service to stream flash videos.

FLV MetaData Viewer

Last update : January 30, 2013
FLV MetaData Viewer (FLVMDV) is a property sheet extension DLL for Windows XP. FLVMDV adds ‘FLV Details’ tab to the file properties dialog of FLV (Flash Video) files.

 

FLVMDV

Version 1 of FLVMDV was released by Manitu Group on september 14th, 2006.

FLVMDV tab displays FLV information (dimensions, video and audio codecs, frames rate and duration) and also onMetaData event data found in the FLV.

It can be used free, but it cannot be distributed.