Category Archives: Digital Media

Xiph file extensions and MIME types

Today we nailed down a policy for Xiph on what file extensions and mime types we recommend using for Xiph technology.

Basically, we have introduced some new file extensions to allow applications to more easily identify whether they are dealing with audio (.oga) or video (.ogv) files, or some random multiplexed codecs inside Ogg (.ogx).

We recognized the fact that existing Ogg Vorbis hardware players will need to continue to work with whatever scheme we come up and therefore decided to dedicate the extension .ogg to Ogg Vorbis I files – and deprecate all other use of it. That includes the deprecation of the use of Ogg Theora and Ogg Flac with this extension. In future, Ogg Theora files should have a .ogv extension and Ogg Flac a .oga extension. (For further details, check out the wiki page.)

MIME types will be changed accordingly and the RFCs required to register them will start to be authored now.

None of this has been written in stone yet though and there is still time to change this policy if it doesn’t make sense. So if you have any strong objections, speak up now!

Extracting keyframes from Ogg Theora

As I was playing with Ogg Theora lots for LCA, I needed to script the extraction of keyframes from Ogg Theora files.

There’s a manual way to achieve this through totem: you just use ctrl-s to capture a frame. However, I didn’t want to do this for every one of the hundreds of videos that we captured.

Here’s a script that I found somewhere and might work for you, but it didn’t work for me:

dumpvideo foo.ogg | yuv2ppm | pnmsplit - image-%d.ppm; for file in image-*.ppm; do convert $file `basename $file .ppm`.jpeg; done

What worked for me in the end was a nice and simple call to mplayer:

mplayer -ss 120 -frames 1 -vo jpeg $file

New Vquence Website

I’m excited to present the all new http://www.vquence.com/ website.

As you may know, Vquence is the online video startup that Chris Gilbey and I have created over the past months. We now have a great team of people working with us.

We’ve worked hard on our new Web presence to get a nice modern logo and Web design, to produce some good pictures to describe what we actually do, and to give a sneak preview of our technology.

Go check out the video on the front page. It’s a flash player (sorry, not Annodex yet) and has some awesome functionality hidden inside – thanks to Peter Withers, Michael Dale and Jamie Madden. Click on the video slices as they are playing. And notice how all the full videos are hosted on different video hosting sites (sorry to all those hosting providers who missed out – we simply haven’t got enough people working for us yet ;).

Thanks to Julian Frumar and Alister Walters for all the great design work, to Chris Gilbey and Richard McKinnon for the copy, and to Matt Moor and John Ferlito for getting the hosting under control with some cool scripts to be used for future rollouts of our final product.

Have fun!

Video hosting and autoplay

This week, we’ve been working hard towards getting the corporate website for my new company Vquence up. As part of that, we shot videos of most of our key people in an attempt to “eat our own dogfood”: show off our slicecasting technology, which comes as embeddable vquences (video sequences). The idea is to extract slices from a set of videos, collate them together like highlights, and make them clickable – so people can click through to the full length videos.

On our website, we decided to show the vquence with a clickthrough to full-length videos hosted at different video hosting sites, including not just the popular YouTube and Google video sites, but also sites such as Metacafe, Guba, iFilm, blip.tv, Grouper, Gofish, VSocial or DailyMotion.

On click-through, we wanted to have the embedded videos from those hosting sites to start playback directly without enforcing people to make another click on the image. This has turned out as quite a challenge.

Not every video hosting site that supports embedding also supports autoplay. Here’s what I found.

