diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
index 708a849f5189b2e759115454c2a4f46dee9c7865..c0ddf0b287a9f051439f8d222ac5f3feab0fca3e 100644
--- a/fftools/cmdutils.c
+++ b/fftools/cmdutils.c
@@ -1907,6 +1907,8 @@ static void show_help_bsf(const char *name)
     }
 
     printf("Bit stream filter %s\n", bsf->name);
+    PRINT_CODEC_SUPPORTED(bsf, codec_ids, enum AVCodecID, "codecs",
+                          AV_CODEC_ID_NONE, GET_CODEC_NAME);
     if (bsf->priv_class)
         show_help_children(bsf->priv_class, AV_OPT_FLAG_BSF_PARAM);
 }
diff --git a/fftools/cmdutils.h b/fftools/cmdutils.h
index 87244891d4fac719387942c7791fff7b97910f80..6e2e0a2acbc84ad9d6aeb2c30ff124c037b16015 100644
--- a/fftools/cmdutils.h
+++ b/fftools/cmdutils.h
@@ -625,6 +625,9 @@ void *grow_array(void *array, int elem_size, int *size, int new_size);
 #define GET_PIX_FMT_NAME(pix_fmt)\
     const char *name = av_get_pix_fmt_name(pix_fmt);
 
+#define GET_CODEC_NAME(id)\
+    const char *name = avcodec_descriptor_get(id)->name;
+
 #define GET_SAMPLE_FMT_NAME(sample_fmt)\
     const char *name = av_get_sample_fmt_name(sample_fmt)