diff --git a/src/video.cpp b/src/video.cpp index 0900d999de6..ae7050ab34b 100644 --- a/src/video.cpp +++ b/src/video.cpp @@ -318,8 +318,8 @@ namespace video { avcodec_encode_session_t(avcodec_encode_session_t &&other) noexcept = default; ~avcodec_encode_session_t() { - // Flush any remaining frames in the encoder - if (avcodec_send_frame(avcodec_ctx.get(), nullptr) == 0) { + // Flush any remaining frames in the encoder if the encoder started up (frame num > delay) + if (avcodec_ctx->frame_num > avcodec_ctx->delay && avcodec_send_frame(avcodec_ctx.get(), nullptr) == 0) { packet_raw_avcodec pkt; while (avcodec_receive_packet(avcodec_ctx.get(), pkt.av_packet) == 0); }