05 October 2007

Frustrated with Ogg Theora

I have this basic task: a screencast in Ogg Theora and a still PNG image, which I want to add at the end, for 5-10 seconds, like a credits screen (displaying the CC license, author name).

I create a PNG with the same resolution with the screencast and using ffmpeg and ffmpeg2theora from that PNG I do a short (6 seconds) clip in Ogg Theora.

Now the ugly part: join the two clips... I use the old tried and true method from avi (divx), some results after a Google search say it should work also with Ogg:

cat part1.ogg part2.ogg > full_video.ogg

It doesn't work: in both Totem and Mplayer the playback is aborted (with an error) right after the end of the first part (it does work OK with VLC).

Then I remember what I do after joining avi files:
mencoder -forceidx -oac copy -ovc copy full_video.ogg -o full_video_good.ogg

The result is a broken 5KB empty file.

I look for help and get a receipe:
mencoder -oac copy -ovc copy part1.ogg part2.ogg -o full_video_good.ogg

It doesn't work either, a result similar with what I get with "-forceidx".

The sad thing is, if I use divx encoded AVIs, all is good: the join work perfectly (either with cat and forceidx or with one step mencoder) but it is suboptimal: transcode from theora to divx > join the avis > transcode back to theora, two transcoding options and a huge quality loss.

I see two losing options: drop Ogg Theora and do everything as DivX AVI or drop the screencast at all. Frustrating. And don't get me started about the lack of a nice GUI for all this process... (PiTiVi)


  1. In theory this should be done by "oggzmerge" - however it didn't work properly for me.

  2. Good suggestion, thanks, i tried it like this:

    oggzmerge -o full_video.ogg part1.ogg part2.ogg

    but still no luck: in Totem and Mplayer it exit (cleanly) after the end of the first part and in VLC it open two video windows and play both clips at the same time until the end of clip1 and then exit cleanly.

  3. Update: oggzmerge looks like a good tool to merge Ogg Theora with Ogg Vorbis and get a nice video and sound clip, this is something I want to do also, but later.

  4. The cat of two ogg files use to work for me. I even wrote instructions on how to do that with two video files for my screencasting wikipage.


    In section
    Advanced Topics: Alternative Audio Tracks

    Something has changed since I wrote those instructions, they don't work now either. But it did work at one point I swear. This maybe a regression or it maybe a feature associated with libtheora.


  5. I see a lot of references of cat on the web, so certainly it used to work. Your wiki page about screencasting seems quite old (GStreamer 0.8), so presumably a lot of things changed in the meantime.

  6. I just posted an article on this subject: