imageio.plugins.pyav.PyAVPlugin.write#
- PyAVPlugin.write(ndimage: Union[ndarray, List[ndarray]], *, codec: Optional[str] = None, is_batch: bool = True, fps: int = 24, in_pixel_format: str = 'rgb24', out_pixel_format: Optional[str] = None, filter_sequence: Optional[List[Tuple[str, Union[str, dict]]]] = None, filter_graph: Optional[Tuple[dict, List]] = None) Optional[bytes] [source]#
Save a ndimage as a video.
Given a batch of frames (stacked along the first axis) or a list of frames, encode them and add the result to the ImageResource.
- Parameters:
- ndimageArrayLike, List[ArrayLike]
The ndimage to encode and write to the ImageResource.
- codecstr
The codec to use when encoding frames. Only needed on first write and ignored on subsequent writes.
- is_batchbool
If True (default), the ndimage is a batch of images, otherwise it is a single image. This parameter has no effect on lists of ndimages.
- fpsstr
The resulting videos frames per second.
- in_pixel_formatstr
The pixel format of the incoming ndarray. Defaults to “rgb24” and can be any stridable pix_fmt supported by FFmpeg.
- out_pixel_formatstr
The pixel format to use while encoding frames. If None (default) use the codec’s default.
- filter_sequenceList[str, str, dict]
If not None, apply the given sequence of FFmpeg filters to each ndimage. Check the (module-level) plugin docs for details and examples.
- filter_graph(dict, List)
If not None, apply the given graph of FFmpeg filters to each ndimage. The graph is given as a tuple of two dicts. The first dict contains a (named) set of nodes, and the second dict contains a set of edges between nodes of the previous dict. Check the (module-level) plugin docs for details and examples.
- Returns:
- encoded_imagebytes or None
If the chosen ImageResource is the special target
"<bytes>"
then write will return a byte string containing the encoded image data. Otherwise, it returns None.
Notes
When writing
<bytes>
, the video is finalized immediately after the first write call and calling write multiple times to append frames is not possible.