[MEncoder-users] Flashvideo for YouTube using mencoder

Rich Felker dalias at aerifal.cx
Thu Feb 28 02:49:45 CET 2008


On Wed, Feb 27, 2008 at 09:22:17AM -0800, Phil Ehrens wrote:
> Reimar Döffinger wrote:
> > On Tue, Feb 26, 2008 at 09:51:09PM -0500, Rich Felker wrote:
> > > On Tue, Feb 26, 2008 at 10:26:09AM -0800, Phil Ehrens wrote:
> > > > Geez. And here I thought I was explaining why P-frame size didn't
> > > > matter. Oh well...
> > > 
> > > Did I accidentally target my comments at the wrong person?
> > 
> > I think so. But I fear he is involuntarily used to being targeted :-)
> 
> I think I got into trouble when I referred to the temporal
> domain in general, not with reference to timestamps.
> 
> What I meant was that nobody experiences the presentation of
> I/P frame encoded material as inherently degraded, because
> humans cannot distinguish between the same frame being
> presented twice and two frames that were recorded at different
> times with identical content.
> 
> So there is no perceptual difference between a displayed
> I-frame and the null P-frame that follows. This is a
> wonderful result, because the average bitrate is halved
> without affecting image quality.

There is nothing "perceptual" about this result. It is a purely
mathematical result. The contents are bit-for-bit IDENTICAL.

> The huge potential win
> from dynamic GOP size follows from this.

Huh?? Now I think you really have no idea what you're talking about.

There is only one advantage to using a short keyframe interval (aka
keyint and very similar to the idea of "GOP size" with minor technical
differences): increased seeking efficiency. Most players only allow
you to seek to keyframes; seeking to other frames requires first
seeking to the prior keyframe then decoding all the reference frames
up to the desired frame.

[Actually there's another tiny issue, that if the encoder and decoder
IDCT implementations differ slightly in behavior, extremely long
keyint values will result in image corruption. This is only noticable
with extremely bad implementations or keyint values larger than 500 or
so, which no one uses anyway.]

Other than that, keyint should be made as large as possible. At a
fixed bitrate, a video with large keyint will have much higher quality
than one with low keying. At a fixed quality, the video with large
keyint will be much smaller.

FYI, regardless of keyint, encoders can choose to encode a frame as a
keyframe even if the whole keyint has not elapsed. This is usually
referred to as "scene change detection", and it serves two goals:
making it possible to seek to the exact point of a scene change, and
taking advantage of the fact that it's usually more efficient to
encode a completely new picture as an I frame instead of as a P frame.

Rich



More information about the MEncoder-users mailing list