[MPlayer-users] Where to set MPEG4 compliance level for mencoder/libavcodec?
Svante Signell
svante.signell at telia.com
Sat Feb 7 16:51:07 CET 2004
Encoding with mencoder built from CVS after than Jan 17 fails, see
below. It seems that the strict_std_compliance level is set to a value
larger than zero (where isi it set??), resulting in a failure to encode
the .avi file to mpeg. Obviously the input file does not strictly follow
the MPEG4 specification.
/usr/bin/mencoder ./test.avi -of mpeg -nosound -o
./temporary-avstream.mpeg -ovc lavc -lavcopts
vcodec=mpeg2video:aspect=4/3
OK with mplayer_1.0cvs-20040117_i386:
=====================================
...
VIDEO: [XVID] 624x336 24bpp 23.976 fps 1388.2 kbps (169.5 kbyte/s)
[V] filefmt:3 fourcc:0x44495658 size:624x336 fps:23.98 ftime:=0.0417
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffodivx] vfm:ffmpeg (FFmpeg MPEG-4)
SwScaler: BICUBIC scaler, from Planar YV12 to Planar YV12 using MMX2
videocodec: libavcodec (480x480 fourcc=3267706d [mpg2])
Pos: 17.2s 412f ( 0%) 51fps Trem: 42min 591mb A-V:0.000 [908:0]
Writing AVI index...
Fixing AVI header...
Video stream: 908.115 kbit/s (113514 bps) size: 1950623 bytes 17.184
secs 412 frames
NOT OK with mplayer_1.0cvs-20040117_i386:
=========================================
SwScaler: BICUBIC scaler, from Planar YV12 to Planar YV12 using MMX2
videocodec: libavcodec (480x480 fourcc=3267706d [mpg2])
[mpeg2video @ 0x85578f0]MPEG1/2 doesnt support 239759/10000 fps
Could not open codec.
FATAL: Cannot initialize video driver.
Pos: 0.0s 2f ( 0%) 0fps Trem: 0min 0mb A-V:0.000 [0:0]
1 duplicate frame(s)!
Unknown block type, possibly non-MPEG stream!
The following code triggers the problem libavcodec/mpeg12.c:
...
static int encode_init(AVCodecContext *avctx)
{
MpegEncContext *s = avctx->priv_data;
if(MPV_encode_init(avctx) < 0)
return -1;
if(find_frame_rate_index(s) < 0){
if(s->strict_std_compliance >=0){
av_log(avctx, AV_LOG_ERROR, "MPEG1/2 doesnt support %d/%d
fps\n", avctx->frame_rate, avctx->frame_rate_base);
return -1;
}else{
av_log(avctx, AV_LOG_INFO, "MPEG1/2 doesnt support %d/%d
fps, there may be AV sync issues\n", avctx->frame_rate,
avctx->frame_rate_base);
}
}
return 0;
}
...
More information about the MPlayer-users
mailing list