[MEncoder-users] Strange output format of mencoder
Lobster
lobo at lobs.sytes.net
Sat Dec 11 21:58:51 CET 2010
On 10/12/2010 1:12 p.m., briconaut at gmx.de wrote:
> Hi,
> I've been using mencoder to transcode videos for my iPad for some time
> without any problems. Recently some of the transcoded files were not usable
> anymore. Neither itunes nor the ipad could play them, but playing them with
> mplayer on my debian box still works. To understand this behavior, I took a
> good and a bad file and compared the output of 'mplayer -identify' of both
> the original and the transcoded file. While the original '-identify' output
> of the files is really similar, the '-identify' output for the transcoded
> files appears to be radically different (at least to my untrained eye).
> I'm posting the '-identify' output and my transcoding command below in the
> hope that someone might be able to answer these questions:
> - What is the difference in the input files that makes mencoder produce two
> so apparently different output formats?
> - How can I detetct this difference? The '-identify' option apparently
> doesn't show the crucial piece of information.
> - How can I encode my 'bad' files to get them to play just like the good
> ones.
>
> Thanks for any help and suggestions in advance,
> Thomas.
>
> My system:
> Debian/Lenny on 2.6.32-bpo.5-amd64
>
> My mencoder version:
> MEncoder dev-SVN-r26940 (C) 2000-2008 MPlayer Team
> CPU: Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz (Family: 6, Model:
> 23, Stepping: 10)
> CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
> Compiled with runtime CPU detection.
>
> My transcoding command:
> mencoder -sws 9 \
> -of lavf \
> -lavfopts format=mp4 \
> -vf 'scale=1024:768,dsize=1024:-2,harddup' \
> -ovc x264 \
> -x264encopts
> 'bitrate=800:vbv_maxrate=1000:vbv_bufsize=2000:nocabac:me=umh:subq=6:frameref=6:trellis=1:level_idc=30:global_header:threads=2'
> \
> -oac faac \
> -faacopts 'mpeg=4:object=2:br=160:raw' \
> -channels 2 -srate 24000 \
> file.avi -o file.mp4
> (Comments on how to do this better/right are welcome, I got this command
> from google...)
>
> Output of '-identify' on the original 'good' file:
> Playing good.avi.
> AVI file format detected.
> ID_VIDEO_ID=0
> [aviheader] Video stream found, -vid 0
> ID_AUDIO_ID=1
> [aviheader] Audio stream found, -aid 1
> VIDEO: [XVID] 624x352 12bpp 23.976 fps 1033.3 kbps (126.1 kbyte/s)
> Clip info:
> Software: MEncoder SVN-r32669-4.3.2
> ID_CLIP_INFO_NAME0=Software
> ID_CLIP_INFO_VALUE0=MEncoder SVN-r32669-4.3.2
> ID_CLIP_INFO_N=1
> ID_FILENAME=good.avi
> ID_DEMUXER=avi
> ID_VIDEO_FORMAT=XVID
> ID_VIDEO_BITRATE=1033336
> ID_VIDEO_WIDTH=624
> ID_VIDEO_HEIGHT=352
> ID_VIDEO_FPS=23.976
> ID_VIDEO_ASPECT=0.0000
> ID_AUDIO_FORMAT=85
> ID_AUDIO_BITRATE=125776
> ID_AUDIO_RATE=0
> ID_AUDIO_NCH=0
> ID_LENGTH=1255.00
> ID_SEEKABLE=1
> ==========================================================================
> Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
> Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
> ==========================================================================
> ID_VIDEO_CODEC=ffodivx
>
> Output of '-identify' on the transcoded 'good' file:
> Playing good.mp4.
> libavformat file format detected.
> ID_VIDEO_ID=0
> [lavf] Video stream found, -vid 0
> ID_AUDIO_ID=1
> [lavf] Audio stream found, -aid 1
> VIDEO: [avc1] 1024x768 24bpp 23.976 fps 0.0 kbps ( 0.0 kbyte/s)
> ID_FILENAME=good.mp4
> ID_DEMUXER=lavfpref
> ID_VIDEO_FORMAT=avc1
> ID_VIDEO_BITRATE=0
> ID_VIDEO_WIDTH=1024
> ID_VIDEO_HEIGHT=768
> ID_VIDEO_FPS=23.976
> ID_VIDEO_ASPECT=0.0000
> ID_AUDIO_FORMAT=255
> ID_AUDIO_BITRATE=0
> ID_AUDIO_RATE=24000
> ID_AUDIO_NCH=2
> ID_LENGTH=1255.13
> ID_SEEKABLE=1
> ==========================================================================
> Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
> Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
> ==========================================================================
> ID_VIDEO_CODEC=ffh264
>
> Output of '-identify' on the original 'bad' file:
> Playing bad.avi.
> AVI file format detected.
> ID_VIDEO_ID=0
> [aviheader] Video stream found, -vid 0
> ID_AUDIO_ID=1
> [aviheader] Audio stream found, -aid 1
> VIDEO: [XVID] 624x352 24bpp 23.976 fps 1454.3 kbps (177.5 kbyte/s)
> Clip info:
> Software: Nandub v1.0rc2
> ID_CLIP_INFO_NAME0=Software
> ID_CLIP_INFO_VALUE0=Nandub v1.0rc2
> ID_CLIP_INFO_N=1
> ID_FILENAME=bad.avi
> ID_DEMUXER=avi
> ID_VIDEO_FORMAT=XVID
> ID_VIDEO_BITRATE=1454256
> ID_VIDEO_WIDTH=624
> ID_VIDEO_HEIGHT=352
> ID_VIDEO_FPS=23.976
> ID_VIDEO_ASPECT=0.0000
> ID_AUDIO_FORMAT=85
> ID_AUDIO_BITRATE=154368
> ID_AUDIO_RATE=0
> ID_AUDIO_NCH=0
> ID_LENGTH=2848.30
> ID_SEEKABLE=1
> ==========================================================================
> Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
> Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
> ==========================================================================
> ID_VIDEO_CODEC=ffodivx
>
> Output of '-identify' on the transcoded 'bad' file:
> Playing bad.mp4.
> libavformat file format detected.
> ID_VIDEO_ID=0
> libavformat file format detected.
> RAWDV file format detected.
> ID_VIDEO_ID=0
> ID_AUDIO_ID=0
> VIDEO: [DVSD] 720x480 24bpp 29.970 fps 0.0 kbps ( 0.0 kbyte/s)
> ID_FILENAME=bad.mp4
> ID_DEMUXER=rawdv
> ID_VIDEO_FORMAT=DVSD
> ID_VIDEO_BITRATE=0
> ID_VIDEO_WIDTH=720
> ID_VIDEO_HEIGHT=480
> ID_VIDEO_FPS=29.970
> ID_VIDEO_ASPECT=0.0000
> ID_AUDIO_FORMAT=RADV
> ID_AUDIO_BITRATE=0
> ID_AUDIO_RATE=0
> ID_AUDIO_NCH=0
> ID_LENGTH=43.41
> ID_SEEKABLE=1
> ==========================================================================
> Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
> Selected video codec: [ffdv] vfm: ffmpeg (FFmpeg DV decoder)
> ==========================================================================
> ID_VIDEO_CODEC=ffdv
> _______________________________________________
Are you 100% sure you used the same command line to produce that bad
output file?
The bad output file seems to have DV Video which is not what using x264
as a ovc creates.
Also the bad output file has the wrong fps to the original.
I suspect you either used a different command line to make bad.mp4 or
bad.mp4 is a file
totally unrelated to the source file you claim it came from.
More information about the MEncoder-users
mailing list