diff --git a/libavformat/nuv.c b/libavformat/nuv.c
index 103223ee83c92aaed36e6eb1130657ed8e8c7a75..cc037f5ac9fe65de080594c700007b0fda8d7d63 100644
--- a/libavformat/nuv.c
+++ b/libavformat/nuv.c
@@ -218,6 +218,9 @@ static int nuv_packet(AVFormatContext *s, AVPacket *pkt) {
                 ret = av_new_packet(pkt, copyhdrsize + size);
                 if (ret < 0)
                     return ret;
+                // HACK: we have no idea if it is a keyframe,
+                // but if we mark none seeking will not work at all.
+                pkt->flags |= PKT_FLAG_KEY;
                 pkt->pos = pos;
                 pkt->pts = AV_RL32(&hdr[4]);
                 pkt->stream_index = ctx->v_id;
@@ -231,6 +234,7 @@ static int nuv_packet(AVFormatContext *s, AVPacket *pkt) {
                     break;
                 }
                 ret = av_get_packet(pb, pkt, size);
+                pkt->flags |= PKT_FLAG_KEY;
                 pkt->pos = pos;
                 pkt->pts = AV_RL32(&hdr[4]);
                 pkt->stream_index = ctx->a_id;