Gew
28th July 2010, 22:30
Hi!
I just noticed something interesting. In Xvid (VfW interface) the default max GOP setting is 300. With ffmpeg, you set the value with "-g" (default is 12, which is DVD spec). Anyways, there seems to be one (giant?) difference between the methods these two are using. If I encode something with Xvid/VfW, and then examine the output file with GSpot, it first tells me an average value, which for the most times are waaay below the "nominal" 300. When pulling the same encode with "ffmpeg -vcodec libxvid -g 300", GSpot reports eg. "299.4 avg / 302 max". Also, I did "-g 300" so that max value should really be just that, 300, yet it's not.
Another funny thing, when I examine the VGS pattern, it's a very, errrhm, strict pattern of I-frames. I.e. exactly every other 300th frame is a keyframe. That's odd too, GSpot said "299.4 avg", but the pattern of exactly(!) 300 frames between each I repeats itself all through the video (I did look into it). Bug in GSpot, or something with ffmpeg? I also tried "-vcodec mpeg4" (the FMP4 variant). Also this one uses this, errr, should I say "primitive" I-frame count.
So, my conclusion is that Xvid/VfW comes with some sort of "artificial intelligence" that uses some sort of quantizer mechanism to determine when it's a "good move" to add I-frame. Whereas ffmpeg acts with no "estimation" at all, but just adds I-frame after set "-g" value. Is my conclusion correct?
Then I can't help but wonder, wouldn't this affect quality (in the benefit of Xvid)..? And if so, in what level? Is there only a marginal difference in result/quality between the two methods, or is it really worth not using ffmpeg just because of this?
I'm just curious!
Ty in advance~
Regards~
I just noticed something interesting. In Xvid (VfW interface) the default max GOP setting is 300. With ffmpeg, you set the value with "-g" (default is 12, which is DVD spec). Anyways, there seems to be one (giant?) difference between the methods these two are using. If I encode something with Xvid/VfW, and then examine the output file with GSpot, it first tells me an average value, which for the most times are waaay below the "nominal" 300. When pulling the same encode with "ffmpeg -vcodec libxvid -g 300", GSpot reports eg. "299.4 avg / 302 max". Also, I did "-g 300" so that max value should really be just that, 300, yet it's not.
Another funny thing, when I examine the VGS pattern, it's a very, errrhm, strict pattern of I-frames. I.e. exactly every other 300th frame is a keyframe. That's odd too, GSpot said "299.4 avg", but the pattern of exactly(!) 300 frames between each I repeats itself all through the video (I did look into it). Bug in GSpot, or something with ffmpeg? I also tried "-vcodec mpeg4" (the FMP4 variant). Also this one uses this, errr, should I say "primitive" I-frame count.
So, my conclusion is that Xvid/VfW comes with some sort of "artificial intelligence" that uses some sort of quantizer mechanism to determine when it's a "good move" to add I-frame. Whereas ffmpeg acts with no "estimation" at all, but just adds I-frame after set "-g" value. Is my conclusion correct?
Then I can't help but wonder, wouldn't this affect quality (in the benefit of Xvid)..? And if so, in what level? Is there only a marginal difference in result/quality between the two methods, or is it really worth not using ffmpeg just because of this?
I'm just curious!
Ty in advance~
Regards~