Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
@requires_duration
def slide_out(clip, duration, side):
""" Makes the clip go away by one side of the screen.
Only works when the clip is included in a CompositeVideoClip,
and if the clip has the same size as the whole composition.
Parameters
===========
clip
A video clip.
duration
Time taken for the clip to fully disappear.
side
@requires_duration
def preview(clip, fps=22050, buffersize=4000, nbytes=2, audioFlag=None,
videoFlag=None):
"""
Plays the sound clip with pygame.
Parameters
-----------
fps
Frame rate of the sound. 44100 gives top quality, but may cause
problems if your computer is not fast enough and your clip is
complicated. If the sound jumps during the preview, lower it
(11025 is still fine, 5000 is tolerable).
buffersize
The sound is not generated all at once, but rather made by bunches
@requires_duration
def audio_fadeout(clip, duration):
""" Return a sound clip where the sound fades out progressively
over ``duration`` seconds at the end of the clip. """
def fading(gf,t):
gft = gf(t)
if np.isscalar(t):
factor = min(1.0 * (clip.duration - t) / duration, 1)
factor = np.array([factor,factor])
else:
factor = np.minimum( 1.0 * (clip.duration - t) / duration, 1)
factor = np.vstack([factor,factor]).T
return factor * gft
return clip.fl(fading, keep_duration = True)
@requires_duration
def freeze_at_start(clip, freeze_duration=None, total_duration=None):
""" Momentarily freeze the clip on its first frame.
With ``duration``you can specify the duration of the freeze.
With ``total_duration`` you can specify the total duration of
the clip and the freeze (i.e. the duration of the freeze is
automatically calculated). If neither is provided, the freeze
will have an infinite length.
"""
freezed_clip = ImageClip(clip.get_frame(0))
if clip.mask:
freezed_clip.mask = ImageClip(clip.mask.get_frame(0))
if total_duration:
freeze_duration = total_duration - clip.duration
@requires_duration
@use_clip_fps_by_default
@convert_masks_to_RGB
def write_images_sequence(self, nameformat, fps=None, verbose=True,
withmask=True, logger='bar'):
""" Writes the videoclip to a sequence of image files.
Parameters
-----------
nameformat
A filename specifying the numerotation format and extension
of the pictures. For instance "frame%03d.png" for filenames
indexed with 3 digits and PNG format. Also possible:
"some_folder/frame%04d.jpeg", etc.
fps
@requires_duration
def fadeout(clip, duration, final_color=None):
"""
Makes the clip progressively fade to some color (black by default),
over ``duration`` seconds at the end of the clip. Can be used for
masks too, where the final color must be a number between 0 and 1.
For cross-fading (progressive appearance or disappearance of a clip
over another clip, see ``composition.crossfade``
"""
if final_color is None:
final_color = 0 if clip.ismask else [0,0,0]
final_color = np.array(final_color)
def fl(gf, t):
if (clip.duration-t)>=duration:
@requires_duration
def to_soundarray(self, tt=None, fps=None, quantize=False, nbytes=2, buffersize=50000):
"""
Transforms the sound into an array that can be played by pygame
or written in a wav file. See ``AudioClip.preview``.
Parameters
------------
fps
Frame rate of the sound for the conversion.
44100 for top quality.
nbytes
Number of bytes to encode the sound: 1 for 8bit sound,
2 for 16bit, 4 for 32bit sound.
@requires_duration
@apply_to_mask
@apply_to_audio
def loop(self, n=None, duration=None):
"""
Returns a clip that plays the current clip in an infinite loop.
Ideal for clips coming from gifs.
Parameters
------------
n
Number of times the clip should be played. If `None` the
the clip will loop indefinitely (i.e. with no set duration).
duration
Total duration of the clip. Can be specified instead of n.
"""
@requires_duration
def freeze_at_end(clip, freeze_duration=None,
total_duration=None, delta=0.05):
"""
Makes the clip freeze on its last frame. With ``duration`` you can
specify the duration of the freeze. With ``total_duration`` you can
specify the total duration of the clip and the freeze (i.e. the
duration of the freeze is automatically calculated). If neither
is provided, the freeze will have an infinite length.
The clip is frozen on the frame at time (clip.duration - delta)
"""
freezed_clip = ImageClip(clip.get_frame(clip.end - delta))
if total_duration:
freeze_duration = total_duration - clip.duration
if freeze_duration:
@requires_duration
def freeze(clip, t=0, freeze_duration=None, total_duration=None,
padding_end=0):
""" Momentarily freeze the clip at time t.
Set `t='end'` to freeze the clip at the end (actually it will freeze on the
frame at time clip.duration - padding_end seconds).
With ``duration``you can specify the duration of the freeze.
With ``total_duration`` you can specify the total duration of
the clip and the freeze (i.e. the duration of the freeze is
automatically calculated). One of them must be provided.
"""
if t=='end':
t = clip.duration - padding_end
if freeze_duration is None: