Source code for arsenal.video

from typing import Union

import numpy as np
from moviepy.video.io.html_tools import html_embed
from moviepy.video.io.ImageSequenceClip import ImageSequenceClip
from moviepy.video.VideoClip import VideoClip


[docs]def clip_to_html( clip: Union[VideoClip, np.ndarray], verbose=False, fps=24, **kwargs ) -> str: """Convert a MoviePy clip to an HTML string. .. code-block:: python from IPython.display import display clip = ImageSequenceClip(list(np_video)) display(clip_to_html(clip)) Args: clip: MoviePy clip. verbose: Whether to print out FFmpeg information during encoding fps: FPS of clip **kwargs: Any kwargs to pass down to :py:func:`html_embed` Returns: String of HTML with a ``<video>`` tag and base64 encoded media. Useful for use with ``IPython.display.display`` to show videos. """ if isinstance(clip, (np.ndarray, list)): clip = ImageSequenceClip(list(clip), fps=fps) assert hasattr(clip, "write_videofile") if clip.fps is None: clip.fps = fps if not verbose: rd_kwargs = {"logger": None} else: rd_kwargs = dict() return html_embed(clip, rd_kwargs=rd_kwargs, **kwargs)