FOSS Codecs For Online Video: Usability Uptake and Development 1.2

From Transmission

Jump to: navigation, search

Contents

FOSS Codecs for Online Video: Usability, Uptake and Development

EngageMedia.org

A review of the best available tools for the creation, playback and embedding of online video using Free and Open Source Software video codecs, and a set of recommendations for development to enhance their adoption by social change video projects on the web.

by Anna Helme, Andy Nicholson, Andrew Lowenthal of EngageMedia.org

This is the second and final draft of this report. Input was requested during the writing of the first draft, and further feedback and input received and amalgamated after circulating it to the Transmission and Theora discussion lists and to other interested individuals.

PDF Version

A version in PDF is also available here: http://www.engagemedia.org/Members/anna/FOSS_Codecs_For_Online_Video_1_2.pdf

Input and Feedback

Your feedback and input into this research is appreciated. Please paste your input into this wiki page: Input

You can contact the authors here: http://www.engagemedia.org/contact-info

Introduction

Over the last 40 years the means to create and disseminate the moving image have become increasingly democratised. From Portapaks to camcorders, VHS to DVD, video technologies have continued to open access to ordinary people to tell their own stories. The explosion of online video distribution has brought new opportunities and challenges for those committed to making sure these technologies are not just available to purchase and use, but that their evolution can be shaped collectively; that they are free to be modified, built upon and shared.

There is a growing need to ensure that the technologies for distributing our media are not held in the hands of a small number of corporations, locked in onerous patents or trapped by proprietary software that may be priced out of our reach at any moment.

These ideas and needs bring us to some rather technical questions about the compression and decompression of video today. This research report seeks to outline the current state of Free and Open Source Software (FOSS) codecs and containers, particularly how they might evolve and be implemented by social justice organisations within the Transmission network for which this report was originally envisioned. Transmission is a network of citizen journalists, video makers, artists, researchers, programmers and web producers who are developing online video distribution tools for social justice and media democracy.

Beyond the ethical reasons for choosing FOSS there are also a range of practical reasons. Most social change video makers cannot afford proprietary tools or have more pressing financial priorities. Additionally, with the right approach, open source development practices can facilitate the rapid development of software that is just as good or even better than their proprietary equivalents. Whilst many activist groups have a commitment to using FOSS generally, most currently employ or promote proprietary video codecs such as Flash, Quicktime and Windows Media. This however is largely due to the historical lack of easy ways to employ FOSS solutions in this area, a problem this research aims to help change.

EngageMedia has led this research project. The report has been authored in the most part by Anna Helme, with support from Andrew Lowenthal and Andy Nicholson as well as input from various members of the Transmission network and other FOSS video tool developers. All recommendations should be considered to be from EngageMedia only, though this draft will be submitted to the Transmission network for further input in order to make any changes necessary and encourage consensus around the best ways forward for collaborative development in this area.

Scope and Method of Research

The research was comprised of two distinct areas. One through the traditional gathering, analysis and filtering of materials. The other through a degree of experimental development to examine the potential to extend available tools and open up new ways to use FOSS codecs within our video-sharing platforms. The research asked a number of questions which evolved somewhat during the research project. Questions addressed were:

  • What FOSS codecs are currently available and how do they compare?
  • What media players are available that handle playback of FOSS codecs? What are the best players to use for each platform, and the best for Transmission members to recommend to their users?
  • What desktop tools currently exist that support encoding to open source codecs? What can be done to improve the ability to encode to FOSS codecs in available tools?
  • What are the best available FOSS server-side auto-transcoding applications to take the onus off video producers to encode to FOSS video formats?
  • How can we make it as easy as possible for a user to transcode to FOSS formats then upload it to the video platform? Conduct research into the development of a desktop transcoder/uploader application that could work locally to encode the file and then upload it to a specified site.
  • What software is available for the playback of FOSS video within the browser? What is the best way to go amongst the various options given current changes in technology, and what further development is required to make these solutions more viable?
  • What is needed within the most popular FOSS content management systems to enable the upload and playback of FOSS codecs?

Recommendations

The report provides a general understanding of FOSS audio/video codecs and recommends what we believe are the most viable options for implementing them within social change online video projects. These recommendations consist of a list of available tools, suggestions for the most usable amongst them, areas that need to be documented further and a set of recommendations for development which Transmission projects and others may contribute to. It aims to encourage collaboration among projects committed to free technologies to avoid replication, conserve resources and ultimately fire up development to build great FOSS video tools.

A process for following up this report is outlined here at the end of the report.

Supporters

This research was funded by the Open Society Institute with additional assistance from the Donkey Wheel Foundation and Open Channel.

Summary of Recommendations

Adoption of Existing Tools

Primary recommendations for software that the Transmission network can adopt to increase the uptake of FOSS codecs are as follows:

Codecs and Containers

The use of two FOSS video and audio codec combinations are recommended:

  • Xvid/LAME Use of the Xvid codec for video and LAME codec for audio in the medium term as both codecs are well developed and generally well supported but are encumbered with patent issues that mean they may be plagued with legal issues into the future.
  • Ogg Theora/Vorbis Use of the Ogg format, Theora video codec and Vorbis audio codec as they are patent-free technologies that have seen great improvements in usability and the number and quality of tools available to create and play them is increasing.

Players

There are many good FOSS players of both Xvid/LAME and Ogg Theora/Vorbis available, some more suitable for certain purposes than others. However the recommendation is that Transmission projects promote the use of one player application primarily, VLC, in order to share documentation and training resources more easily by adopting the same software:

  • VLC Use VLC as it is highly-developed FOSS media player for FOSS codecs available on all platforms.

Transcoders

The following transcoders are recommended to create Ogg Theora/Vorbis video files:

  • MediaCoder (Windows) Use MediaCoder as it is a very usable and highly-configurable FOSS transcoding application with good presets.
  • Simple Theora Encoder (Mac) Use Simple Theora Encoder as it is a very easy-to-use FOSS application for creating Ogg files with presets and configurability.
  • Ogg Convert (Linux) Use Ogg Convert as it is a very simple and usable FOSS application to create Ogg files amongst others.

The following transcoders are recommended to create Xvid/LAME video files:

  • MediaCoder (Windows) Use MediaCoder as it is a very usable and highly-configurable FOSS transcoding application with good presets.
  • Avidemux (Linux) Use Avidemux, an easy yet configurable FOSS transcoding application with good presets.
  • FfmpegX (Mac) Use FfmpegX as it is an simple yet configurable Shareware transcoding GUI application built on FOSS transcoding software.

