Video¶
Video Streams¶
- class av.video.stream.VideoStream¶
Bases:
av.stream.Stream
Video Codecs¶
Video Formats¶
- class av.video.format.VideoFormat¶
Bases:
object>>> format = VideoFormat('rgb24') >>> format.name 'rgb24'
- bits_per_pixel¶
- chroma_height(luma_height=0)¶
Height of a chroma plane relative to a luma plane.
- Parameters
luma_height (int) – Height of the luma plane; defaults to
self.height.
- chroma_width(luma_width=0)¶
Width of a chroma plane relative to a luma plane.
- Parameters
luma_width (int) – Width of the luma plane; defaults to
self.width.
- components¶
- has_palette¶
Pixel format has a palette in data[1], values are indexes in this palette.
- height¶
- is_big_endian¶
Pixel format is big-endian.
- is_bit_stream¶
All values of a component are bit-wise packed end to end.
- is_planar¶
At least one pixel component is not in the first data plane.
- is_rgb¶
The pixel format contains RGB-like data (as opposed to YUV/grayscale).
- name¶
Canonical name of the pixel format.
- padded_bits_per_pixel¶
- width¶
- class av.video.format.VideoFormatComponent¶
Bases:
object- bits¶
Number of bits in the component.
- height¶
The height of this component’s plane.
Requires the parent
VideoFormatto have a height.
- index¶
- is_alpha¶
Is this component an alpha channel?
- is_chroma¶
Is this component a chroma channel?
- is_luma¶
Is this compoment a luma channel?
- plane¶
The index of the plane which contains this component.
- width¶
The width of this component’s plane.
Requires the parent
VideoFormatto have a width.
Video Frames¶
- class av.video.frame.VideoFrame¶
Bases:
av.frame.FrameA single video frame.
- Parameters
>>> frame = VideoFrame(1920, 1080, 'rgb24')
Structural¶
- VideoFrame.width¶
Width of the image, in pixels.
- VideoFrame.height¶
Height of the image, in pixels.
- VideoFrame.format¶
The
VideoFormatof the frame.
- VideoFrame.planes¶
A tuple of
VideoPlaneobjects.
Types¶
- VideoFrame.key_frame¶
Is this frame a key frame?
Wraps AVFrame.key_frame.
- VideoFrame.interlaced_frame¶
Is this frame an interlaced or progressive?
Wraps AVFrame.interlaced_frame.
- VideoFrame.pict_type¶
One of
PictureType.Wraps AVFrame.pict_type.
- class av.video.frame.PictureType¶
Bases:
av.enum.EnumItemWraps
AVPictureType(AV_PICTURE_TYPE_*).PictureType Name
Flag Value
Meaning in FFmpeg
NONE
0x0
Undefined
I
0x1
Intra
P
0x2
Predicted
B
0x3
Bi-directional predicted
S
0x4
S(GMC)-VOP MPEG-4
SI
0x5
Switching intra
SP
0x6
Switching predicted
BI
0x7
BI type
Conversions¶
- VideoFrame.reformat(width=None, height=None, format=None, src_colorspace=None, dst_colorspace=None, interpolation=None)¶
Create a new
VideoFramewith the given width/height/format/colorspace.See also
VideoReformatter.reformat()for arguments.
- VideoFrame.to_rgb(**kwargs)¶
Get an RGB version of this frame.
Any
**kwargsare passed toVideoReformatter.reformat().>>> frame = VideoFrame(1920, 1080) >>> frame.format.name 'yuv420p' >>> frame.to_rgb().format.name 'rgb24'
- VideoFrame.to_image(**kwargs)¶
Get an RGB
PIL.Imageof this frame.Any
**kwargsare passed toVideoReformatter.reformat().Note
PIL or Pillow must be installed.
- VideoFrame.to_ndarray(**kwargs)¶
Get a numpy array of this frame.
Any
**kwargsare passed toVideoReformatter.reformat().Note
Numpy must be installed.
Note
For
pal8, an(image, palette)tuple will be returned,with the palette being in ARGB (PyAV will swap bytes if needed).
- static VideoFrame.from_image(img)¶
Construct a frame from a
PIL.Image.
- static VideoFrame.from_ndarray(array, format='rgb24')¶
Construct a frame from a numpy array.
Note
for
pal8, an(image, palette)pair must be passed.palette must have shape (256, 4) and is given in ARGB format (PyAV will swap bytes if needed).
Video Planes¶
Video Reformatters¶
- class av.video.reformatter.VideoReformatter¶
Bases:
objectAn object for reformatting size and pixel format of
VideoFrame.It is most efficient to have a reformatter object for each set of parameters you will use as calling
reformat()will reconfigure the internal object.- reformat(VideoFrame frame, width=None, height=None, format=None, src_colorspace=None, dst_colorspace=None, interpolation=None)¶
Create a new
VideoFramewith the given width/height/format/colorspace.Returns the same frame untouched if nothing needs to be done to it.
- Parameters
width (int) – New width, or
Nonefor the same width.height (int) – New height, or
Nonefor the same height.format (
VideoFormatorstr) – New format, orNonefor the same format.src_colorspace (
Colorspaceorstr) – Current colorspace, orNoneforDEFAULT.dst_colorspace (
Colorspaceorstr) – Desired colorspace, orNoneforDEFAULT.interpolation (
Interpolationorstr) – The interpolation method to use, orNoneforBILINEAR.
Enums¶
- class av.video.reformatter.Interpolation¶
Bases:
av.enum.EnumItemWraps the
SWS_*flags.Interpolation Name
Flag Value
Meaning in FFmpeg
FAST_BILINEAR
0x1
Fast bilinear
BILINEAR
0x2
Bilinear
BICUBIC
0x4
Bicubic
X
0x8
Experimental
POINT
0x10
Nearest neighbor / point
AREA
0x20
Area averaging
BICUBLIN
0x40
Luma bicubic / chroma bilinear
GAUSS
0x80
Gaussian
SINC
0x100
Sinc
LANCZOS
0x200
Lanczos
SPLINE
0x400
Bicubic spline
- class av.video.reformatter.Colorspace¶
Bases:
av.enum.EnumItemWraps the
SWS_CS_*flags. There is a bit of overlap in these names which comes from FFmpeg and backards compatibility.Colorspace Name
Flag Value
Meaning in FFmpeg
ITU709
0x1
-
FCC
0x4
-
ITU601
0x5
-
ITU624
0x5
-
SMPTE170M
0x5
-
SMPTE240M
0x7
-
DEFAULT
0x5
-
smpte240
0x7
-