diff --git a/ffmpeg.c b/ffmpeg.c
index 34958abee3ff970db32f7b2e3ffeead5fd1ff3fc..9784b5235140ad846ec715fc8734a71d9e804ac6 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -1125,11 +1125,11 @@ static int av_encode(AVFormatContext **output_files,
             switch (ist->st->codec.codec_type) {
             case CODEC_TYPE_AUDIO:
                 av_frac_init(&ist->next_pts, 
-                             0, 0, is->pts_num * ist->st->codec.sample_rate);
+                             0, 0, (uint64_t)is->pts_num * ist->st->codec.sample_rate);
                 break;
             case CODEC_TYPE_VIDEO:
                 av_frac_init(&ist->next_pts, 
-                             0, 0, is->pts_num * ist->st->codec.frame_rate);
+                             0, 0, (uint64_t)is->pts_num * ist->st->codec.frame_rate);
                 break;
             default:
                 break;
@@ -1275,7 +1275,7 @@ static int av_encode(AVFormatContext **output_files,
                     }
                     data_buf = (uint8_t *)samples;
 		    av_frac_add(&ist->next_pts, 
-			        is->pts_den * data_size / (2 * ist->st->codec.channels));
+			        (uint64_t)is->pts_den * data_size / (2 * ist->st->codec.channels));
                     break;
                 case CODEC_TYPE_VIDEO:
                     {
@@ -1300,7 +1300,7 @@ static int av_encode(AVFormatContext **output_files,
                             continue;
                         }
                         av_frac_add(&ist->next_pts, 
-			            is->pts_den * ist->st->codec.frame_rate_base);          
+			            (uint64_t)is->pts_den * ist->st->codec.frame_rate_base);          
                     }
                     break;
                 default: