diff --git a/tools/ismindex.c b/tools/ismindex.c
index f49916ae0387b2e94f56335ae51ddd393e0d3454..a6a9763beb703b02b9d89a4a630561a71e24695e 100644
--- a/tools/ismindex.c
+++ b/tools/ismindex.c
@@ -325,6 +325,12 @@ static int handle_file(struct Tracks *tracks, const char *file, int split,
     for (i = 0; i < ctx->nb_streams; i++) {
         struct Track **temp;
         AVStream *st = ctx->streams[i];
+
+        if (st->codec->bit_rate == 0) {
+            fprintf(stderr, "Skipping track %d in %s as it has zero bitrate\n", i, file);
+            continue;
+        }
+
         track = av_mallocz(sizeof(*track));
         if (!track) {
             err = AVERROR(ENOMEM);