diff options
Diffstat (limited to 'source/blender/blenkernel/intern/writeffmpeg.c')
-rw-r--r-- | source/blender/blenkernel/intern/writeffmpeg.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c index ae41b8f3272..fb8bfa1dfd9 100644 --- a/source/blender/blenkernel/intern/writeffmpeg.c +++ b/source/blender/blenkernel/intern/writeffmpeg.c @@ -589,8 +589,13 @@ static AVStream *alloc_video_stream(FFMpegContext *context, c->time_base.num = (int)rd->frs_sec_base; } else { - c->time_base.den = rd->frs_sec * 100000; - c->time_base.num = ((double)rd->frs_sec_base) * 100000; + // This calculates a fraction (DENUM_MAX / num) which approximates the scene + // frame rate (frs_sec / frs_sec_base). + const double DENUM_MAX = 2147483647; + const double num = (DENUM_MAX / (double)rd->frs_sec) * rd->frs_sec_base; + + c->time_base.den = (int)DENUM_MAX; + c->time_base.num = (int)num; } c->gop_size = context->ffmpeg_gop_size; |