The following sites provide an autoplay parameter for their embed tags (only key components shown in the code):

  • youtube:
    <embed src="http://www.youtube.com/v/xxxxxx&autoplay=1" type="application/x-shockwave-flash" />
  • google video:
    <embed type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=-xxxxxxx&hl=en-AU" FlashVars="autoPlay=true&playerMode=embedded"/>
  • metacafe:
    <embed src="http://www.metacafe.com/fplayer/xxxx/title_yyy.swf?playerVars=autoPlay=yes" type="application/x-shockwave-flash"/>
  • blip.tv:
    <embed src="http://blip.tv/scripts/flash/blipplayer.swf?autoStart=true &file=http://blip.tv/file/get/xxxxxx.flv%3Fsource%3D3" type="application/x-shockwave-flash" />
  • DailyMotion:
    <embed src="http://www.dailymotion.com/flash/flvplayer.swf?xxxxxx" flashvars="url=http%3A%2F%2Fwww.dailymotion.com%2Fget%2F14%2F320x240 %2Fflv%2Fxxxx.flv%3Fkey%3Dxxxxxx.flv&duration=68&autoStart=1" type="application/x-shockwave-flash"/>
  • Grouper:
    <embed src="http://grouper.com/mtg/mtgPlayer.swf?v=1.7" FlashVars="ap=1&mu=0&rf=-1&vfver=8&extid=-1&extsite=-1&ml=xxxxxx" type="application/x-shockwave-flash"/>
  • GoFish:
    <embed src="http://www.gofish.com/player/fwplayer.swf" type="application/x-shockwave-flash" FlashVars="&loc=blog&gf=true&ns=false&fs=false&gfid=xxxxxx&c=grey
    &autoPlay=true&getAd=false&wm=false&ct=true&tb=false&svr=www.gofish.com:80">
  • VSocial:
    <embed src="http://static.vsocial.com/flash/ups.swf?d=yyyy&a=1&s=xxxxxx"/> – be warned though that their player takes a third for menu stuff

I know that both Guba and iFilm have an autoplay feature since the video on their websites plays without the need for an additional activation, but I couldn’t find out what parameters were needed or which other flash player I would need to use.

Revver simply refuses to support this feature reasoning that nobody would want a video to play back automatically without the need for an interaction. Guys – come on! Nowadays videos live on their own Web page. A person that is navigating to that Webpage and knows what they are navigating to shouldn’t really have to jump an additional hurdle just to get your videos to play!

BTW: I was unable to manage to upload a video to Metacafe from my Mac inside Firefox, although I tried for 3 days. 🙁
– worked now!

I do not claim to have tested all the video hosting sites out there. But these are a good selection and my current state of experience.

Ah yes: go and enjoy our new site – http://www.vquence.com/ – and don’t forget to check out the videos at the bottom of the front page.

The Alcatel-Lucent against Microsoft case

