How to conditionally drop frames in the VSE (Video Sequence Editor) based on a dynamic condition?
You can do some cuts programmatically with Python and it should be well possible to use this black/white information as a source for the timing of these cuts. I've already done such cutting of sequences with Audacity Text markers from a file:

import bpy

f = open('cuts.txt', 'r', encoding='utf-8')
data = f.readlines()
data = [w.replace(',', '.') for w in data]
f.close()

#bpy.data.scenes['Scene'].timeline_markers.clear()

for s in bpy.data.scenes['Scene'].sequence_editor.sequences_all:
    s.select = False

for i in range(0, len(data)):
    entry = data[i].split()
    start = int(bpy.utils.time_to_frame(float(entry[0]), fps=None, fps_base=None))
    end   = int(bpy.utils.time_to_frame(float(entry[1]), fps=None, fps_base=None))
    print(entry[2] + ': ' + str(start) + ' ' + str(end))

    for s in bpy.data.scenes['Scene'].sequence_editor.sequences_all:
        if s.frame_final_start &lt; start and s.frame_final_end &gt; end and s.channel == 2:
            print(s.name)
            s.select = True
            bpy.ops.sequencer.cut(frame=start, type='SOFT', side='RIGHT')
            for s2 in bpy.data.scenes['Scene'].sequence_editor.sequences_all:
                if s2.select:
                    s2.mute = False
            bpy.ops.sequencer.cut(frame=end,  type='SOFT', side='RIGHT')
            for s2 in bpy.data.scenes['Scene'].sequence_editor.sequences_all:
                if s2.select:
                    s2.mute = True


Now the only problem remaining should be the detection of the black/white stuff. There's a great solution from W-Sfax: Blender: Access Render Results pixels directly from Python

import bpy
import numpy as np

# switch on nodes
bpy.context.scene.use_nodes = True
tree = bpy.context.scene.node_tree
links = tree.links

# clear default nodes
for n in tree.nodes:
tree.nodes.remove(n)

# create input render layer node
rl = tree.nodes.new('CompositorNodeRLayers')      
rl.location = 185,285

# create output node
v = tree.nodes.new('CompositorNodeViewer')   
v.location = 750,210
v.use_alpha = False

# Links
links.new(rl.outputs[0], v.inputs[0])  # link Image output to Viewer input

# render
bpy.ops.render.render()

# get viewer pixels
pixels = bpy.data.images['Viewer Node'].pixels
print(len(pixels)) # size is always width * height * 4 (rgba)

# copy buffer to numpy array for faster manipulation
arr = np.array(pixels[:])