Convert LF videos to an open codec!
During the Linux Foundation's Collaboration Summit back in April we had many of the keynote and panel sessions as well as several interviews filmed with the intention of posting them online.
We had asked the third party company we were working with to provide both completely open OGG and mostly open Flash FLV formats as the final product. Unfortunately, they did not have the in house skills to produce the open OGG format.
In the interest of getting the video's out to the public sooner rather than later we went ahead and published the FLV files in the LF Video Gallery. Youtube for better or worse has mad FLV the de facto standard for online video. Needless to say we have gotten many complaints about our lack of an open codec version of the videos like here and here.
First, let me say that audio and video codecs are not my area of expertise. So before you flame me for my ignorance I have beaten you to the punch. Based on a few posts like this one: Open Codecs it looks like OGG with the Theora video codec and the Vorbis audio codec is the standard open video format to work with.
The obvious next step is to convert the files to OGG our selves, even though video is not an area of expertise. The LWN posts helpfully pointed out:
ffmpeg -i foo.flv -vcodec libtheora -acodec libvorbis foo.ogg
Oh, if it was only that easy. First, I have the original source files which turn out to be in the proprietary format, DVCPRO HD. There is currently a bleeding edge patch for DVCPRO in ffmpeg that no one has seemed to get working yet. OK, so I can understand not having a particular closed codec completely covered.
Second option, I have tried to convert the FLV's. This is not the best option as we are going from a compressed version to another compressed version. This should work because FLV is relatively open. Ah, but no.
On several Ubuntu versions executing:
ffmpeg -i foo.flv -vcodec libtheora -acodec libvorbis foo.ogg
I get a segmentation fault:
FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al.
configuration: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-libvorbis --enable-libtheora --enable-libogg --enable-libgsm --enable-dc1394 --disable-debug --enable-shared --prefix=/usr
libavutil version: 1d.49.3.0
libavcodec version: 1d.51.38.0
libavformat version: 1d.51.10.0
built on Mar 12 2008 15:36:03, gcc: 4.2.3 (Ubuntu 4.2.3-2ubuntu4)
Seems stream 0 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 29.92 (359/12)
Input #0, flv, from '04.flv':
Duration: 00:02:43.6, start: 0.000000, bitrate: 128 kb/s
Stream #0.0: Video: vp6f, yuv420p, 424x318, 29.92 fps(r)
Stream #0.1: Audio: mp3, 44100 Hz, stereo, 128 kb/s
Output #0, ogg, to '04.ogg':
Stream #0.0: Video: libtheora, yuv420p, 424x318, q=2-31, 200 kb/s, 29.92 fps(c)
Stream #0.1: Audio: vorbis, 44100 Hz, stereo, 64 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Press [q] to stop encoding
Segmentation fault
I have tried this with the latest SVN source compiled ffmpeg and with several versions of Ubuntu's packaged versions with the same result. From my experiments it seems like libtheora or vorbis is the culprit rather than FLV. But again this is not my area of expertise.
For reference I have the following packages installed:
libquicktime-dev
libquicktime1
libvorbis-dev
libvorbis0a
libvorbisenc2
libvorbisfile3
libtheora-dev
libtheora0
So, to the community, the FLV files are all available at the LF Video Gallery. Please download them and convert them for us. Trust me we want to post open versions of our videos.
Developers, get on that DVCPRO HD patch for ffmpeg!
Thanks,
David Ames


