How to convert 20 fps OGM file to KDVD?
I have an OGM file which I extracted the video(XVID), audio(OGG) and subtitle file(SRT). The video and audio is 20 fps. Is there a way to convert it to 23.976 fps and keeping the audio and subtitle in sync?
I tried using assumefps(23.976, true) since this is what I used to convert 25 fps to 23.976 fps, but it made the 20 fps video shorter/faster. I used besweet to change the fps from 20 to 23.976 which resulted in the chipmunk effect; the audio became faster. |
I found someone with this idea but I don't know which command to use and if it is effective.
"I think you can do this with avisynth. In my opinion, you can do a trick by repeating a field in each frame (upper, bottom, upper, bottom...) You will have 3 fields instead of 2 and 30 fps instead of 20. It's my theory, but I think it can work. After that you will slowdown from 30 to 29,97 fps." |
FYI, AssumeFPS basically means "read this video at the speed I specified to you and not the original one".
If you have a video with original speed of 20 image per second, if you ask to play it at 23.976 image per second, for sure you will obtain a video that is shorter (that plays faster). Do you understand ? What you have to do is to use changeFPS ! This will CHANGE the number or frames but NOT the number of second needed to play the video. Then you have nothing to do on the audio (as the length in second does not change). Now I can predict the visual aspect of the result. Let try... |
The audio is in OGG format, does avisynth support it? If not, how can I make the 20fps audio in synch with resultant ChangeFPS(23.976) video?
Is my only option to decrompress the audio to WAV? |
Quote:
What cause an unsynch audio is always a matter of length of the two streams. Here length of auio = length of video = length of original avi. Quote:
Encode audio appart and mux the final result. As always... |
someone gave me this advice.
The trick is that 20fps is really a 3:2 pulldown from 25. For the audio use BeSweet to change it from 25 FPS to 23.976 FPS. AssumeFrameBased SeparateFields SelectEvery(8, 0,1, 2,3,2, 5,4, 7,6,7) Weave #At this point your AVI will be 25fps. AssumeFPS(23.976) this one works, the video and audio are in synch although the original 23 min video becomes 24 min but I don't really notice much of a slow down. Now I'll try your method. |
Quote:
When you said "20 fps" I assumed you were sure that it was true 20 fps and gave you hints for that situation only. |
ChangeFPS is an easier and better method, I think. The result MPEG-2 has the same duration as the 20fps original video.
|
someone recommended ConvertFPS() as well.
|
The only problem is that ConvertFPS works in YUY2 only and not YV12.
But FYI I had done a script for converting from PAL to NTSC and I use this as LAST line : ConvertToYUY2().ConvertFPS(23.976,zone=125) |
Site design, images and content © 2002-2024 The Digital FAQ, www.digitalFAQ.com
Forum Software by vBulletin · Copyright © 2024 Jelsoft Enterprises Ltd.