Server-Side Transcoding

  • ffmpeg2theora Install the FOSS ffmpeg2theora on the server to create Ogg Theora/Vorbis files automatically for the user, that can then be played back in the browser with other FOSS technologies
  • Mencoder Install the FOSS Mencoder on the server to create Xvid/LAME files automatically for the user where appropriate, for download. Alternatively use this to transcode to Flash video for playback in the browser using FOSS technologies.

Development of Tools

Primary recommendations for further development by members of the Transmission with the ability to contribute to development, to increase the usability and implementation of FOSS codecs are as follows:

Transcoder/Uploader

  • v2v/Transmission Uploader Contribute to the development of the v2v Upload transcoder/uploader application created by Jan Gerber, specifically by:
    • generalising the application for Transmission projects by creating a configuration file that can be edited by each project to include its own settings with the program
    • bugfixes and testing
    • implementation of the Transmission metadata standard
    • promotion and documentation

Browser Playback

  • Ogg Theora/Vorbis Support in Indytube Develop Ogg support in Indytube from present alpha stage by:
    • adding the MV_Embed script to support all available Ogg playback methods - the Cortado java applet, browser plugins and native browser support for Ogg
    • optional use of the Icecast streaming server
    • bugfixes and testing
    • implementation of the Transmission metadata standard as far as possible into Ogg files
    • promotion and documentation
  • Cortado Java applet Contribute to development of Cortado java applet by:
    • re-writing to include support for latest version of Theora
    • enhanced controls including full-screen, timecode display and volume
    • bugfixes and testing
    • promotion and documentation

Support in Popular CMSs

  • Integration of Indytube with Ogg Support Integration, documentation and promotion of Indytube with Ogg support into Plumi, FilmForge and Showinabox for server-side transcoding and browser playback
  • Integration of Transcoder/Uploader Integration, documentation and promotion of transcoder/uploader into Plumi, FilmForge and Showinabox for easy creation and upload of Ogg into CMSs
  • Integration of vPIP with Ogg Support Integration, documentation and promotion of vPIP with Ogg support into Plumi, FilmForge and Showinabox for browser playback

Codecs and Containers

What FOSS codecs are currently available and how do they compare?

