diff --git a/doc/ffprobe.texi b/doc/ffprobe.texi
index cbe48a760d04297df0c085c2eb8208fcf31d0a0c..19b32ee1b189b351939dfd70075a502e3c36ea4e 100644
--- a/doc/ffprobe.texi
+++ b/doc/ffprobe.texi
@@ -268,6 +268,11 @@ containing a newline ('\n'), a carriage return ('\r'), a double quote
 Perform no escaping.
 @end table
 
+@item print_section, p
+Print the section name at the begin of each line if the value is
+@code{1}, disable it with value set to @code{0}. Default value is
+@code{1}.
+
 @end table
 
 @section csv
diff --git a/ffprobe.c b/ffprobe.c
index ce0183ab891ebe60c4838d0b90a1c6fe84930bed..2edbd1c79768b5b0d8022c1aaa790ecf629e47e6 100644
--- a/ffprobe.c
+++ b/ffprobe.c
@@ -593,6 +593,7 @@ typedef struct CompactContext {
     char *item_sep_str;
     char item_sep;
     int nokey;
+    int print_section;
     char *escape_mode_str;
     const char * (*escape_str)(AVBPrint *dst, const char *src, const char sep, void *log_ctx);
 } CompactContext;
@@ -607,6 +608,8 @@ static const AVOption compact_options[]= {
     {"nk",       "force no key printing", OFFSET(nokey),           AV_OPT_TYPE_INT,    {.i64=0},    0,        1        },
     {"escape",   "set escape mode",       OFFSET(escape_mode_str), AV_OPT_TYPE_STRING, {.str="c"},  CHAR_MIN, CHAR_MAX },
     {"e",        "set escape mode",       OFFSET(escape_mode_str), AV_OPT_TYPE_STRING, {.str="c"},  CHAR_MIN, CHAR_MAX },
+    {"print_section", "print section name", OFFSET(print_section), AV_OPT_TYPE_INT,    {.i64=1},    0,        1        },
+    {"p",             "print section name", OFFSET(print_section), AV_OPT_TYPE_INT,    {.i64=1},    0,        1        },
     {NULL},
 };
 
@@ -653,7 +656,8 @@ static void compact_print_section_header(WriterContext *wctx, const char *sectio
 {
     CompactContext *compact = wctx->priv;
 
-    printf("%s%c", section, compact->item_sep);
+    if (compact->print_section)
+        printf("%s%c", section, compact->item_sep);
 }
 
 static void compact_print_section_footer(WriterContext *wctx, const char *section)