[MEncoder-users] Mencoder lame errors, and mpeg to avi batch process
Dave M G
martin at autotelic.com
Fri Nov 30 16:23:27 CET 2007
The Set Up:
I'm running Ubuntu Gutsy, 7.10, and I've got mencoder, ffmpeg, and have
installed every codec I can think of (Specifics listed below).
I have a Sony HD video camera which writes everything in an uncompressed
MPEG format. The camera connects by USB and behaves like an external
hard disk - no need for DV capture utilities, just simple file
transfers. The frame rate of the files is 30fps, and the size can be
either 720X480, or 640X480.
The video camera splits video at the 2 GB mark. I'm not sure of the
exact megabyte to time ratio, but usually a 40 minute to an hour
recording will result in two files, the first being exactly 2 GB, and
the second a little over 1 GB.
The Goals:
What I want to do is store these recordings in a smaller more manageable
format, like AVI.
Ideally, what I'd like to do is:
1. Append the files together. They are always numbered like so:
m2u00066.mpg, m2u00067.mpg, m2u00068.mpg. So, assuming that I want to
merge all videos in a directory, append them in order of file number.
2. De-interlace.
3. Save in a reasonably high quality but smaller format, like an AVI. I
understand that smaller file format equals some quality loss, but I
don't need to preserve original quality, I just need a result that is clear.
What I've Done:
I found this script, mpg2avi, which uses mencoder to make the
conversion. The results are an avi file of acceptable quality.
http://www.linuxquestions.org/linux/answers/Applications_GUI_Multimedia/Batch_convert_MPEG_files_to_AVI_0
The problems:
1. Despite having lame installed, it keeps giving an audio codec not
found error (reproduced below).
2. Does not seem to handle the 720X480 size.
3. I don't think it deinterlaces the video.
4. Has no option to append videos together.
The question:
Can these errors be resolved, and then the de-interlacing and appending
functions added?
Thank you for any advice.
- - - - -
Here are the errors I am seeing:
MEncoder 2:1.0~rc2-0ubuntu1~gutsy1 (C) 2000-2007 MPlayer Team
CPU: Intel(R) Pentium(R) D CPU 2.80GHz (Family: 15, Model: 6, Stepping: 2)
CPUflags: Type: 15 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
success: format: 0 data: 0x0 - 0x7dc70000
MPEG-PS file format detected.
VIDEO: MPEG2 720x480 (aspect 3) 29.970 fps 9100.0 kbps (1137.5 kbyte/s)
[V] filefmt:2 fourcc:0x10000002 size:720x480 fps:29.97 ftime:=0.0334
==========================================================================
Opening audio decoder: [liba52] AC3 decoding with liba52
Using SSE optimized IMDCT transform
Using MMX optimized resampler
AUDIO: 48000 Hz, 2 ch, s16le, 448.0 kbit/29.17% (ratio: 56000->192000)
Selected audio codec: [a52] afm: liba52 (AC3-liba52)
==========================================================================
Opening video filter: [expand osd=1]
Expand: -1 x -1, -1 ; -1, osd: 1, aspect: 0.000000, round: 1
Opening video filter: [scale w=740 h=480]
==========================================================================
Opening video decoder: [mpegpes] MPEG 1/2 Video passthrough
VDec: vo config request - 720 x 480 (preferred colorspace: Mpeg PES)
The selected video_out device is incompatible with this codec.
Try appending the scale filter to your filter list,
e.g. -vf spp,scale instead of -vf spp.
VDecoder init failed :(
Opening video decoder: [libmpeg2] MPEG 1/2 Video decoder libmpeg2-v0.4.0b
Selected video codec: [mpeg12] vfm: libmpeg2 (MPEG-1 or 2 (libmpeg2))
==========================================================================
Audio LAVC, couldn't find encoder for codec mp3.
- - - - -
Here are the contents of the script:
#!/bin/bash
#mpg2avi (Convert mpeg streams into high quality mpeg4 avi with mp3 audio)
#requirements: mplayer
#Begin
clear
# variables
version=0.2b
current_directory=$( pwd )
# video bitrate (1100 = around 500 MB movie size)
vbitrate=1100
echo -e "* mpg2avi v${version}"
# remove spaces
for i in *.[Mm][Pp][Gg]; do mv "$i" `echo $i | tr ' ' '_'`; done >
/dev/null 2>&1 &
# remove uppercase
for i in *.[Mm][Pp][Gg]; do mv "$i" `echo $i | tr '[A-Z]' '[a-z]'`; done
> /dev/null 2>&1 &
# convert mpg movies into avi's with mencoder
for i in *.[Mm][Pp][Gg]; do nice -n 10 mencoder $i -ovc lavc -lavcopts
vcodec=mpeg4:vbitrate=$vbitrate:vhq:vqmin=2:vlelim=-4:vcelim=9:lumi_mask=0.05:dark_mask=0.01
-vf pp=md -vf scale=720:480, -oac lavc -lavcopts
acodec=mp3:abitrate=128 -o "`basename "$i"`.avi";echo "Conversion done";done
exit;
- - - - -
And here is some additional informational output:
$ mencoder -ovc help
MEncoder 2:1.0~rc2-0ubuntu1~gutsy1 (C) 2000-2007 MPlayer Team
CPU: Intel(R) Pentium(R) D CPU 2.80GHz (Family: 15, Model: 6, Stepping: 2)
CPUflags: Type: 15 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
Available codecs:
copy - frame copy, without re-encoding. Doesn't work with filters.
frameno - special audio-only file for 3-pass encoding, see DOCS.
raw - uncompressed video. Use fourcc option to set format
explicitly.
nuv - nuppel video
lavc - libavcodec codecs - best quality!
vfw - VfW DLLs, read DOCS/HTML/en/encoding-guide.html.
qtvideo - QuickTime DLLs, currently only SVQ1/3 are supported.
libdv - DV encoding with libdv v0.9.5
xvid - XviD encoding
x264 - H.264 encoding
$ mencoder -oac help
MEncoder 2:1.0~rc2-0ubuntu1~gutsy1 (C) 2000-2007 MPlayer Team
CPU: Intel(R) Pentium(R) D CPU 2.80GHz (Family: 15, Model: 6, Stepping: 2)
CPUflags: Type: 15 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
Available codecs:
copy - frame copy, without re-encoding (useful for AC3)
pcm - uncompressed PCM audio
mp3lame - cbr/abr/vbr MP3 using libmp3lame
lavc - FFmpeg audio encoder (MP2, AC3, ...)
twolame - Twolame MP2 audio encoder
faac - FAAC AAC audio encoder
--
Dave M G
Ubuntu 7.10
More information about the MEncoder-users
mailing list