We asked this question in order to establish which FOSS codecs[1] should be adopted by the Transmission network. Many comparisons of codecs and containers [2] already exist, and though there is a need to update these often as the technology is constantly changing, it was not considered necessary to replicate these individual comparisons but to aggregate their results. Research involved reading existing research on the subject and identifying what was most appropriate for the needs of Transmission network members, considering:

  • Development community and future potential
  • Future relevance due to external factors
  • Support or potential for support in players, transcoders and browsers
  • Relative quality of results (quality-compression ratio) to proprietary codecs and formats
  • Efficiency - time to encode
  • CPU load on playback / encode - compatibility with older/low-powered machines
  • As-is potential for use by Transmission network members, and future potential given more development in terms of usability
  • Documentation
  • Ability to embed metadata within the video file such as license info
  • Patents that may inhibit the distribution of codecs and containers, despite them being FOSS and [licensed under free or open source licenses such as the GPL.

The chapter by Denis Rojo (Jaromil) and Eleonora Oreggia Video Streaming Across Wide Area Networks resulting from R&D activities in Montevideo/TimeBasedArts includes tabled results of benchmarks that are very useful. Wikipedia's comparisons on container formats and codecs were considered, as was the DVD backup website doom9 and other codec comparisons in addition to project websites with documentation about the codecs and containers themselves.

Containers

The FOSS and patent-free container formats[2] Ogg, Ogm, Matroska and NUT were examined. Ogm (Ogg Media) is a format that may contain codecs such as Theora and Vorbis but also non-Xiph codecs and has features centering on chapters and multiple audio tracks like on DVDs. Ogm is considered a temporary solution and will not likely have much continued development. Matroska is a format designed to contain any codec and an unlimited number of audio and video streams, and is being developed to allow chapters and DVD-like menus, but is not popular or well enough supported by players and transcoders to be considered at this stage though it should be kept in mind for the future. NUT is another container developed by some people from the Mplayer and ffmpeg projects but is in early stages of development and not ready to be considered at this stage. Ogg was chosen as the front-runner as far as patent-free and FOSS containers are concerned, while the Microsoft .avi or Apple .mov formats (both proprietary) can be used with Xvid.

Codecs

Research was focused on video codecs[1] rather than audio codecs, though audio codecs complementary to the video codecs chosen were considered. Both LAME and Vorbis are well known and excellent options for FOSS audio codecs, though LAME has patent issues to do with the use of mp3 software developed originally by Fraunhofer.

Most video codecs considered were based on the DCT (discrete cosine transform) method of video compression. Newer wavelet-based compression techniques were considered also, though these are not ready for adoption.

Both Xvid and x264 are based on different parts of the MPEG4 standard, for which many patents are held and managed by the MPEGLA (MPEG Licensing Authority) despite being free and open source development projects. This means that codecs based on this standard are encumbered by patent issues and are often only available as source code by the developers and distributed as binaries by third-parties only. X264 may or may not offer superior quality over Xvid, but is less popular and well-supported than Xvid so was left out of the recommendations.

Theora is based on vp3, which is patented by On2 Technologies, however On2 has released all users of this software from any patent restrictions so it can be considered patent-free. It is recommended for its quality, its increasing usability and its potential to be included in future native browser support for video playback (see below).

Dirac (BBC) and Snow (ffmpeg) are both wavelet-based codecs that are not mature enough to be used at this stage, but promise significant gains in compression ratio in the future. The wavelet-based Tarkin (Xiph) is little more than a proof-of-concept and is not being developed at present. OpenAVS is an open-source fork of a Chinese patented codec but is still in early development so is not part of these recommendations either.

Research findings are split into three use-cases:

Download to Screen / Watch on PC

Various container-format/codec combinations were considered for viewing on personal computer using a player application such as VLC player, once the file has already been downloaded.

Two FOSS video/audio codec and container format combinations are recommended here. The Xvid/LAME video/audio codecs are judged to be a good temporary measure, to be phased out with the increasing usability of Theora/Vorbis.

Avi/Mov Xvid/LAME

Both the AVI and MOV container formats support the use of the Xvid video codec and the LAME audio codec. Both these codecs are capable of producing good or excellent results with a high quality to file-size ratio especially at the bitrates of Xvid 900-1400 kbit/s and LAME 96-160 kbit/s.

Both Xvid and LAME were originally based on proprietary codecs - Xvid upon the DivX 3.11a hack of a Microsoft MPEG4 codec and LAME on the Fraunhofer mp3 codec. Though they have evolved somewhat since then (or have been substantially or entirely re-written) they still have underlying patent issues particularly with Fraunhofer and the pool of MPEG-4 patent owners. This may hinder their distribution and may cause further difficulties in future if the owners of those patents pursue legal proceeding against anyone using these codecs.

In their favour, they both have a relatively high level of uptake. Any hardware device or software player capable of playing mp3 will be able decode the LAME audio codec. As Xvid is based on the MPEG4 standard, many hardware DVD players are set up to play back DivX and are therefore also capable of playing Xvid, which hugely increases its usability. An Xvid component is available for Quicktime, and a directshow filter is available for Windows (see below)so most people will be able to play Xvid without too much trouble. Of course, the VLC player will play both codecs in either the AVI or MOV container format on Linux, Mac and PC in addition to many other platforms.

However it is thought better not to invest heavily in FOSS codecs that are encumbered by patent issues which may result in legal risk to anyone using them in future. The recommendation is that Xvid is still supported by the Transmission network until such time as Ogg Theora/Vorbis is supported by the members' user base adequately. It is not recommended that Transmission members contribute substantially to development of the Xvid codec or applications built around it.

It is worth noting that encoding applications that use the the ffmpeg libavcodec do not actually encode to Xvid but to an ffmpeg re-implementation of an mpeg4 standard codec that is compatible with Xvid and may be tagged as Xvid by the application.

Xvid Downloads, Documentation and Development

Image:download.jpg Download: (Windows/Linux) http://www.xvid.org/Downloads.15.0.html (Mac) http://www.xvid.org/Software.83.0.html

Image:help.jpg Documentation: http://www.xvid.org/FAQ.14.0.html

Image:development.jpg Development http://www.xvid.org/Xvid-Codec.2.0.html

LAME Downloads and Documentation

Image:download.jpg Download: http://lame.sourceforge.net/links.php#Binaries

Image:help.jpg Documentation: http://lame.sourceforge.net/using.php

Image:development.jpg Development: http://lame.sourceforge.net/

Ogg Theora/Vorbis

The Ogg container format, Theora video codec and Vorbis audio codec are developed by the Xiph.org Foundation and are patent free technologies as well as FOSS. Theora and Vorbis have very good quality to file-size ratio, especially in the Theora 900-1400 kbits/sec and Vorbis 64-160 kbits/sec ranges. Vorbis in particular has a very good reputation for quality at this bitrate range.

The problems facing Ogg Theora/Vorbis are really about usability and uptake. While there are many Vorbis transcoders available, until recently Theora was only transcodable on the command line. While some argue that this is not difficult, the fact is that most general users and video makers would never even contemplate using an application without a graphical user interface.

This situation has begun to change in the last few months, with the work by Jan Gerber of v2v on the Simple Theora Encoder - a very simple graphical user interface for his ffmpeg2theora application. Currently a disk-image containing a binary of this application is available for Intel Mac which is easy to install and very easy to use see below. Versions of this application for other platforms are in the pipeline. This application (and its related application, the transcoder/uploader v2v Upload see below) is key to the uptake of Ogg Theora/Vorbis, by enabling users to create these files easily on their personal computers.

In terms of players (see below), Ogg codecs are supported by VLC and Mplayer but by few other players. For the Transmission network this should not be seen as too much of a hurdle, as it is possible to distribute the FOSS VLC player or offer a link to download it from the VLC website. Both installation and use of VLC is very easy.

Theora Downloads and Documentation

Theora is not released as a codec to download, but as libaries available to be implemented into applications that can encode it or decode it (either make Ogg Theora files or play them back). Many of these applications for using Theora are listed in this report.

Image:help.jpg Documentation: http://en.flossmanuals.net/theoracookbook

Image:development.jpg Development: https://trac.xiph.org/report/10

Vorbis Downloads and Documentation

The Get Setup area of Vorbis.com lists binaries for download that utilise the Vorbis codec. The link to documentation is a FAQ rather than a user guide. User documentation can be found with the transcoder or player software that uses Vorbis, as for Theora also.

Image:download.jpg Download: http://www.vorbis.com/setup/

Image:help.jpg Documentation: http://www.vorbis.com/faq/

Image:development.jpg Development: https://trac.xiph.org/report/11

Playback Within Web Browser

Two solutions are recommended here for the meantime - one is currently available but only uses FOSS tools in combination with the proprietary Flash video format. The other solution of using Ogg Theora/Vorbis for playback within the web page needs work urgently to bring it to a more usable stage, though this could be done fairly easily at this point. Details on software available to support the playback of FOSS codecs within the browser is covered in another section of this report below.

Flash video using FOSS tools

Flash video is now the most common software for viewing video within the browser, having overcome in recent years RealNetworks, Quicktime and Windows Media in terms of market-share. The Flash browser plugin was originally designed for Shockwave vector animations by Macromedia, and adapted for video using codecs developed by other companies Sorenson and On2. Adobe (who now own Macromedia and Flash) claim that 98.7% of internet users have the Flash plugin (they do not specify which version in this statistic, or if that version is video-capable). It is clear that Flash has the widest level support for video playback in the browser in any case.

There is a large open source Flash community and much development in this area. The Red5 server is available as a FOSS tool for streaming Flash video files. The open source Flash video player Flowplayer is available for any Transmission project to include within their web pages, and there are many others available also (see Browser Playback section below). The FOSS MEncoder can be used to transcode to Flash video on the server-side.

The FOSS Indytube "YouTube-like" code package uses both Flowplayer and MEncoder to enable server-side transcoding and browser-playback of Flash video, and has ensured that this is a very viable option for Transmission network members and beyond (see section on Indytube and OSFlash below).

Ogg Theora/Vorbis

Server-side transcoding of Ogg Theora/Vorbis is available with ffmpeg2theora and currently works at alpha level in the Indytube package (see below). Uptake of this should be fairly straightforward from this point, with implementation into the popular content management systems Plone and Drupal happening in the near future.

Browser playback is covered in more detail below, but the options here are improving with the advent of an experimental plugins for Mozilla browsers and experimental work on native support for Ogg Theora/Vorbis by both Mozilla and Opera, in addition to improvements to the Cortado Java applet which will play Theora back in any browser so long as the user's system has Java installed.

Ogg streaming is available using the Icecast server (see below).

Video for Mobile Devices

This area has not been investigated substantially as part of this research. Further research into the availability and usability of FOSS codecs for mobile devices needs to be conducted. Many more people will have access to a mobile phone than a personal computer in the next few years. When considering the digital divide the importance of mobile technology globally cannot be ignored.

Transmission network members are encouraged to have input into this area in particular at this stage and to begin a discussion about relevant technologies, including which video formats may be appropriate to use.

It is worth noting that Opera has released a version of its browser called Opera Mini which is designed to run on mobile devices. As Opera is including support for native playback of Ogg video in future (see below) this may mean Ogg will be supported in this trimmed down version of their browser also, and thus allow for playback of Ogg video on mobiles.

Players

What media players are available that handle playback of FOSS codecs? What are the best players to use for each platform, and the best for Transmission members to recommend to their users?

It is important to consider which media players support the codecs we are recommending, in order to ensure our audiences can watch the files we distribute. There are many good media players available for different platforms with varying support for Theora/Vorbis and Xvid/Lame. There is an excellent and exhaustive comparison page on Wikipedia that lists the features and compatibility of media players with various video and audio codecs and formats Comparison of media players. This was cross-referenced with documentation and some testing of the players themselves for this research.

FOSS Players for FOSS Codecs

This is a subset of available FOSS media players that support Theora/Vorbis and LAME/Xvid, discounting those without much continued development:

NAME OS STREAMING Lame/xvid vorbis/THEORA VODCAST
Kaffeine (KDE; xine) U yes yes yes no
Kplayer (KDE; mplayer) U yes yes yes no
Media Player Classic W yes yes with plugin yes with plugin no
Mplayer (libavcodec, libavformat, xine-lib) W M U yes yes yes no
Miro W M U no yes yes yes
NicePlayer M yes yes with plugin yes with plugin no
RealPlayer / Helix Player (open-source) W U yes yes with plugin yes / with plugin no
Songbird W M U yes yes yes yes
Totem (GNOME; gstreamer/xine-lib) U yes yes yes no
VLC (Video Lan Client) W M U yes yes yes no
XBoxMediaCenter W(p) yes yes yes no
Xine Player (xine-lib) U yes yes yes no

U = Linux or Unix-like operating systems M = Mac OS X W = Windows (p) = partial support

The ability to act as a streaming client or vodcatcher (RSS video podcast feed reader) is noted for those Transmission members for whom this is relevant. Often users of Transmission member sites may use one application for streaming content, one for vodcasts and one for general media playing.

Songbird is an interesting application, as it aims to be a media player / web browser to enable you to "play the web". Miro is a vodcatcher and player and is very useful for both browsing content and presenting it in a playlist for screenings.

Linux users in particular have a good range of options to choose from, and will probably choose their favourite player to suit their own needs. XBMC (XBoxMediaCenter) is for the Xbox game hardware, but will also run on some Windows OSs. MPlayer, Miro, Songbird and VLC will all play on Linux, Mac and Windows but out of the four VLC is the most user-friendly application for an audience who wishes to view downloaded media (in addition to other functions such as streaming and encoding which can be found deeper in the menus).

Any of the players listed are good choices for individuals who wish to playback FOSS codecs on their computers, but for the sake of simplicity and for the reasons outlined below it is recommended that Transmission members promote the use of VLC.

VLC

The major recommendation for player software for FOSS codecs is VideoLan Client (VLC). It's advantages are that it is cross-platform, stable and usable, and can play back nearly any audio or video format available).

The multi-platform VLC can run on Windows, OSX, Linux and PocketPC / WinCE handhelds along with other systems. VLC also works well as a streaming server and video transcoder too (to both Xvid and Theora, the two recommendations of this report).

Another advantage of encouraging the use of this player by our network members and their users is that we will be referring to one documentation base if we all use the same player.

Image:Vlc.jpg

Screenshot of VLC player

VLC Documentation, Downloads and Development

Image:download.jpg Download: http://www.videolan.org/vlc/

Image:help.jpg Documentation: http://www.videolan.org/doc/play-howto/en/play-howto-en.html

Image:development.jpg Development http://www.videolan.org/developers/

Support in Proprietary Players

Quicktime / iTunes

Perian is a multi-codec package for Quicktime on Mac that currently supports Xvid and many other codecs Quicktime does not natively support. Apparently only for OS 10.4 and above . The issue tracker lists .ogg support as an upcoming addition.

There is a Quicktime Xiph component that will allow the playback of Xiph codecs including Ogg Theora/Vorbis using Quicktime on both the Mac and on Windows, available for download from Xiph.org.

These Quicktime components will allow the playback of Theora/Vorbis and Xvid/LAME files in any application that uses Quicktime architecture on a Mac, including iTunes.

Windows Media Player / Winamp

The Illiminable DirectShow Ogg Filters are available as a binary to download and install which will allow the playback of Ogg Theora/Vorbis files using Windows Media Player or other applications that use directshow filters such as Winamp.

From the Xvid.org website there are links to download the Xvid codec that will enable the playback of Xvid files in Windows Media Player or Winamp.

Transcoders

What desktop tools currently exist that support encoding to open source codecs? What can be done to improve the ability to encode to FOSS codecs in available tools?

There are many transcoding applications available for different platforms. An assessment was made of currently available tools in order to make a comparison and identify the most usable tools for each platform. In general we did not look at high-end proprietary transcoding applications such as Cleaner and Pro Coder, and focused on FOSS applications available at no cost.

Graphical user interfaces were also favoured, as there is unlikely to be a large uptake of command line interfaces, despite how easy they can be to use once the the command line paradigm has been mastered. It can be difficult to convince programmers of this fact, but most video makers will not be persuaded to use the command line to encode video. Transcoders for the command line are recommended for Linux users only below.

Lists of video transcoders can be found at Afterdawn.com, VideoHelp.com. There is no comprehensive comparison of transcoders on Wikipedia, perhaps as there are so many different programs, and many applications are weighted towards particular use-cases or codecs so this would be a huge task. Other lists of video transcoders can be found on download.com or versiontracker.com by searching in the correct categories. A list of Theora encoders can be found on the Xiph.org wiki.

There was input from two Transmission members into this research question. Firstly Jaromil from Dyne highlighted the need to address development of clean encoder/decoder examples for software developers in various languages, in form of libraries, as well direct support to the FFMpeg project. Mick Fuzz from ClearerChannel indicated the need to implement easy presets in transcoding applications in order to make transcoding easy for beginner users and video makers without extensive computer skills outside of video editing applications.

Windows

There are numerous FOSS transcoders available for the Windows platform. Virtual Dub, derivatives of this program and other early video converter applications have had a large base of users converting to DivX and subsequently Xvid, especially in the DVD-ripping community. Virtual Dub itself has a confusing and complicated user-interface and cannot be recommended for beginner users. SuperC is a freeware GUI for mencoder, ffmpeg and ffmpeg2theora that will transcode to Xvid, Ogg Theora, x264 and just about any other codec/format. There is a relatively new application available called MediaCoder that has proved to be very usable and can transcode from just about any codec/format to any other.

MediaCoder for Xvid and Ogg

We recommend MediaCoder as the most user-friendly and stable option for transcoding video to Theora/Vorbis and Xvid/LAME for Windows operating systems. From the website: "MediaCoder is a free universal audio/video batch transcoder distributed under GPL license, which nicely integrates lots of excellent audio/video codecs and tools from the open source community into an all-in-one solution, capable of transcoding among different audio/video formats. With many extra features and a expandable architecture, MediaCoder is more than a GUI of a bunch of command line tools."

MediaCoder comes with good presets for transcoding, one of the best features for ease of use. The user guide on the MediaCoder site is incomplete. It is recommended that this gap be filled during the Transmission Documentation project.

Features In Brief

  • Convert to and from many audio and video compression formats and re-multiplex into various container formats, on the fly, in batch
  • Give you the control over the transcoding process and all the parameters of the transcoded files, so you can learn about, compare among and play with various codecs
  • Specific user interfaces for specific devices with device plug-ins and extensions
  • Fully standalone, not dependent on any media player, filter or codec, no registration of any components into system
  • Extensions to expand custom features and user interfaces

Image:MediaCoder_1.png

Screenshot of MediaCoder Interface

MediaCoder Downloads and Documentation

Image:download.jpg Download: http://mediacoder.sourceforge.net/download.htm

Image:help.jpg Documentation: http://mediacoder.sourceforge.net/wiki/index.php/Main_Page#Documentation

Image:development.jpg Development: http://sourceforge.net/svn/?group_id=151884

Mac

There are fewer FOSS or Shareware transcoding options for Mac. The two best options are covered below - one to use ffmpegX to produce Xvid/Lame and one to use Simple Theora Encoder for Theora/Vorbis. It should be noted that it is also possible to use the XiphQT and Perian components for Quicktime to export both Xvid and Ogg Theora/Vorbis directly from any program using Quicktime architecture, such as Final Cut Pro. These options are covered below.

ffmpegX for Xvid

ffmpegX is the frontrunner in the field for FOSS video transcoders. It is a not a FOSS application itself, it is a Shareware GUI ($15 registration) for the FOSS FFMpeg and MEncoder transcoders and can transcode to Xvid/LAME(mp3) files amongst others. When Xvid is selected a preset is activated that only requires a small number of changes to create a decent output for PAL 4:3 video. The preset works fine for widescreen NTSC video that does not require deinterlacing (one checkbox needs to be ticked to deinterlace).

Documentation for making Xvid files with ffmpegX is scarce. EngageMedia will add this guide to the EngageMedia.org website and contribute this to the Transmission Documentation project if appropriate as part of the research. In the meantime there is a certain amount of documentation in the ffmpegX How-Tos.

Image:FfmpegX.jpg

Screenshot of ffmpegX interface

ffmpegX Downloads and Documentation

Image:download.jpg Download: http://www.ffmpegx.com/download.html

Image:help.jpg Documentation: http://www.ffmpegx.com/howtos.html#divx

Simple Theora Encoder for Ogg

Jan Gerber of v2v, the developer of ffmpeg2theora, has recently built a graphical user interface for ffmpeg2theora that means users no longer have to use the command line. This application is still under development, but is able to be used now by people using the Mac OS X operating system, and is called the Simple Theora Encoder.

Documentation was not available, so was completed as part of this research. EngageMedia have produced a Simple Theora Encoder tutorial with screenshots to take people through how to download, install and use the application, which is very simple and usable. This will be contributed to the Transmission Documentation project and has recently been incorporated by v2v on the Simple Theora Encoder project page.

The beauty of Simple Theora Encoder is its simplicity. It is very easy to use and does not require the user to add any encoding settings. The transcoder is fast and outputs a high quality video.

It is recommended that support be given to the Simple Theora Encoder project to make the application available for other operating systems in a stable version as soon as possible.

Image:SimpleTheoraEncoder.gif

Screenshot of Simple Theora Encoder interface

Simple Theora Encoders Downloads, Documentation and Development

Image:download.jpg Download: http://v2v.cc/~j/SimpleTheoraEncoder/Simple%20Theora%20Encoder.dmg

Image:help.jpg Documentation: http://v2v.cc/~j/SimpleTheoraEncoder/

Image:development.jpg Development: http://svn.xiph.org/trunk/ffmpeg2theora/frontend/

Linux

Command line interfaces are available for MEncoder, Transcode, FFMpeg and ffmpeg2theora. Many Linux users will feel comfortable using these applications, however only GUIs are properly considered here as we wish to focus on the needs of video makers without extensive computer experience. As more people move to Linux, a higher percentage of Linux users will fall into this category.

AcidRip is a GUI based DVD ripping/transcoding application written in perl. It is basically a wrapper for MPlayer and MEncoder. It is available for installation using Synaptic in Ubuntu and other package managers on other brands of Linux. If you would prefer to build it yourself, you will need Mplayer and MEncoder, lsdvd and acidrip. Handbrake is another DVD-ripper that can be used for transcoding to Xvid from DVD, it is a command line interface on Linux, but a very easy to use GUI on other platforms.

Shazam is a graphical user interface for FFMpeg and ffmpeg2theora which will create Ogg Theora/Vorbis files, developed by Estudiolivre. The user loads a video file into the first interface pane, then follows a series of wizard dialog boxes in Portuguese.

GTranscode is a graphical user interface for the Transcode command line utility for Linux that can transcode, apply filters, do re-sampling, resizing, cropping, and more. You can use it to create Xvid files amongst many others. Documentation is available here on the FLOSSManuals website.

Avidemux for Xvid

An intuitive yet complete application for cutting, resizing, effecting and transcoding is Avidemux. It is not just an interface for transcoding, it has other features such as analog video capture, scripting and a joblist (a list for batch encoding, meaning the user can load up many files to transcode while they are doing something else). Avidemux is multi-platform but developed primarily for Linux. It uses borrowed code from projects like FFMpeg and MEncoder - in particular a version of the libavcodec library from FFMpeg.

Avidemux was tested for Xvid/LAME transcoding and performed well using the presets for both Xvid (variable bit rate) and LAME (contant bit rate 128mbits/sec). There were a range of filters available to deinterlace the input file which will come in handy for videomakers transcoding from DV master files outputted from their editing applications. There were only a few easy steps involved in opening a file to transcode, selecting Xvid and selecting LAME, and clicking SAVE to start the transcoding process.

Image:Avidemux.png

Screenshot of Avidemux interface

Avidemux Downloads, Documentation and Development

Image:download.jpg Download: http://fixounet.free.fr/avidemux/download.html

Image:help.jpg Documentation: http://www.avidemux.org/admWiki/index.php?title=Main_Page

Image:development.jpg Development:http://bugs.avidemux.org/

Ogg Convert for Ogg

OggConvert is a small Gnome utility which uses GStreamer to convert (almost) any media file to the patent-free Ogg Vorbis, Theora and Dirac formats. Features (from the website) include:

  • It’s painfully easy to use: drag a file onto the source bar (or use the file chooser) and hit convert. Of course, you can also change the video format, quality settings and the output filename if you like
  • It uses GStreamer, so it can convert (almost) any file which Totem can play
  • It can deal with audio-only files, video-only files, and files with many audio tracks (such as DVD rips with a commentary track).
  • Thanks to the magic of GStreamer, metadata (for example, title and artist info on an MP3) is preserved

Documentation is very limited. A tutorial should be created and added to the Transmission Documentation project.

Image:OggConvert.png

Screenshot of Ogg Convert interface

Ogg Convert Download, Documentation and Development

Image:Download.jpg Download: http://oggconvert.tristanb.net/download/

Image:help.jpg Documentation: http://oggconvert.tristanb.net/about/

Image:development.jpg Development: https://launchpad.net/oggconvert

Cross-Platform

There are two applications that are available for transcoding on Mac, Linux and Windows. Avidemux will transcode to Xvid but not Ogg Theora/Vorbis but has only been tested as part of this research on Linux. VLC is not only able to play video, but has the ability to stream media and to transcode it to Ogg Theora/Vorbis not Xvid (though it offers the Xvid equivalents of DivX and Mpeg4 video). The advantage of using VLC is that it is cross-platform, and one documentation base can be shared amongst users of different operating systems across all Transmission member projects.

Avidemux for Xvid

See above section on Avidemux for Xvid on Linux for details on this application.

VLC for Ogg

VLC is not just a media player (as outlined above) but can stream audio and video and transcode to MPEG4 and Ogg Theora/Vorbis also. Transcoding with VLC involves a few easy steps. A How-To transcode to Ogg can be found here on YouMakeMedia.com.

As stated earlier, VLC's advantages generally are that it is cross-platform, stable and very usable but during testing some errors did occur, which suggests that further development is needed to make VLC a truly reliable transcoder. As VLC already has a few other features such as playing and streaming video it is hard to tell if development will be focused in this area by VLC or if they will leave this to other applications to concentrate on.

Image:Vlc-transcode.gif

Screenshot of VLC transcoding wizard

VLC Downloads, Documentation and Development

See section on VLC above for further information.

Support in Proprietary Transcoders for FOSS Codecs

With decent GUIs available to transcode to both Xvid/LAME and Ogg Theora/Vorbis using FOSS applications it was felt unnecessary to do a major review of proprietary applications for transcoding to these formats. However it is worth mentioning the XiphQT and Xvid components for Quicktime and directshow filers for Windows applications - as these allow for exporting both FOSS formats from any application using the Quicktime architecture and many Windows programs.

This means that videomakers can export Xvid or Ogg directly from their editing applications - a common request from videomakers.

Ogg for Quicktime - XiphQT Component

The XiphQT component for Quicktime is distributed under the GPL and has the ability to produce Ogg files and encode video and audio content into Theora and Vorbis, respectively, and export directly to Ogg from iMovie or other QuickTime-based application. XiphQT now comes in a single, statically-linked component bundle and doesn't require any additional frameworks, so you can simply drag'n'drop to install it.

Many videomakers use FinalCut to edit their video - it has become an industry standard for video production. The XiphQT component makes it possible to export Ogg video directly from the timeline without having the extra step of using a transcoding application.

This component is still in development and users may encounter bugs, however it is stable enough to begin using now.

It is worth noting that in order to export from directly from Quicktime you need to buy a license for Quicktime Pro (approximately $25 USD). However with XiphQT conversion to Ogg is available to any application that uses the Quicktime framework without the need to pay for the Pro version. For example, there is a set of command line tools (qt_tools) that allow manipulation of material in formats understandable to QuickTime, including importing, transcoding and exporting. However the common technique for less tech-savvy video makers would be to export directly from the FinalCut (or other video editing application) timeline.

XiphQt Downloads, Documentation and Development

Image:download.jpg Download: http://xiph.org/quicktime/download.html

Image:help.jpg Documentation: http://xiph.org/quicktime/about.html

Image:development.jpg Development: https://trac.xiph.org/report/16

Xvid for Quicktime

The Xvid website informs us that there is a Xvid quicktime plugin available for Mac only, but it is not well maintained at the moment. They are currently working on improved Quicktime support, which will become part of the Xvid core code base.

It is worth noting that in order to export from Quicktime you need to buy a license for Quicktime Pro (approximately $25 USD).

Xvid Quicktime Plugin Downloads, Documentation and Development

Image:download.jpg Download: http://n.ethz.ch/student/naegelic/download/

Image:help.jpg Documentation: http://n.ethz.ch/student/naegelic/faq/

Image:development.jpg Development: http://n.ethz.ch/student/naegelic/map/

Ogg for Windows - OggCodecs

It is possible to export Ogg Theora/Vorbis directly from any program on Windows that uses the the DirectX9 SDK using the OggCodecs DirectShow filters. OggCodecs was originally developed as part of the Annodex project at the CSIRO by Zentaro Kavanagh (IRC nick: illi).

According to illi via IRC it may be fairly straightforward to develop the ability for this filter to be used by video-editing programs such as Premiere and Vegas Video, this is unlikely to happen soon.

OggCodecs Downloads, Documentation and Development

Image:download.jpg Download: http://www.illiminable.com/ogg/

Image:help.jpg Documentation: http://www.illiminable.com/ogg/about_sdk.html

Image:development.jpg Development: http://svn.xiph.org/trunk/oggdsf/

Xvid for Windows - Xvid Codec 2.0

The Xvid codec for Windows allows any application that uses Directshow filters to transcode to Ogg, allowing for direct export from applications such as Premiere and Vegas Video.

Xvid Codec for Windows Downloads, Documentation and Development

Image:download.jpg Download: http://www.digital-digest.com/software/download.php?sid=1052&ssid=0&did=1

Image:help.jpg Documentation: http://www.xvid.org/General-Info.19.0.html

Image:development.jpg Development: http://www.xvid.org/Xvid-Codec.2.0.html

Server-Side Transcoding

What are the best available FOSS server side auto-transcoding applications to take the onus off video producers to encode to FOSS video formats?

There are often two versions of a video file that a Transmission network member may wish to create and distribute. The first is a relatively high-resolution version of a video that can be played full-screen on computer or projected at a community screening. This generally needs to be created on the user's computer, as the original video master will be in DV or HDV format and thus be too large to be transportable on the web. It needs to be compressed to this level in order to be uploaded. This can be referred to as "screening quality" video.

The second version of a video file is more useful for viewing on a computer as video on-demand or streaming video in the browser. This needs to be lower resolution, and more compressed so it can be transferred to the user's computer at an equal or faster rate than it is being viewed in order to watch it as it downloads or streams. This can be referred to as "web-viewing quality" video.

To save the user having to create two versions of a video to suit these two purposes, to make it easier for them to adopt FOSS solutions and to ensure that a video file designed for web-viewing quality can be standardised to be played back in a majority of browsers, it is better to transcode to web-viewing quality on the server-side. There are various tools available to do this on your own server, and web-services available to do the transcoding for you - though these can cost money or have limited options available.

The method recommended here is to use MEncoder, FFMpeg and ffmpeg2theora. These can be used in conjunction to transcode various file formats to both Xvid/lame and Ogg Theora/Vorbis - but for the purposes of browser playback Ogg is the only FOSS codec worth considering at this time. Flash video as explained earlier using FOSS tools is a good stop-gap measure at this point, and may be transcoded using MEncoder.

MEncoder - Xvid/LAME

(From Wikipedia) " MEncoder is a free command line video decoding, encoding and filtering tool released under the GNU General Public License. It is a close sibling to MPlayer and can convert all the formats that MPlayer understands into a variety of compressed and uncompressed formats using different codecs.

Since it uses the same code as MPlayer, it also features the same huge number of highly-configurable video and audio filters to transform the video and audio stream: Filters include Cropping, Scaling, Vertical Flipping, horizontal mirroring, expanding to create letterboxes, rotating, brightness/contrast, changing the aspect ratio of the video's pixels, colorspace conversion, hue/saturation, color-specific Gamma correction, filters for reducting the visibility of compression artifacts caused by MPEG compression (deblocking, deringing), automatic brightness/contrast enhancement (autolevel), sharpness/blur, denoising filters, several different ways of deinterlacing, and reversing telecine. "

MEncoder also uses FFMpeg - a set of software libraries that can record, convert and stream digital audio and video in numerous formats. It includes libavcodec, an audio/video codec library used by several other projects, and libavformat, an audio/video container mux and demux library. Most FFMpeg developers are also part of the MPlayer and VideoLAN projects, and FFMpeg is hosted at the MPlayer project server. Input from Jaromil during this research highlighted the need for ongoing support for these projects, which are the key engines that drive many applications listed as part of this research.

Fairly simple command-line arguments are required to transcode to Xvid/LAME, and can be passed to MEncoder from your online video platform. This is an example of a command to encode to Xvid/LAME:

mencoder <filename.avi> -ovc xvid -oac mp3lame -o <output.avi>

This will output an AVI file using Xvid video codec and LAME audio codec, using the MEncoder presets.

MEncoder Documentation and Downloads

Image:download.jpg Download: http://www.mplayerhq.hu/

Image:help.jpg Documentation: http://www.mplayerhq.hu/DOCS/HTML/en/encoding-guide.html

Image:development.jpg Development: http://svn.mplayerhq.hu/

ffmpeg2theora - Ogg Theora/Vorbis

ffmpeg2theora is a command line interface that uses FFMpeg to decode video and libtheora to encode it, written by Jan Gerber from v2v. It has many options including deinterlacing, resolution, contrast, gamma, brightness, saturation and the ability to set video and audio quality and bitrate. It can also insert metadata into the Ogg file, stream Ogg to Icecast for encoding on-the-fly and grab DV streams encoding them live to Ogg from a video camera. There is a debian package available for ffmpeg2theora here.

Commands for usage of ffmpeg2theora are fairly simple to use. A copy of the ffmpeg2theora man pages are here on this wiki: ffmpeg2theora_manpages (manual). This is an example of a command to encode to Ogg Theora/Vorbis:

ffmpeg2theora --audiobitrate 128 --videobitrate 1000 --width 320 --height 240 --deinterlace <input.mov>

This will output a file in the Ogg format using Theora video codec and Vorbis audio codec, with a resolution (frame size) of 320x240, a video bitrate of 1000 kbps and an audio bitrate of 128 kbps. The video will also be deinterlaced.

ffmpeg2theora Downloads, Documentation and Development

Image:download.jpg Download: http://v2v.cc/~j/ffmpeg2theora/download.html

Image:help.jpg Documentation: http://en.wikibooks.org/wiki/Ffmpeg_to_theora

Image:development.jpg Development: ffmpeg2theora on Xiph Tracker

Transcoding Web Services

Mux is a commercial web-service developed by Cruxy that offers transcoding to various formats including Ogg Theora/Vorbis by visiting the site and browsing for a file to transcode. It is designed to be an online "any-to-any" video conversion service, based on Amazon Web Services. It is free for non-commercial individual use, but would be possible for Transmission members to pay to transcode using Mux for a fee. It's obviously better for Transmission members to run the same FOSS applications on their own servers without cost, but this may be a good option for some who don't wish to do their own server-side transcoding.

Transcoder/Uploader

How can we make it as easy as possible for a user to transcode to FOSS formats then upload it to the video platform? Conduct research into the development of a desktop transcoder/uploader application that could work locally to encode the file and then upload it to a specified site.

Many web applications that deal with multimedia offer uploader clients to make adding content to the website easier. Flickr Uploadr is one example of this - a user can download and install this program, enter their username and password for their Flickr photo-sharing account and then browse for photos on their computer to upload. They can add metadata to each photo - titles, tags and descriptions - and then click to upload them all as a batch. Thumbnails are created and resizing is done automatically during the process. After clicking upload and waiting for the files to transfer the user can visit the website to see all of their content published on Flickr.

The need for a program like this to upload video is even greater for two reasons. One is the problem with uploading large files via a web form (over http) - if the user's internet connection is disrupted for any reason then the upload fails and must be started all over again.

Secondly - users don't only have to attach their video but transcode it first before they can upload it. Video that originates on DV or HDV tape, or even DVD is far too large to be transferred over the internet, so it must be compressed. We can eliminate this extra step, or make it largely transparent to the user by combining the ability to upload with the ability to transcode to a format and preset determined by the target website. For the user this just means browsing for their file, adding some info and uploading - they don't even have to think about the transcoding part.

Third parties offer clients like this for uploading video to YouTube such as the free uploader by DVDVIDEOSOFT, and the CC Publisher is available to upload video to the Internet Archive. It is important that Transmission members begin to use software such as this to make uploading video to their sites much easier.

EngageMedia looked into the possibilities of creating this kind of application as part of this research, specifying its functional requirements and user experience, prior to discovering the development of such an application by Jan Gerber at v2v. It seems the best way to proceed is to contribute to and support the great work done here already by Jan.

v2v / Transmission Uploader

A key recommendation of this report is to contribute to the development of the v2v transcoder/uploader. This application joins the ability for users to encode to a screening-quality version of Ogg Theora/Vorbis simply with the ability to upload the resultant video via BitTorrent protocols to allow the resumable upload of larger files than is currently the case over http.

The v2v uploader client developed by Jan at v2v uses the BitTorrent protocol to upload Ogg Theora/Vorbis files to a v2v video server. This has advantages in that the BitTorrent protocol is a resumable, fault-tolerant distribution mechanism, compared to a standard web form upload process via HTTP. This desktop GUI application (written in python, and a cross-platform GUI library) allows users to browse for non-ogg video files, transcode them on their own computer using ffmpeg2theora into ogg, then follows the same process as above, that is, a BitTorrent protocol upload.

The uploading process could be extended to allow publishing into certain CMSs eg Plone, Drupal, Wordpress or others - via the use of a configuration panel. Each Transmission member would have the option of implementing their own configuration into the uploader easily and re-distributing it branded as their own uploader, or to release a configuration file that can be inserted into the application in order to customise it to their own CMS. The configuration file could be packaged with the application itself, to be initialised during the installation process.

It is recommended that documentation and promotion of this application be generated as it has great potential to make FOSS codecs more usable by the average person, and will also help to solve the problems of uploading large files via http to Transmission websites, which is the usual method at this stage. It is also recommended that a framework for collaborative development is established through use of a development tracker (such as that currently used by v2v).

Another recommendation is that a collaboration with the CC Publisher (an uploader for archive.org - the Internet Archive) is initiated, whereby joint development can ensure a wider uptake and increased developer-base of this application. The CC Publisher does not currently transcode, nor does it upload via BitTorrent, so there are advantages to CC in working with Transmission on this project.

Functionality - Details

The client must have these functions:

  • transcode to one Ogg Theora/Vorbis preset (as defined in configuration file)
  • ability to add metadata/licenses conforming to the Transmission Metadata Standard to create an entry in the target CMS that does not also need to be updated via the web (create a one-step process)
  • ability to be configured for target CMS - server settings, target folder, username/password - via a configuration file
  • upload via a resumable protocol so upload may continue once network is reconnected after dropout
  • cross-platform - available for easy install on Linux, Mac and Windows

User Experience

This user experience is described for the member of a website belonging to a project that is part of the Transmission network, which has implemented the Transmission Uploader.

  • visit Transmission member website
  • download Tranmission Uploader client via a link on website
  • open Transmission Uploader
  • browse for video file
  • enter metadata as per Transmission Metadata Standard - Title, Description, Tags etc.
  • browse for thumbnail to attach
  • click Upload button
  • enter username and password for website membership
  • video will transcode to Ogg Theora/Vorbis preset - user sees "Transcoding" message with status bar
  • video will upload to website via BitTorrent - user sees "Uploading" message with status bar
  • process finishes with "Upload Successful" message
  • user's default browser is called, to a page on project website showing Video page - as the object or entry has been successfully added to the database

Image:V2vupload.jpg

Screenshot of v2v upload

v2v Upload Downloads and Development

Image:download.jpg Download: http://v2v.cc/~j/V2VUpload.dmg

Image:development.jpg Development: http://trac.v2v.cc/cgi-bin/trac.cgi/wiki

Browser Playback

What software is available for the playback of FOSS video within the browser? Which is the best solution given ongoing changes in technology, and what further development is required to make this solution more viable?

Here we consider the methods available to playback video in the browser that is "progressive download"[2] or "pseudo-streamed" (video that you can play back while it is downloading via http) in addition to streaming[3] via true streaming protocols, as pertains to Ogg and Flash using the CMS-agnostic solution Indytube only. Though live streaming was not really considered part of this research, streaming protocols have their advantages for viewing video-on-demand on the web. Progressive download does not allow for scrubbing through video files (moving the video playhead as you watch the video to allow random access to different sections) and videos must be downloaded fully before you can view the entirety of the piece.

It is possible to use the Darwin streaming server to stream Xvid files but this has not been explored as Ogg seems the better route to take given its use of patent-free technologies, and Flash is a good method to use with open source tools as an alternative, especially while Ogg browser playback is being developed to a more stable level.

We covered the various methods available to handle playback of Ogg Theora/Vorbis including browser plugins, the Cortado Java applet and experimental support for native video playback in the browser itself. We also did some experimental development to extend Indytube to transcode to Ogg, embed Ogg using Cortado and implemented both Flash streaming and Ogg streaming.

Flash Pseudo-Streaming and Browser Playback

The secondary recommendation (which will be explained first to cover Indytube as it stands before looking into its extension for Ogg) is to use the FOSS tools that are presently available to transcode and embed .flv Flash video files. Flash is obviously a proprietary format (utilising a range of proprietary codecs within it) so fits somewhat uncomfortably within this research.

However Flash has the highest level of support amongst web users for any video format, and this cannot be ignored when trying to reach web audiences. This in addition to the fact that stable and transportable code is available to knit FOSS transcoding and embedding software together in the Indytube package means that this is still a good short to medium-term measure for browser playback of video.

Indytube and OS Flash

Indytube is designed to be a simple CMS-agnostic solution for in-browser video playback with asynchronous encoder(s). This is a basic script for re-encoding arbitrary video files to flash video (flv), and then including this video in the browser with a flash video player. It is written in Python and requires the installation of MEncoder to do the transcoding, FLVTool2 to write some metadata into the Flash video file, the Cheetah template library for Python and a Twisted networking framework to scan a directory files for new videos to encode. It uses the Flowplayer Flash video player to display and control video on the webpage.

Indytube (written by John Duda and expanded by Andy Nicholson of Engag