Monthly Archives: June 2010

First options for WebM Compression

As an addendum to my previous post, there are now two free options for getting your files compressed into the aforementioned WebM container (and both work on Mac and PC). In terms of viewing the final product on a website, someone with a greater degree of webpage/server knowledge will have to take that one up. For the time being though, if you download the most recent version of VLC, you can play the files locally (with varying levels of success).

The first, and I think more successful, of the two options is the Miro Video Converter (www.mirovideoconverter.com). It is available for both Mac and PC, though it looks like it might have been intended as a Mac application first. MVC is free, open-source, and is on version 2.2. An added bonus is that the application is very simple to use and will perform a number of ‘hands-off’ conversions (MP4, Theora, WebM) as well as conversions designed for portable/mobile devices (Android, PSP, iPhone, iPod, iPad). The GUI is extremely simple, using a drag & drop + drop-down menu design. The actual WebM conversion left me less than impressed in most areas other than size. I was able to take a 2.1 GB uncompressed HD video stream down to a 2.8 MB .webm file. The motion estimation was decent, though with lots of movement the file quickly pixellated. The color was also slightly dull as compared to a similarly compressed H.264 file (2100 kbps, Medium Quality, Automatic Keyframes), with colors in the red spectrum being particularly muted (though as Joe noticed in an older post, H.264 tends to boost colors, so maybe this is the effect that I was experiencing when comparing side by side).

The second is Sorenson Squish (www.sorensonmedia.com/video-content), which uses a web-based Java app in tandem with your computer’s processing power to compress files into a number of different codecs/containers, of which WebM is the only one allowed in the free trial. The GUI is similarly accessible, and anyone who is able to use in-browser uploading systems like those employed by Flickr, YouTube, or even blogs will have no trouble using Sorenson Squish. The Java applet runs in most browsers (not Minefield, but regular Firefox, IE, Chrome, and Safari work fine), compresses the source file on your machine, and uploads only the compressed file, which takes much less time (and allows you to use a higher quality source file) than a service like Zamzar. You can choose to save a copy of the file on your local machine as well. The qualms with the resulting file are similar to MVC, but moreso, due to the fact that one ends up with files that run at around 425 kbps, and as a result look very poor. You also have to register for an account to use Squish, though doing so gives you 1 GB of online storage and lets you see what your videos look like when played inside a browser. I believe a paid upgrade is necessary to unlock some of the fine tuning features.

Both of these applications, as I note in the earlier post, suffer from too little user-control. I also think that the VP8 video codec is not quite as robust as Google/On2 made it out to be. I still think H.264 looks better, though VP8 is still in its infancy and very well may, due to its open code, surpass H.264′s longstanding ascendancy in the world of video codecs. I can see this occurring especially in ratios of quality:size. The Vorbis audio codec was also intermittent in its functionality, a few times putting files out that only had a loud hiss for an audio track. In any case, it is still exciting to see new technologies embracing WebM, and I am sure that the manifestation/practical side of the equation will improve, especially as the demand for files packaged in WebM increases.

The WebM Project: Open Web Media

The picture will become clear shortly – Pam recently clued me in to an interesting development in the area of ‘open video formats’, known as WebM format. The format is actually composed of (1) A video stream compressed with the On2 VP8 video codec (2) An audio stream compressed with the Vorbis audio codec (3) The aforementioned elements wrapped up in the WebM container, which is relatively similar to the Matroska media container (you may have seen this as .mkv, WebM is actually a subset of this open-source container). Now all of this may sound foreign to those who do not spend their days mired in codecs, so allow me to explain a bit more. This explanation will also allow me to outline some of the reasons as to why this WebM business is fairly exciting for end-users and compression junkies like myself alike.

