I've got a sports video that is 1080p 30fps. It wasn't shot on film. I was told that to make it Bluray compatible I can slow down the audio and video like this to convert the video to 29.97 fps to make it Bluray compatible.
But what if I want to convert the 1080p 30fps video to 720p? Is 29.97fps or 30fps supported in the 720p Bluray spec?Code:AssumeFPS(30000,1001, sync_audio=true) SSRC(48000)
If not, should I just do this to double 29.97fps to 59.94fps? It will have duplicate frames but the video will look the same as the source when viewing it.
Did I use the correct mode and order in Yadif? ThanksCode:AssumeFPS(30000,1001, sync_audio=true) SSRC(48000) Yadif(mode=1, order=1)
+ Reply to Thread
Results 1 to 11 of 11
Thanks. How do I sync the audio as the sync_audio=true part doesn't work with ChangeFPS?
ChangeFPS() doesn't change the running time of the video. If the source audio is in sync you don't need to do anything. You can even remux the original audio, avoiding recompressing it.
Is it 30.0 FPS ?
AssumeFPS(30000,1001, sync_audio=true) SSRC(48000) ChangeFPS(60000,1001)
There is a way to use the double pulldown flag using --pulldown double with x264 (instead of physically repeating frames, a flag does it), but not all BD authoring applications support it. The benefit is you encode 1/2 the frames, so quality is higher at a given bitrate (but duplicates don't "cost" a lot) . But again, less compatible with authoring applications
Is the assumeFPS and SSRC line needed as jagabo said that ChangeFPS on it's own will convert to 59.94 fps without any need to re-encode the audio?
Is the pulldown double method Bluray compliant if it's fake 60fps but actually 30fps? If I want to do that method then I'll have to re-encode the audio like the script in my original post, is that correct?
There is a difference between 30.0 FPS vs. 30000/1001 FPS (29.97003...). What do you have ? If you have 30.0 sync_audio is required to adjust the audio (or you can do it in an audio editor)
Pulldown double is fake 59.94 (actually fake 60000/1001) , but actually 30000/1001 in terms of encoded frames. Eitherway the audio is the same duration as 30000/1001 . But if you started with 30.0, you need to adjust the audio
Yes my source is 30fps progressive not 29.97 fps.
Sorry, could you clarify again, let's say I don't want to use the pulldown method and want the duplicate frames by converting to 59.94fps. Is the assumeFPS and SSRC line needed as jagabo said that ChangeFPS on it's own will convert 30fps to 59.94 fps without any need to re-encode the audio?
AssumeFPS only changes the video frame rate, so the audio will go out of sync - unless you use sync_audio=true with SSRC. This changes the audio duration so it's longer , synced up to 29.97 instead of 30.0 .
EDIT - Yes, ChangeFPS does not touch the audio , it just adds/drops frames to make up the frame rate . So that will work without adjusting the audio
Last edited by poisondeathray; 18th Jun 2020 at 13:14.
If you want to use the original audio all you need to do is convert the video from 30p to 59.94p with ChangeFPS(). It doesn't matter what the input and output frame rates are, ChangeFPS() doesn't change the running time of the video, so the original audio will remain in sync. Change FPS just duplicates or decimates frames to match the original run time.
From 30p to 59.94p ChangeFPS will result in one tiny jerk every ~30 seconds. If that falls in the middle of a panning shot you might notice it.
To avoid that jerk you can use AssumeFPS(30000,1001) before ChangeFPS(60000,1001). But then you will have to change the length of the audio and reencode it.
Last edited by jagabo; 18th Jun 2020 at 13:24.
The reason I personally would not use ChangeFPS by itself in this case, is there will be a dropped frame every 1001 frames.
eg. In sports, if you have someone running for a ball, skating for the puck, etc... there will be a jump or gap in the motion
If you use AssumeFPS, then ChangeFPS, you keep all the original frames, motion is smooth. But you have to re-encode the audio. Pros/cons