Hi Alex,

> On Jan 23, 2015, at 10:23 AM, Alex Kink <alexk...@gmail.com> wrote:
> 
> Hello all.
> 
> Is there a way to detect blue screen (usually generated by analog videotape 
> equipment) using ffmpeg. I know there is a way to detect black screen.
> 
> Below is a sample of what I have in mind.
> 
> https://www.youtube.com/watch?v=fC_bO-4uwFk

You could use the metadata output of the signalstats filter to get the average 
hue (HUEAVG), like this:

 ffprobe -f lavfi 
movie=AnalogVideoToBlueScreen5seconds-fC_bO-4uwFk.mp4,signalstats -show_entries 
frame_tags=lavfi.signalstats.HUEAVG -of flat

The HUEAVG value for a blue frame is 279, so finding frames where HUEAVG equals 
279 +/- some margin would find frames are blue.

If looking for a specific saturation of blue you could use the average values 
of the chroma plans (UAVG and VAVG), which could be accessed like this:

ffprobe -f lavfi 
movie=AnalogVideoToBlueScreen5seconds-fC_bO-4uwFk.mp4,signalstats -show_entries 
frame_tags=lavfi.signalstats.UAVG,lavfi.signalstats.VAVG -of flat

The specific blue is your video is roughly UAVG=205 and VAVG=114, so finding 
frames close to those values would give you the blue frames you're looking for.

Another option could be using the geq filter with if statements which would 
replace U and V values with black if in those numerical ranges, then adding 
blackdetect next in the filterchain.

Dave Rice
_______________________________________________
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

Reply via email to