With a court ruling of $1.5bn (see http://news.com.com/2100-1027_3-6161760.html), the Alcatel-Lucent vs Microsoft case is rather amazing.

It is particularly amazing since to everyone who has licensed from the MP3 licensing consortium was held under the impression that with that license they are off the hook for all patents related to MP3.

Well, now that MP3 is coming of age and any related patents will be running out fairly soon, Alcatel-Lucent has decided to take a share of the cake – and a rather large one.

What is worrying is that through this step, all companies that are licensing “standardized” codecs and thought that getting a license through the standards body would cover all possible infringement, now have to fear that there is always another hidden patent somewhere, which somebody can pull out of the hat at any time to sue them.

Doesn’t that put the aim of standardization on its head?

To me it just confirms that standardized technology should be technology that is not covered by patents and that the standards body has to make sure that such patents don’t exist.

Unfortunately, ISO/MPEG – and other standardisation bodies – have worked in the exact opposite direction until now: everyone who participated in MPEG made sure to get as many patents registered with MPEG as possible so as to get as large a share of the licensing payments as possible.

The only solution out of this mess is to create media codecs that are not infringing patents. Luckily, Xiphophorus is doing exactly that. So, this should encourage media companies to use Ogg Vorbis and Ogg Theora.

And if these codecs are too “old” for you, expect the new Dirac codec from the BBC to shake up things a lot! Open source, open standard, and the latest wavelet technology – should be un-beatable!

FOMS – the birth of a new open media forum

The first FOMS (Foundations of Open Media Software) workshop is over and it was an overwhelming success – more than ever expected! And wow – we have videos of it, too – thanks to Ralph Giles and Thomas Vander Stichele.

The goal of FOMS was to bring a diverse group of people from all around the planet who are all working on open media software together for the first time so they could get to know each other, exchange ideas, and generally address the things that annoy us all with open media technologies.

Strategically placing FOMS in the week before LCA was a great idea: not only would some of the developers attend LCA anyway and thus would not need to use up extra travel time, but also would LCA provide opportunities for the newly forged relationships to flourish and create code.

A new forum for discussion was created and since the community has committed to achieving a set of community goals, we expect it will have some basic effect on the usability of open media software over time.

And yes … all participants are up for a repetition of FOMS – possibly as a precursor to other FLOSS conferences overseas, but at a minimum again at next year’s LCA in Melbourne. Let’s rock it!

All LCA video online

I’ve just fixed some missing links on the LCA video site, so all the talks are now online – yay!

It’s been an interesting experience, which is still not finished. I’m working on collecting all the slides for the talks and putting them into a common format (probably both pdf and odf). Jean-Marc is still working on transcoding the videos to speex (speech-only). And then there are all the annotations that we received through the irc channel, which I’d like to publish onto a cmmlwiki together with the videos.

It will all come in good time. The hardest and most important task were the videos.

I think we found a good formula this year to make the videos happen. DV tapes are impossible to handle. Recording to DVD provides a good backup straight away and a simple storage means. It could be further simplified if recording was done straight to disk and everything handled as files only, which is the way in which the DebConfs were done. But then – I am a big fan of having physical, high-quality backups.

Here’s a little FAQ for those annoying recurring questions:

  1. Why are there not all miniconf talks present?
    We did not aim to record Monday and Tuesday, but rather used them as testing days for the equipment and the team. Therefore, having any video at all from the miniconfs is a bonys.
  2. The sound is rather quiet on some videos – can you fix that?
    Unfortunately, some days came out really quiet and it will take a lot of post-processing to fix this. We don’t have the time and people to undertake this. So, just turn up your speakers, the volume on your desktop and on the application.
  3. What software did you use to transcode and publish?
    We are only publishing the video in the open and free Ogg Theora format. Since we recorded straight to DVD, all we had to do thus was to rip the DVDs using "vobcopy" (with the “-l” option in order to get all the pieces on the DVD stiched together). If the resulting vob file consisted of multiple sessions, then the timing restarted in the middle which confuses transcoding. So, we used "avidemux" to recreate a correct MPEG_TS (transport stream). The resulting vob file was transcoded to Ogg Theora using a ffmpeg2theora script and finally uploaded to the server using "scp" with the “-l” option. On a fast machine and a fast connection, each of these steps is faster than realtime (i.e. takes less time than the duration of the video). My slowest process was the upload, which I had to do over night in batch from my home ADSL connection.
  4. How much space do the published Ogg Theora files use?
    Using the “-p preview” option of ffmpeg2theora provides you with 384×288 video at 25 fps for PAL recordings. The size in bytes varies a lot between the files. Our largest file is about 257MB and is from a 1:23 hrs long talk. Our shortest file is about 10MB and is from a 6 min long talk. Overall we’re using 11.9GB of disk space for 141 files. That comprises only the Ogg Theora video files. The vob files are a bit more than 10 times the size of a Ogg Theora file, so we don’t keep them on the server.

Recommending LUG video setup

I’ve just been asked to give a recommendation on the kind of setup a LUG would require to do regular video recordings. Here is the email reply that I wrote – and now thought I should share through my blog.

The tech gear that is required to record LUG meetings depends on the amount of effort that you want to put in and the type of rooms you are recording.

I would certainly recommend an expensive tripod – it needs to be heavy to be stable and smooth for panning and tilting. Trust me: it makes a world of a difference!

Then, you will need a DV camera – consumer-quality will be plenty. Don’t go for a DVD camera – their recording capacity is 30 min only.
They are thus good to capture random walk-around footage, but not talks.

Finally, hook up a headphone to your camera to be able to hear what it records.

This is the baseline equipment, really. Record to DV tapes, later hook up the camera to your computer, use Kino to rip and edit (mostly trim front and back), use ffmpeg2theora to transcode, and you’re done.

The only problem with this equipment is that you will not get good sound unless you are able to hook up to a PA output. Here is where the complexity starts, since most theatres don’t provide you with such output. All the art in video production is in the audio.

A first step to improving the sound is by using lapel mics (make sure your camera can take mic input). These give you the speaker in perfect sound quality.

What you may still be worrying about is the questions and the laptop sound.

To get the questions, you need wireless handheld mics. But now you have two sound sources that need mixing. Well, the cheapest approach to that is a Beachtek XLR adapter, which you screw under your camera onto the tripod and takes 2 inputs to mix down to one with mic output.

If you’re really keen and want to get the laptop sound, too, you end up with three inputs and now you need a proper mixer to take all the signals in.

Another improvement to make is the medium onto which you record. DV tapes are rather hard to handle and take ages to rip. We wanted a simpler process and thus bought some consumer DVD recorders that we’d hook up to the firewire output of the cameras to do recording.

Of course you want to monitor that the recording is actually happening, so we also bought some small black/white TVs, which we got from Toys’R’US for under $20.

You can throw the DVDs into any computer and transcode from there. They are also a good back-up medium. And they require lots less storage than DV tapes and are much easier to organise.

And this is my preferred future setup for SLUG: DV camera, tripod, lapel mic, DVD recorder, TV.

LCA Video Team

I keep getting asked how we did the technical setup, so let me share it here.

With Video at LCA, this year, we did not want a repetition of the more experimental setups of previous years. We set out with only one goal: to publish good quality video during LCA to increase the number of talks that people will be able to look at and discuss. Our only aim is the Ogg Theora format since it is the only open video codec and what would a conference on FLOSS be if we didn’t stick to our ideals even with codecs!

One consequence of our narrow goal is that you will not find any live video streaming at LCA in 2007. The reasoning behind this is that we reach maybe a few hundred people with streaming, but that publishing reaches millions. Another reason is that previous years of video recordings at LCA have mostly had problems with one particular part in this picture: computers. So, we decided to take the computer out of the recording process and only use it in the transcoding, uploading and publishing part of the conference.

We are therefore recording from the DV cameras straight to DVD, which provides us with a physical backup as well as a quick way to get the data into the computer (in comparison to using DV tapes). Though this means that we use a non-free compression format in the middle of our process, it makes it a lot less error-prone. We’re waiting for the day when we can replace our camera – DVD recorder setup with Ogg Theora recording hard-disk cameras!

But the technical part of the video recordings is only one part of the picture. If you want good quality footage, you have to put people behind the cameras at all times. Speakers do weird things and a recording of slides with voice-over is not a very sensible video recording of conference talks. You really require a minimum of 2 people per lecture hall to cover the semi-professional setup that was required for the Mathews theatres: one looking after the audio and the other after the video, with a bit of slack time to give each other a break.

In parallel to the camera crews, we have a transcoding and upload team, which constantly receives the DVDs (and the DV tape backups) from the recording rooms. You also need stand-by people for relief. The upload process involves editing of the start and end points of videos, then a transcode to Ogg Theora and an upload to a local file server at the conference. This video gets mirrored to a Linux Australia Server and published into the conference Wiki through an automatic script.

We are very lucky to have a competent and reliable A/V team of volunteers at LCA 2007 who give up their opportunities to attend the conference for the greater good of all of us. Each team member covers all the days and it takes a lot of dedication to be up in the morning before everyone else (and possible after a hard night’s partying) and working a full day behind the camera or the computer. One of the team members even spent his birthday behind the camera!

I’d like to thank everyone on the A/V Team (in no particular order):

  • Timothy Terriberry,
  • James Courtier-Dutton,
  • Michael Dale,
  • Holger Levsen,
  • Nick Seow,
  • Sridhar Dhanapalan,
  • Chris Deigan,
  • Jeremy Apthorp,
  • Andrew Sinclair,
  • Andreas Fischer,
  • Adam Nelson,
  • Ryan Vernon, and
  • Ken Wilson.

In addition, the networking people have worked hard to make the uploading and publishing process as smooth as possible – I’d like to thank in particular John Ferlito and Matt Moor for their hard work.

It was a great experience to work with such a large team in such a professional setup where we managed to overcome many technical and human challenges and get the first video published even during LCA!