Avidemux Forum

Avidemux => Windows => Topic started by: McBrady on November 14, 2020, 11:09:59 PM

Title: MPEG2 doesn't work any more
Post by: McBrady on November 14, 2020, 11:09:59 PM
Hello...

MPEG2-Encoding always worked fine. As of today, I cannot get ANY MPEG2-encode to work. Whatever file and whatever setting I use, I get the message
"Cannot set up encoder. The configuration supplied to the encoder may be incompatible or the encoder may depend on features unavailable on this system."
Any idea what's going on?
Title: Re: MPEG2 doesn't work any more
Post by: eumagga0x2a on November 14, 2020, 11:17:52 PM
Works fine for me with the latest official MinGW (win64) nightly. Please reproduce the issue and attach admlog.txt from %localappdata%\avidemux\ to your reply.
Title: Re: MPEG2 doesn't work any more
Post by: McBrady on November 14, 2020, 11:33:28 PM
Here you are...
Title: Re: MPEG2 doesn't work any more
Post by: eumagga0x2a on November 15, 2020, 12:17:08 AM
Thanks,

[adm_lavLogCallback] 23:28:22-790 [lavc] MPEG-1/2 does not support 2997/100 fps
The problem is the source AVI, it should actually have fps of 30000/1001 but it has 29970/1000 instead (yes, Avidemux creates such AVIs as the AVI muxer hasn't received updates for improved time base handling). You might try to force the proper timing with the "changeFps" filter.
Title: Re: MPEG2 doesn't work any more
Post by: McBrady on November 15, 2020, 11:54:58 AM
Thank you very much, it worked fine...

Could you please explain the technical difference to me, for mathematically it is the same...
Title: Re: MPEG2 doesn't work any more
Post by: eumagga0x2a on November 15, 2020, 12:36:01 PM
They are not the same, mathematically. The MPEG-2 encoder expects one of standard frame rates, expressed as a fraction (timebase denominator / timebase numerator): https://github.com/FFmpeg/FFmpeg/blob/release/4.2/libavcodec/mpeg12framerate.c#L24

Thus 1000/29970 is invalid as time base for MPEG-2. The frame rate ( = 1/timebase) is pretty close to that of 1001/30000, but not the same.