[FFmpeg-user] How to use ffmpeg to detect commercials

Bo Berglund bo.berglund at gmail.com
Fri Oct 1 11:11:28 EEST 2021

On Thu, 30 Sep 2021 14:35:27 +0200, Bo Berglund <bo.berglund at gmail.com> wrote:

>I searched similar questions and found this regarding blackdetect filter on
>It uses ffprobe and I tested it on one of my 64 minute videos and it could
>detect a number of black sections with start/end pairs:
>ffprobe -f lavfi -i "movie=myvideo.mp4,blackdetect[out0]" -show_entries tags=lavfi.black_start,lavfi.black_end -of default=nw=1 -v quiet
>But in this case there were a number of false detections as well (black sections
>within a commercial block) and each output was duplicated tike this:

I have realized from comments here that the logo detection scheme is not really
workable, so I am back to using this blackdetect method.

One thing tah bugs me is that the command shown above duplicates the output
value on two lines, how can I make ffprobe output only one line for each
It would be easier to process in a script if the output was like this instead:


Then a start is followed by an end and so on and the time between the start and
end shows if a commercial insertion is found (short time between start and end)
or if there is a deliberate long black section (which I would anyway want to

- How can i modify the ffprobe command such that it outputs just one line for
every start or end point? I am not clever enough to figure out how ffprobe
actually works...

- I notice a detection that lasts only 34 ms, could such be valid at all? It
seems like a single video frame...

Bo Berglund
Developer in Sweden

More information about the ffmpeg-user mailing list