[FFmpeg-devel] [PATCH] Fix wrong time_base bug

Donough Liu donoughliu at gmail.com
Mon Mar 15 14:06:09 EET 2021


Set time_base to inv of frame rate is only valid when input video have fixed frame rate.

Signed-off-by: Donough Liu <donoughliu at gmail.com>
---
 doc/examples/transcoding.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/examples/transcoding.c b/doc/examples/transcoding.c
index 5aff08c135..49ae32c719 100644
--- a/doc/examples/transcoding.c
+++ b/doc/examples/transcoding.c
@@ -170,7 +170,7 @@ static int open_output_file(const char *filename)
                 else
                     enc_ctx->pix_fmt = dec_ctx->pix_fmt;
                 /* video time_base can be set to whatever is handy and supported by encoder */
-                enc_ctx->time_base = av_inv_q(dec_ctx->framerate);
+                enc_ctx->time_base = av_inv_q(av_mul_q(dec_ctx->framerate, (AVRational){dec_ctx->ticks_per_frame, 1}));
             } else {
                 enc_ctx->sample_rate = dec_ctx->sample_rate;
                 enc_ctx->channel_layout = dec_ctx->channel_layout;
-- 
2.25.1



More information about the ffmpeg-devel mailing list