How to convert AVI-MPEG to VCD

This shall serve as a reminder for myself and may help others. There is different versions of audio conversion, CBR (Constant Bit Rate) and VBR (Variable Bit Rate), it seems that many DVD players perfer the CBR. Below is both versions with links to the relevant programs and example command lines.

CBR AVI-MPEG

To convert the avi file into a mpeg file for a PAL 352×288 screen, there is different settings either use the ‘man’ or goto the Transcode website for viewing the conversion in more detail. The command line that I use is

transcode -i<AVI FILM> -V -y mpeg -F v,1 -E 44100 -b 224 -fps 25 -o <OUTPUTFILENAME>

This generates two files, *.m1v (the video segment) and *.mpa (the audio segment).

The options in the above command line are

  • -b Audio bitrate Kbit’s
  • -E Audio sampling rate (Hz)
  • -F codec
  • -i input file
  • -V use internal video codec (faster but some import modules do not support this)
  • -y video, audio export modules.
  • -fps Frames per second, 25 is for PAL, 29.97 for NTSC

Joining the OUTPUTFILENAME’s together

To join these two segments together

tcmplex -o <OUTPUT.MPG> -i <OUTPUTFILENAME.M1V> -p <OUTPUTFILENAME.MPA> -m v

This will create a MPEG file ready to be either watched or converted again into the VCD format and then burned.

VBR AVI-MPEG

The programs to download/use are obtained from these links

If the AVI file is in MS MPeg4 v3(DIVX3)

If the INPUT file is in a MS MPeg4 v3 (DIVX3) then you have to convert the file into a DIVX format for FFMPeg to do its stuff. To convert to the required file you will need the mencoder program from MPlayer website. To convert to the required file structure use the commands below.

mencoder -ovc lavc -lavcopts vcodec=mpeg4:vhq -oac copy INPUTFILE.AVI -o OUTPUT.AVI

The options produce a mpeg4 version of the input file using the lavc video converter. Also with the option ‘vhq’, it produces a very high quality output file.

Convert AVI-MPEG

To convert AVI to MPEG use the ffmpeg program, with the commands as below. The INPUT.FILE is in AVI format and the OUTPUT.FILE is an MPEG format

ffmpeg -vcd -i INPUT.FILE -b 1150 -s 352x288 -vcodec mpeg1video -f mpegvideo OUTPUT.FILE

With advice, the ffmpeg build version 4753 (form cvs) the parameters are:-

ffmpeg -target vcd -i INPUT.FILE -b 1150 -s 352x288 -vcodec mpeg1video -f mpegvideo OUTPUT.FIL

The options enable an VCD Mpeg type file output(-vcd) with a bitrate of 1150 (-b) and an output screen size of 352×288 (-s). The codecs to convert to are mpeg1video (-vcodec) so that it is able to be converted to an vcd image with the vcdimager program.
Note: This is still a MPEG file and not a vcd file, you have to use vcdimager below to create a vcd file to burn to disk.

PAL Divx 3 avi file to NTSC vcd

Thanks to Marc for this

ffmpeg -i FILE.AVI -b 1150 -r 29.97 -s 352x240 -aspect 16:9 -vcodec mpeg1video -f mpegvideo FILE-NTSC.mpeg

If MPEG file is bigger than 700MB

If the MPeg file is over the maximum size of the cd, then I use the program mencoder from MPlayer. With the options as below

mencoder -oac copy -ovc copy INPUT.FILE -o OUTPUT.FILE -endpos 670mb

At the end of the copy it should say the frame that the mencoder finished on for the first file. Place that value in the line below (in the VALUE) to create the second value.
I usally subtract about 10 frames just to make sure.

mencoder -oac copy -ovc copy INPUT.FILE -o OUTPUT2.FILE -ss VALUE

Both of the files, INPUT & OUTPUT are mpeg files

This will create a MPEG file ready to be either watched or converted again into the VCD format and then burned.

Hope that helps, and this also servers as a reminder to me 🙂