Skip to content

Video transforms

Reference for the video transforms Dreadnode ships for multimodal red teaming - frame injection, distributed payloads and overlays, temporal ordering and sampling, and temporal distortion effects.

Video transforms operate on the frame sequence, so they cover both per-frame spatial edits and temporal (frame-ordering) manipulations. A request refused as text may be complied with when it is distributed across video frames.

TransformWhat it doesKey params
video_frame_injectEmbed a payload in frames (stego/overlay/subliminal)payload, method, frame_interval
subliminal_frameInsert a brief flash frame carrying textpayload, insert_at_frame
keyframe_replaceReplace a single (sampled) frame with a payload framepayload, frame_index
scene_cut_injectSplice a run of payload frames at a cutpayload, index, n_frames
replace_with_color_framesOverwrite a run of frames with solid colorstart, count, color
video_metadata_injectInject into a metadata fieldpayload, field
TransformWhat it doesKey params
per_frame_text_scrollScroll a payload across frames (marquee)payload, speed_px
ghost_overlayAlpha-blend a faint payload across all framespayload/overlay, opacity
letterbox_captionDraw a letterbox bar with static captioncaption, position
TransformWhat it doesKey params
temporal_shuffleReorder frames (whole or windowed)window, seed
frame_dropoutDrop frames (hold or remove)drop_ratio, mode
frame_reversePlay the sequence backwards-
freeze_frameRepeat one frame to stallframe_index, hold
loop_framesConcatenate the sequence to itselfcount
frame_rate_up / frame_rate_downDuplicate or decimate framesfactor
TransformWhat it doesKey params
frame_brightness_flickerPer-frame brightness flickerdepth, period_frames
strobeReplace every Nth frame with a flashperiod, color
rolling_temporal_jitterHorizontal shift ramping frame-to-framemax_shift
motion_smearBlend each frame with its predecessorweight
frame_interpolate_blendInsert cross-fade framessteps
temporal_noiseIndependent per-frame noisescale, seed
frames_from_image_transformLift any image transform to all frames (SDK-only)image_transform, frame_interval
from dreadnode.transforms import image, video
# Concise video-attack stack: sampled-keyframe swap + distributed payload + temporal disruption.
transforms = [
video.keyframe_replace("INJECT", frame_index=0),
video.per_frame_text_scroll("secret instruction"),
video.temporal_shuffle(seed=0),
video.frames_from_image_transform(image.fog()), # apply an image corruption to every frame
]
TransformWhat it doesKey params
frame_jitterIndependent random spatial shift per frame (shake)max_shift, seed
color_flickerCycle a per-frame hue shift (chromatic flicker)depth, period_frames
stutterRandomly repeat frames (judder)repeat_ratio, seed
reverse_frame_segmentsReverse frame order within fixed windowssegment
speed_rampNon-uniform resampling: slow start, fast end-
pip_injectComposite a small picture-in-picture payload panelpayload, position, size_ratio

See Transforms for how to apply transforms with any attack.