Resources on Open Video Files
Making the Case for Open Video
In the context of this course, open video is a reference the use of Free Software tools for creating and distributing video and the adoption of freely-licensed formats, or at least formats using open standards.
Free software tools have a long history; digital media is unthinkable without open formats, protocols, and standards. And the more complex our creative work becomes, the more important questions of interoperability: as long as media is stored in an open format, there will be a way to access it.
To promote open video, is it important to make material available in free and open formats. However, practically you may have to also provide versions in more restrictive formats like h264 to reach users on closed platforms like iOS. This is because vendors prevent their users from using free formats. There are pragmatic reasons preventing video developers from taking a purist approach to video distribution.
Whenever possible, it is good to pressure vendors to adopt the use of free and open formats. We aim to support free and open standards by the creation of this course and other materials. While h264 may not we free of restrictions we can use free tools to take it apart, create it and deepen our knowledge of the subject in general.
Other tools for creating Open Video Files
There are many tools for creating and transcoding files to open, patent free standards. Here are a few of recommendations for different situations:
HandBrake was created to convert DVD discs into smaller video files suitable for viewing and sharing on the Internet. This is called DVD ripping. HandBrake is popular and available on many different operating systems. There are now more features including transcoding, which means changing one type for video file into another. This is very useful for video makers wanting to make their video projects small enough to fit on a CD or share online. You can also create video files with subtitles burned into them or specialised mkv files (matroska format) which can contain more than one subtitle file at one time allowing viewers to select their language in their video playing application. It can be used for converting a DVD to a video file with the option to include multiple subtitles in different languages. There are good help files online. 1
Screen casting software lets you record what is happening on the screen of your computer as a video file. This can be used together with an audio narration to create useful video guides. Windows has at least two good open source options; Cam Studio and Webinaria. They allow you to record audio from your microphone or choose another sound source. You can select the whole screen or just part of it to be recorded. Record My Desktop offers the same functionality in Linux and you can record screencasts in Quick Time player on Mac.
If you want to try the process using an online service instead of local software, then you can try screenr.com or screen-o-matic which allow you to do this for free. They host the video you create and you can also download it for offline use.
Avidemux is available for Linux, BSD, Microsoft Windows and Mac OS X and is designed for simple cutting, filtering and encoding tasks of video files. It supports many file types, including AVI, DVD compatible MPEG files and MP4. There is a manuals for use on FLOSS Manuals. 2
More detailed information on video files
Video Containers: You may think of video files as “AVI files” or “MP4 files.” In reality, “AVI” and “MP4” are just container formats. Just like a ZIP file can contain any sort of file within it, video container formats only define how to store things within them, not what kinds of data are stored. (It’s a little more complicated than that, because not all video streams are compatible with all container formats, but never mind that for now.)
A video file usually contains multiple tracks — a video track (without audio), one or more audio tracks (without video) and some containers even contains one or more subtitletracks or picture tracks. Tracks are usually interrelated. An audio track contains markers within it to help synchronize the audio with the video. Individual tracks can have metadata, such as the aspect ratio of a video track, or the language of an audio track. Containers can also have metadata, such as the title of the video itself, cover art for the video, episode numbers (for television shows), and so on.
There are lots of video container formats. Some of the most popular include
- MPEG 4, usually with an
.m4vextension. The MPEG 4 container is based on Apple’s older QuickTime container (
.mov). Movie trailers on Apple’s website still use the older QuickTime container, but movies that you rent from iTunes are delivered in an MPEG 4 container.
- Flash Video, usually with an
.flvextension. Flash Video is, unsurprisingly, used by Adobe Flash. Prior to Flash 220.127.116.11 (a.k.a. Flash Player 9 Update 3), this was the only container format that Flash supported. More recent versions of Flash also support the MPEG 4 container.
- Ogg, usually with an
.ogvextension. Ogg is an open standard, open source–friendly, and unencumbered by any known patents. Firefox 3.5, Chrome 4, and Opera 10.5 support — natively, without platform-specific plugins — the Ogg container format, Ogg video (called “Theora”), and Ogg audio (called “Vorbis”). On the desktop, Ogg is supported out-of-the-box by all major Linux distributions, and you can use it on Mac and Windows by installing the QuickTime components or DirectShow filters, respectively. It is also playable with the excellent VLC on all platforms.
- WebM is a new container format. It is technically similar to another format, called Matroska. WebM was announced in May, 2010. It is designed to be used exclusively with the VP8 video codec and Vorbis audio codec. (More on these in a minute.) It is supported natively, without platform-specific plugins, in the latest versions of Chromium, Google Chrome, Mozilla Firefox, and Opera. Adobe has also announced that a future version of Flash will support WebM video.
- Audio Video Interleave, usually with an
.aviextension. The AVI container format was invented by Microsoft in a simpler time, when the fact that computers could play video at all was considered pretty amazing. It does not officially support features of more recent container formats like embedded metadata. It does not even officially support most of the modern video and audio codecs in use today. Over time, companies have tried to extend it in generally incompatible ways to support this or that, and it is still the default container format for popular encoders such as MEncoder.
Video Codecs: When you talk about “watching a video,” you’re probably talking about a combination of one video stream and one audio stream. But you don’t have two different files; you just have “the video.” Maybe it’s an AVI file, or an MP4 file. These are just container formats, like a ZIP file that contains multiple kinds of files within it. The container format defines how to store the video and audio streams in a single file.
When you “watch a video,” your video player is doing at least three things at once:
- Interpreting the container format to find out which video and audio tracks are available, and how they are stored within the file so that it can find the data it needs to decode next
- Decoding the video stream and displaying a series of images on the screen
- Decoding the audio stream and sending the sound to your speakers
A video codec is an algorithm by which a video stream is encoded, i.e. it specifies how to do #2 above. (The word “codec” is a portmanteau, a combination of the words “coder” and “decoder.”) Your video player decodes the video stream according to the video codec, then displays a series of images, or “frames,” on the screen. Most modern video codecs use all sorts of tricks to minimize the amount of information required to display one frame after the next. For example, instead of storing each individual frame (like a screenshot), they will only store the differences between frames. Most videos don’t actually change all that much from one frame to the next, so this allows for high compression rates, which results in smaller file sizes.
There are lossy and lossless video codecs. Lossless video is much too big to be useful on the web, so I’ll concentrate on lossy codecs. A lossy video codec means that information is being irretrievably lost during encoding. Like copying an audio cassette tape, you’re losing information about the source video, and degrading the quality, every time you encode. Instead of the “hiss” of an audio cassette, a re-re-re-encoded video may look blocky, especially during scenes with a lot of motion. (Actually, this can happen even if you encode straight from the original source, if you choose a poor video codec or pass it the wrong set of parameters.) On the bright side, lossy video codecs can offer amazing compression rates by smoothing over blockiness during playback, to make the loss less noticeable to the human eye.
Open Video codecs: Free formats like Ogg Theora or WebM don't have licensing restrictions. Where proprietary codecs charge licensing fees for use of their codecs, open video codecs allow anyone to freely create tools and distribute content as they like. An open specification should allow anyone to implement their own player, encoder or other tools to encode or decode videos in a free codec. It is important that this can be done without requiring a special contract or patent agreement.
While H.264 is a big step forward compared to proprietary codecs owned by a single vendor like Real or Microsoft, it still requires anyone implementing an encoder or decoder and even anyone distributing a video in H.264 offline to pay license fees for patents covering algorithms used in the format to do so. For videos distributed on the web for free this has been removed but if you sell or distribute videos on disks or broadcast you need to pay up.
For more info you can read this article about The H.264 Licensing Labyrinth
- The section 'More detailed information on video files' and guide to encoding using firefogg and Miro encoder is adapted from 'Dive into HTML5' by Mark Pilgrim.