diff --git a/ffmpeg.c b/ffmpeg.c
index 6c51ad0f3c11a29f515c113493a1d2ef6a8508db..9cc722fb00b364568752d4930ddc214c310687f5 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -1093,6 +1093,10 @@ static int reap_filters(void)
                 }
                 break;
             }
+            if (ost->finished) {
+                av_frame_unref(filtered_frame);
+                continue;
+            }
             frame_pts = AV_NOPTS_VALUE;
             if (filtered_frame->pts != AV_NOPTS_VALUE) {
                 int64_t start_time = (of->start_time == AV_NOPTS_VALUE) ? 0 : of->start_time;