I'm new to libtheora and video encoding in general, but I have worked hard
to educate myself in the basics. I've working in image processing for many
years, so I'm not starting entirely from scratch. I'm having an
encoding
problem and I'm looking for helpful suggestions.
I'm using a very recent build of ffmpeg 0.6 to encode some image frames (+
audio) into theora/vorbis (ogv) streams for HTML5 playback. Not everything
supports webm yet and ogv will be a requirement for some time to come.
My source material starts black, fades up from black over a few seconds and
then proceeds. It's stylized animation, not photo-real photography so
backgrounds are fairly flat, contrast is high - basically not the greatest
situation to be in for DCT. I'm encoding from image frames, but I've
also
tried transcoding from other video codecs over to theora using
ffmpeg/libtheora.
My problem is this: As the image is fading in during the first shot, the
stream hangs for a few moments, then proceeds. It's noticeable enough to be
unacceptable. The moment it hangs, the initial image is perhaps 50% between
black and the final (bright) end-point. I notice during the ffmpeg encode
that the stream seems to sit at very low bitrates until around 96 frames
into the stream, then it jumps up close to the target bitrate I've
requested, so I believe that it's an encoding issue and not a player issue.
I would have expected the bitrate to ramp up more gradually.
Some players don't even play back the stream, but most demonstrate the same
problem. I'm assuming that the "compliant" players all use
libtheora and so
they are all doing the same thing. I'm using ffmpeg's player as a
baseline
because I expect that the encoder and decoder should be somewhat
well-matched, though I think that the ffmpeg team might have written their
own decoder.
I suspect it has something to do with the fact that the video fades up from
black at the head. The problem does not occur with other input I offer the
encoder.
I've tried a variety of settings with ffmpeg, but I don't believe it
exposes
all the libtheora options (and I'm not even sure which libtheora options
would make a difference). I've not been able to find any settings that seem
relevant to the problem. I know that h264 has specific handlers to make
fade-in and fade-out situations less strenuous on encoders/decoders.
Does anyone have experience with encoding fade-ins from black at the head of
the stream? Is the fade-in really the problem (known issue) or a red
herring?
Any comments or suggestions?
Thanks,
Mayur
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://lists.xiph.org/pipermail/theora-dev/attachments/20101014/5c4d5560/attachment.htm