Log in

View Full Version : Conversion from 640X480 30fps to SVCD


NaCei
10th July 2003, 19:32
Hello,
I have a photo camera that does movie clips 640X480 30fps avi (MJPEG) that I would like to convert to SCVD. After some reading and tests (dvd2svsd, conversion guides at vcdhelp, etc), I can not get acceptable results..
The way I think I should go is edit with a commercial program and save the output as a avi huffyuv 640X480 30fps and audio pcm 44,1 16bit stereo (but I can do it with other options), and convert using Avisynth but from here on I feel lost, can someone please put me in the right track.
Thank you.

Awatef
10th July 2003, 20:49
I think you can do it directly in TMPG. Just load your original AVI there and select SVCD NTSC profile and it will encode for you.
Cut a little piece from your AVI with VirtualDub first, test if TMPG converts it right. If it doesn't, this is the longer way:

Open your file in VirtualDub, select File -> Demux WAV
See what you get, if it is already in 16-bit stereo 44,1KHz, you're almost done.
If not, convert it to the appropriate format, using WaveLab or a similiar application.

You have a correct audio stream now? fine! go to TMPG, open your original AVI under video, open your WAV under Audio, select the SVCD NTSC profile, encode!

Piper
10th July 2003, 20:52
I would suggest that rather than jumping straight into avisynth, that you get familiar with the conversion process to SVCD's. There are a lot of like minded people at www.vcdhelp (www.dvdrhelp.com) who will most likely have a lot of your questions already answered in the forums.

I would also get familiar with MPEG-2 encoding utilities like TMPGEnc (www.tmpgenc.net) which may already contain abilities that you're looking for in avisynth.

Hope this helps

NaCei
10th July 2003, 21:57
If I load the avi in tmpgenc i get a error message "can not open or is not supported"
I have created a avithynth script:
LoadPlugin("C:\PROGRA~1\DVD2SVCD\AVISYN~1\Mpeg2dec\mpeg2dec.dll")
AviSource("C:\Documents and Settings\teste.AVI",False)
AssumeFPS(25,1,True)
BicubicResize(480,576,0.0,0.6)
I load it in the TMPGenc video source and in the audio source C:\Documents and Settings\teste.AVI.
The result is that the audio is out of sinc and the image is a litle jumpy (the video result is very good compared with the 2 comercial programs I have used).

Awatef
10th July 2003, 23:19
Oh I see, you're trying to make a PAL SVCD from an NTSC source.

AssumeFPS is not the way to go here.
Here is what I suggest as script:

AviSource("filename.avi", false)
ConvertFPS(25)
BicubicResize(480,576)

The audio should be in sync with this script.

scharfis_brain
10th July 2003, 23:37
I'll recommend this script:

avisource("blabla")
loadplugin("dgbob.dll")
dgbob(order=1)
changefps(50)
lanczosresize(480,576)
separatefields()
selectevery(4,1,2)
weave()

It will give you a much better (smoother) motion than Awatef's script, because it uses the double temporal resoltion. But this requires interlaced encoding.

But one question: why do you want to make a standards conversion form NTSC to PAL? you'll have a massive quality loss!

NaCei
11th July 2003, 00:25
I'm converting from 640X480 30fps mjpeg videoclips I make with my photo digital camera (up to 15 minutes) so it 'should' be noninterlaced.I have to convert to NTSC or PAL and as I live in Europe I prefer PAL. The camera came with a software that does VCDs but the results are very bad. I have also tried another comercial program that can do VCD, SVCD and DVDS but again the results are bad.
I have extracted the audio with virtualdub and the audio is now in sinc. Thanks Awatef, I will now try convertfps.
scharfis_brain can I use your script with a noninterlaced source?

scharfis_brain
11th July 2003, 07:09
scharfis_brain can I use your script with a noninterlaced source? Of course, just remove the dgbob....
But even if the source is Progressive, this script will give back an interlaced video for better smoothness.

hm... there was a little error in my script, so I'll post it again.

avisource("blabla")
convertfps(50)
lanczosresize(480,576)
separatefields()
selectevery(4,1,2)
weave()

Awatef
11th July 2003, 16:47
But interlaced encoding is very bitrate intensive, which means you'll get much more artifacting at the same bitrate than progressive encoding.

NaCei
12th July 2003, 23:07
I have been doing some tests, with small videos, and I have some dificulty choosing one of the solutions as the results seem quite good.
Thank you for your help.