To begin, let’s talk containers. The best way to think of a container (aka ‘wrapper’) is to think of it like a…container – tupperware, pyrex, plastic, etc. A container can hold a variety of items. You could put leftovers, spices, fresh fruit, liquids, salad dressing, small pieces of wood, rocks, used motor oil, and even mixtures of these items into it. The point to be taken here is that containers are flexible. The same is true of media containers – they can hold one (i.e. still images, audio) type of media within them, but can also hold a mixture (i.e. audio + video). You most likely use containers any time you open a media file, either on your computer or online. Examples are AIFF, WAV (audio only); TIFF (images only); MOV, AVI, MPEG-2, 3GP (combination of audio/video and often other information such as subtitles and metadata). Hence, when you open a .mov (Quicktime Movie Container), you are actually telling Quicktime to read the data within the .mov container, which in theory (not in practice) could be encoded in a variety of ways. This is where containers get to be tricky, and where you very well may have run in to some difficulty in your experience with the files. You can have a perfectly good .mov file, and when you decide to open it, it may even launch QT for you. However, the video and audio streams within the container may very well have been encoded with codecs that have not been loaded onto your computer and hence Quicktime will be unable to decode the files, resulting in some type of error (perhaps imagine getting a box full of spices from India, labeled in Sanskrit – you might be able to identify that you had spices in your hand, but you’d have a heck of a time organizing and actually using any of them in your cooking unless you found someone to be your ‘codec’; a person who could translate the labels from Sanskrit into English). Add to this difficulty the fact that most containers are proprietary and you have a recipe for disastrous video playback problems, which is actually what occurs fairly frequently. Someone might send you a perfectly harmless looking Quicktime file, and next thing you know, you have embarked on a labyrinthine quest through Apple’s support website, Google, and message boards seeking a missing codec that your program has alerted you to (but for some reason rarely helps you find). One good example of some difficulty with streaming containers is our forays into hinted Quicktime streams, which had limited success due to the wide variety of codecs which could be ‘contained’ within the hinted wrapper. So, enter the open video format.

Without worrying a great deal about the video and audio codecs (know that they are both open-source and are both very good, rivaling the long ascendant H.264 as well as MP3 or AAC), the container that WebM has created is first and foremost extremely narrow. So narrow that in fact, a WebM formatted file can only be defined as one that has the video track encoded with On2 VP8 (A Google sponsored open-source video codec), and audio with the Vorbis audio codec (aka .ogg file, another open-source codec). Hence, the reason as to why WebM is a subset of the Matroska (.mkv) container – Matroska allows for a few more options to be contained within. So, WebM is blurring the boundary between codec and container, in that to some extent a container is supposed to hold lots of different materials ( keeping with my ‘spices theme’ – it would be like labeling a container ‘cinnamon-sugar’ in your spice cabinet, with the intent that only those elements be used to fill it). The reason behind this narrow definition is so that you don’t run into the perennial problem of having to download new codecs, or update 50 different codecs to play a video. Additionally, the WebM container is made for use on the internet – ideally in streaming and is thus designed for integration into a browser. In fact, Youtube is kind of secretly using the WebM container and will allow you to see it for yourself – go to www.youtube.com/html5, and near the bottom, enroll in the html5 test. You will need to download a test version of your browser, Firefox has one as does Chrome, and when you search for videos, append ‘&webm=1′ to the url. This will allow you to watch videos in this new, open, format. I found them to look a bit better than the typical YouTube format, likely due to the fact that VP8 is an excellent codec, arguably better than H.264. You can also play files in this container locally using VLC, that Swiss-army knife of players.

Ideally, one would be able to download a patch for the VP8/Vorbis audio combo, start churning out videos in the format, and be uploading amazing-looking streaming videos in no time. Unfortunately, we’ll have to wait a bit, especially Mac users. Currently, there is only a integration for ffmpeg, which requires you to encode using terminal commands. The site has some DirectShow filters which make it usable for those running a Windows Media workflow on a PC and will allow you to try and build the codec from the ground up, but those are for the most part outside the realm of even an intermediate codec junkie. One other minus is that WebM/VP8 takes a good deal of fine-tuning out of your hands – perhaps for some, not having to worry about key-framing, B-frames, VBR vs. CBR, and aspect ratio sounds like a dream come true; however, the control-freak compression-tweaker inside me screams out for some more user input here. However, if the trade-off is less codec-based headaches, I will take it. So, as it is a very new release, we must keep an eye on this developing format, especially as it is being tested on YouTube. As of now, there are a few programs which have WebM compression built-in, the most notable of which is Sorenson Squish. There is no support for playback on portable devices, but there has been some talk of integration with the Android in the near future, and Kaltura HTML5 Media Library offers some support for those wishing to host the files.

In the end, WebM holds great promise for taking another step towards a nearly universal video format for use on the internet, and could prove worth waiting a bit for as we at Yale’s ITG seek new solutions for streaming videos in a format that will create the fewest complications for our end-users.

www.webmproject.org

