[SOLVED] Incorrect FPS on VFR

Support forum for DGDecNV
Post Reply
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: Incorrect FPS on VFR

Post by admin »

Here is what I found:

Almost all of the frame durations are fairly close to 16.67 ms. This is 60 fps as encoded in the stream. The variation around 60 fps is jitter.

The only exception is the 13th frame with a duration of 288 ms, likely due to a lag in the encoder. I don't know if a longer capture may have more of them. Let's suppose it does. Since you talk about audio desync, I suppose the audio doesn't also get lagged.

When I calculate the effective frame rate with all the frames it is ~58.84. When I exclude the one long frame, it is ~59.96. That could be either 59.94 or 60 fps; the stream is not long enough to be sure.

IMHO, the fully correct way to handle this would be to set it as 60 fps and then delay the audio at each lag point (assuming that the audio is not also lagged!). But this would require custom code. So setting the false lower frame rate 58.84 makes the video and audio lengths the same but doesn't really fix the sync in a correct way. It won't drift out of sync but every point of the file will be a little out of sync.

I'm not going to do anything about this. You'll have to use AssumeFPS() if you want to deviate from the stream's encoded frame rate.
User avatar
Morpheus
Posts: 14
Joined: Thu Mar 29, 2018 12:18 am

Re: Incorrect FPS on VFR

Post by Morpheus »

admin wrote:
Thu May 17, 2018 3:09 pm
Here is what I found:

Almost all of the frame durations are fairly close to 16.67 ms. This is 60 fps as encoded in the stream. The variation around 60 fps is jitter.

The only exception is the 13th frame with a duration of 288 ms, likely due to a lag in the encoder. I don't know if a longer capture may have more of them. Let's suppose it does. Since you talk about audio desync, I suppose the audio doesn't also get lagged.

When I calculate the effective frame rate with all the frames it is ~58.84. When I exclude the one long frame, it is ~59.96. That could be either 59.94 or 60 fps; the stream is not long enough to be sure.

IMHO, the fully correct way to handle this would be to set it as 60 fps and then delay the audio at each lag point (assuming that the audio is not also lagged!). But this would require custom code. So setting the false lower frame rate 58.84 makes the video and audio lengths the same but doesn't really fix the sync in a correct way. It won't drift out of sync but every point of the file will be a little out of sync.

I'm not going to do anything about this. You'll have to use AssumeFPS() if you want to deviate from the stream's encoded frame rate.
Okay.I will use AssumeFPS().Indeed,it is a problem of shadowplay,not yours.

Thanks.
Post Reply