cutcutcodec.core.filter.video.add.FilterVideoAdd

class cutcutcodec.core.filter.video.add.FilterVideoAdd(in_streams: Iterable[Stream])[source]

Combine the stream in once by additing the overlapping slices.

Examples

>>> from cutcutcodec.core.filter.video.add import FilterVideoAdd
>>> from cutcutcodec.core.filter.video.delay import FilterVideoDelay
>>> from cutcutcodec.core.generation.video.equation import GeneratorVideoEquation
>>>
>>> (s_video_0,) = GeneratorVideoEquation("(i+1)/2", "1/2").out_streams
>>> (s_video_1,) = FilterVideoDelay(
...     GeneratorVideoEquation("(j+1)/2", "1/2").out_streams, 10
... ).out_streams
>>> (s_add_video,) = FilterVideoAdd([s_video_0, s_video_1]).out_streams
>>>
>>> s_video_0.snapshot(10, (2, 2))
FrameVideo(10, [[[  0, 128],
                 [  0, 128]],

                [[255, 128],
                 [255, 128]]])
>>> s_video_1.snapshot(10, (2, 2))
FrameVideo(10, [[[  0, 128],
                 [255, 128]],

                [[  0, 128],
                 [255, 128]]])
>>> s_add_video.snapshot(10, (2, 2))
FrameVideo(10, [[[  0, 191],
                 [ 85, 191]],

                [[170, 191],
                 [255, 191]]])
>>>

Initialise and create the class.

Parameters

in_streamstyping.Iterable[Stream]

Transmitted to cutcutcodec.core.classes.filter.Filter. About the overlaping portions, if the stream is an audio stream, a simple addition is performed but if the stream is a video stream, the frames are combined like a superposition of semi-transparent windows.

classmethod default()[source]

Provide a minimalist example of an instance of this node.