Photo from Wikimedia Commons (http://commons.wikimedia.org/wiki/File:Spices_22078028.jpg)

Just Take Those Old Recordings Off The Shelf

A request came in to assist a faculty member converting analog audio from a mini cassette tape recorder into digital audio format (mp3 specifically). The faculty member is a Mac user, so my task was to find the easiest method for the faculty to perform the capture process.* Knowing that the faculty member had QuickTime Pro 7 and used it frequently for editing movie files, I thought I would look into the options of importing audio files. I also decided to look into capturing with Audacity which is a powerful (freeware) program. Here are the steps for capturing and importing an audio file from an analog recorder in QuickTime 7 Pro:

  • Take the recorder and plug in a male-to-male 3.5mm audio cable from the “ear” jack of the recorder to the “mic” jack of the Mac.
  • On the Mac go to System Preferences > Sound and verify the “Line in” setting is set to “Built-in Input” under the Type column.
  • Launch QuickTime Player 7 Pro and select “Preferences” from under the QuickTime Player 7 menu.
  • Click the “Recording” video camera icon and select “Built-in Input: Line In” from the Microphone dropdown menu.
  • Close the Preferences window.
  • Select “New Audio Recording” under the File menu.
  • When the “Audio Recording” window opens, press the red record button to begin capturing audio.
  • On the voice recorder start playing the queued audio file to begin importing the audio to the computer.
  • The user will be able to hear the audio come through the QuickTime audio recording program and can stop the import at any time by clicking the black stop button.
  • The newly created audio file will be automatically saved to the desktop of the computer with the naming convention of “Audio.mov”. Each subsequent file will have a continuous numbers following “Audio” starting with “1”, e.g., “Audio1.mov”.
  • Select “Export” from the File menu to save the .mov file to an .aiff audio file or Windows Media (.wmv) file.
  • To convert the file into MP3 format, import the file into iTunes and use the “Create MP3 Version” option found under the Advanced menu.

As you can see, the one disadvantage is that QuickTime will not save the file natively into MP3 format and requires using iTunes (or another conversion program) to export the .aiff or .wmv file. One very nice feature of QuickTime, however, is the ability to hear the audio file as it is being captured to help monitor the process.

The second application I tested was Audacity which has a couple advantages over QuickTime. Here are the steps for Audacity:

  • Download and install Audacity
  • Download and install the LAME MP3 encoder
  • Plug in a male-to-male 3.5mm audio cable from the “ear” jack of the voice recorder to the “mic” jack of the Mac.
  • On the Mac go to System Preferences > Sound and verify the “Line in” setting is set to “Built-in Input” under the Type column.
  • Launch Audacity and select “New” under the File menu if the Audacity application window does not appear.
  • Adjust the microphone input level by using the slider bar.
  • Click the red record button to begin capturing the audio from the recorder.
  • Start playback on the voice recorder.
  • Click the yellow stop button when the capture is complete.
  • Select “Export” from the File menu.
  • Title the file in the “Save As:” field, choose where to save the file, and select the audio format to be saved, e.g., mp3, wav, etc.
  • If prompted for the LAME MP3 dylib file it is located in this directory:
    /usr/local/lib/audacity/libmp3lame.dylib
  • Fill in the meta data if desired when the “Edit Metadata” window appears and click OK to save.

The biggest advantage Audacity has is the ability to save the audio file directly in MP3 format eliminating any post conversion. Audacity also gives the option to include metadata with the file upon saving the file which may be an advantage to the user who is interested in archival purposes. The one disadvantage of Audacity is that it does not have the option (at least none that I could find) to hear the audio as it is being captured from the recorder. Thus, the user may need to first determine time codes before starting the capturing process if the tape contains multiple recording sessions.

To conclude, both programs are capable of capturing analog audio with minimal effort for those wanting to archive audio files to a digital format.

Additional Resources (including other audio applications):

Mac
http://lifehacker.com/222394/alpha-geek-how-to-digitize-cassette-tapes

http://www.howtoguides365.com/how-to/convert-tapes-cd/

http://www.ehow.com/how_5827398_convert-analog-tapes-ipod.html

http://www.bulletsandbones.com/GB/FAQPages/RecordCassette.html

http://www.apple.com/quicktime/tutorials/podcasting.html

http://www.apple.com/quicktime/tutorials/podcasting_win.html

PC

http://coeexchange.com/?p=1123

http://www.howtoguides365.com/how-to/convert-tapes-cd/

http://www.microsoft.com/windows/windowsmedia/knowledgecenter/howto/FromCassettetoComputer_StepByStep.aspx

http://www.thomas.edu/av/cassettetowma.htm

*Although the above instructions are specifically for Mac users, the same programs can be used for capturing analog audio files on a PC.