[theora-dev] Ogg files incompatible, was: Video encoded using libtheora-1.1.1 and libogg-1.1.4 plays too fast...
spam_receptacle_ at hotmail.com
Fri Feb 12 05:15:21 PST 2010
> Date: Thu, 11 Feb 2010 10:54:01 -0500
> From: tterribe at email.unc.edu
> CC: theora-dev at xiph.org
> > This resulted in a slight larger file but no discernible difference in
> > the movie play length. It's certainly not playing the expected duration.
> > What do you think?
> Since you're just compressing the same frame over and over again, what
> you're likely getting is a keyframe followed by a bunch of zero-byte
> packets, which is Theora's cheap way of saying "keep showing the last
> frame". Some (broken) players treat these as semantically different,
> however, and will end playback early when they appear at the end of a
> stream. I suggest running ogginfo or oggzinfo on the file and see what
> it says the real length is. You may also be interested in oggz-validate,
> which can confirm that you are writing out all of the pages in the
> proper order.
Thank you for your help! According to oggz-validate, the previously generated ogg file was missing an EOS packet. With the new packet writing loop, there appears to be nothing wrong with these ogg streams, again according to oggz-validate. It looks like you may be right about broken players. When I feed my code actual video frames, the files play at normal speed. However, something is still wrong. My DirectShow filter, ffdshow, can't play these ogg files at all and, instead, show a very short sequence of random colours, crashing most of the time. VLC player can play these files but I'm afraid that's not good enough for my purposes. My ultimate goal is to upload these theora videos to YouTube but they have the same problems as ffdshow. The reason I still think the problem is with my code is that both players and YouTube can play other ogg files not made by my software. Here are two examples:
I haven't actually uploaded these to YouTube but, in general, people have had success uploading Ogg/Theora video files to YouTube and these play fine with my DirectShow filter... Should my code just work?
> By the way, please do not use a constant for the stream serial number.
> Multiple streams in the same file must have unique serial numbers, and
> if someone later wants to concatenate multiple streams you produce, they
> will have to rewrite the stream with a new serial number or (more
> likely) will generate an invalid file.
Can you explain this further please? Can't they simply assign their new stream a number unique to any existing one in the ogg file? Thank you very much...
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the theora-dev