Skip to content

Composition

CompItem

Bases: AVItem

The CompItem object represents a composition, and allows you to manipulate and get information about it.

Example
from py_aep import parse

app = parse("project.aep")
comp = app.project.compositions[0]
print(comp.frame_rate)
for layer in comp:
    ...
Info

[Item][] is the base class for [AVItem][] object and for [FolderItem][] object, which are in turn the base classes for various other item types, so [Item][] attributes and methods are available when working with all of these item types.

See: https://ae-scripting.docsforadobe.dev/item/compitem/

Attributes

active_camera

active_camera: CameraLayer | None

The front-most enabled camera layer, or None.

Returns the first [CameraLayer][] that is active at the current composition time. The value is None when the composition contains no active camera layers.

adjustment_layers

adjustment_layers: list[AVLayer]

A list of the adjustment layers in this composition.

av_layers

av_layers: list[AVLayer]

A list of all [AVLayer][] objects in this composition.

bg_color

bg_color = ChunkField[List[float]](
    "_cdta", "bg_color", validate=validate_rgb_color
)

The background color of the composition. The three array values specify the red, green, and blue components of the color. Read / Write.

camera_layers

camera_layers: list[CameraLayer]

A list of the camera layers in this composition.

comment

comment: str

The item comment. Read / Write.

composition_layers

composition_layers: list[AVLayer]

A list of the composition layers whose source are compositions.

display_start_frame

display_start_frame = ChunkField[int](
    "_cdta",
    "display_start_frame",
    validate=_validate_number(
        min=lambda self: int(-10800.0 * frame_rate),
        max=lambda self: int(86339.0 * frame_rate),
        integer=True,
    ),
)

The frame value of the beginning of the composition. Read / Write.

display_start_time

display_start_time = ChunkField[float](
    "_cdta",
    "display_start_time",
    validate=_validate_number(min=-10800.0, max=86339.0),
)

The time set as the beginning of the composition, in seconds. This is the equivalent of the Start Timecode or Start Frame setting in the Composition Settings dialog box. Read / Write.

draft3d

draft3d = ChunkField[bool]('_cdta', 'draft3d')

When True, Draft 3D mode is enabled for the composition. Read / Write.

Warning

Deprecated in After Effects 2024 in favor of the new Draft 3D mode.

drop_frame

drop_frame = ChunkField[bool](
    "_cdrp",
    "value",
    transform=bool,
    reverse=int,
    default=False,
)

When True, timecode is displayed in drop-frame format. Only applicable when frameRate is 29.97 or 59.94. Read / Write.

duration

duration = ChunkField[float](
    "_cdta", "duration", validate=validate_duration
)

The duration of the item in seconds. Read / Write.

file_layers

file_layers: list[AVLayer]

A list of the layers whose source are file footages.

footage_layers

footage_layers: list[AVLayer]

A list of the composition layers whose source are footages.

frame_blending

frame_blending = ChunkField[bool]("_cdta", "frame_blending")

When True, frame blending is enabled for this Composition. Corresponds to the value of the Frame Blending button in the Composition panel. Read / Write.

frame_duration

frame_duration = ChunkField[int](
    "_cdta",
    "frame_duration",
    validate=_validate_number(
        min=1,
        max=lambda self: int(duration * frame_rate),
        integer=True,
    ),
)

The duration of the item in frames. Read / Write.

frame_rate

frame_rate = ChunkField[float](
    "_cdta", "frame_rate", validate=validate_frame_rate
)

The frame rate of the item in frames-per-second. Read / Write.

frame_time

frame_time = ChunkField[int](
    "_cdta",
    "frame_time",
    validate=_validate_number(
        min=lambda self: display_start_frame,
        max=lambda self: (
            display_start_frame + frame_duration - 1
        ),
        integer=True,
    ),
)

The current time of the item when it is being previewed directly from the Project panel. This value is a number of frames. Read / Write.

guide_layers

guide_layers: list[AVLayer]

A list of the guide layers in this composition.

guides

guides: list[Guide]

The item's ruler guides. Each guide has an orientation and a pixel position. Read-only.

has_audio

has_audio: bool

When True, the composition has an audio component.

A composition has audio when at least one of its layers has a source with audio. Read-only.

has_video

has_video: bool

True if the item has a video component.

An AVItem has video when it has non-zero dimensions (width > 0 and height > 0). In a CompItem, the value is always True. In a FootageItem, the value depends on the footage source (e.g. audio-only files return False).

height

height = ChunkField[int](
    "_cdta", "height", validate=validate_footage_dimension
)

The height of the item in pixels. Read / Write.

hide_shy_layers

hide_shy_layers = ChunkField[bool](
    "_cdta", "hide_shy_layers"
)

When True, only layers with shy set to False are shown in the Timeline panel. When False, all layers are visible, including those whose shy value is True. Corresponds to the value of the Hide All Shy Layers button in the Composition panel. Read / Write.

id

id = ChunkField[int](
    "_idta", "item_id", read_only=True, default=0
)

The item unique identifier. Read-only.

label

label = enum(Label, '_idta', 'label', default=NONE)

The label color. Colors are represented by their number (0 for None, or 1 to 16 for one of the preset colors in the Labels preferences). Read / Write.

layers

layers: list[Layer]

All the Layer objects for layers in this composition. Read-only.

layers_by_id

layers_by_id: dict[int, Layer]

Map of layer ID to layer, for O(1) lookup by sibling layers.

light_layers

light_layers: list[LightLayer]

A list of the light layers in this composition.

marker_property

marker_property: Property | None

The composition's marker property. Read-only.

markers

markers: list[MarkerValue]

A flat list of [MarkerValue][] objects for this composition.

Shortcut for accessing marker data without navigating the property tree. Returns an empty list when the composition has no markers.

Example
for marker in comp.markers:
    print(marker.comment)

motion_blur

motion_blur = ChunkField[bool]('_cdta', 'motion_blur')

When True, motion blur is enabled for the composition. Corresponds to the value of the Motion Blur button in the Composition panel. Read / Write.

motion_blur_adaptive_sample_limit

motion_blur_adaptive_sample_limit = ChunkField[int](
    "_cdta",
    "motion_blur_adaptive_sample_limit",
    validate=_validate_number(
        min=lambda self: motion_blur_samples_per_frame,
        max=256,
        integer=True,
    ),
)

The maximum number of motion blur samples of 2D layer motion. This corresponds to the Adaptive Sample Limit setting in the Advanced tab of the Composition Settings dialog box. Must be >= samples_per_frame. Read / Write.

motion_blur_samples_per_frame

motion_blur_samples_per_frame = ChunkField[int](
    "_cdta",
    "motion_blur_samples_per_frame",
    validate=_validate_number(min=2, max=64, integer=True),
)

The minimum number of motion blur samples per frame for Classic 3D layers, shape layers, and certain effects. This corresponds to the Samples Per Frame setting in the Advanced tab of the Composition Settings dialog box. Read / Write.

motion_graphics_controllers

motion_graphics_controllers: list[
    EssentialGraphicsController
]

The Essential Graphics controllers for this composition. Read-only.

motion_graphics_template_controller_count

motion_graphics_template_controller_count: int

The number of controllers in the Essential Graphics panel for the composition. Read-only.

Note: for each type-10 Group controller, After Effects synthesizes a runtime-only "drop zone" controller it does not store in the file, so this count is one lower per group than ExtendScript's motionGraphicsTemplateControllerCount.

motion_graphics_template_controller_names

motion_graphics_template_controller_names: list[str]

The names of all controllers in the Essential Graphics panel. Read-only. Excludes the runtime-only Group "drop zone" controller AE synthesizes but does not store (see motion_graphics_template_controller_count).

motion_graphics_template_name

motion_graphics_template_name: str | None

The name property in the Essential Graphics panel for the composition. The name in the Essential Graphics panel is used for the file name of an exported Motion Graphics template. Read / Write.

name

name = ChunkField[str](
    "_name_utf8", "value", validate=validate_name
)

The name of the item, as shown in the Project panel. Read / Write.

null_layers

null_layers: list[Layer]

A list of the null layers in this composition.

num_layers

num_layers: int

The number of layers in the composition.

parametric_mesh_layers

parametric_mesh_layers: list[ParametricMeshLayer]

A list of the parametric mesh layers in this composition.

parent_folder

parent_folder: FolderItem | None

The parent folder of this item. None for the root folder. Read / Write.

Setting this moves the item into another folder. The item's binary chunk block is relocated from the old folder's container to the end of the new folder's container, and both folders' items lists are updated.

Raises:

  • ValueError

    If this is the root folder, or if moving a folder into itself or one of its own descendants.

  • TypeError

    If the value is not a [FolderItem][].

pixel_aspect

pixel_aspect = ChunkField[float](
    "_cdta", "pixel_aspect", validate=validate_pixel_aspect
)

The pixel aspect ratio of the item (1.0 is square). Read / Write.

placeholder_layers

placeholder_layers: list[AVLayer]

A list of the layers whose source are placeholders.

preserve_nested_frame_rate

preserve_nested_frame_rate = ChunkField[bool](
    "_cdta", "preserve_nested_frame_rate"
)

When True, the frame rate of nested compositions is preserved in the current composition. Corresponds to the value of the "Preserve frame rate when nested or in render queue" option in the Advanced tab of the Composition Settings dialog box. Read / Write.

preserve_nested_resolution

preserve_nested_resolution = ChunkField[bool](
    "_cdta", "preserve_nested_resolution"
)

When True, the resolution of nested compositions is preserved in the current composition. Corresponds to the value of the "Preserve Resolution When Nested" option in the Advanced tab of the Composition Settings dialog box. Read / Write.

proxy_source

proxy_source: (
    FileSource | SolidSource | PlaceholderSource | None
)

The [FootageSource][] being used as a proxy. Read-only.

To change it, call any of the AVItem methods that change the proxy source: set_proxy(), set_proxy_with_sequence(), set_proxy_with_solid(), or set_proxy_with_placeholder().

renderer

renderer: str

The current rendering plug-in module to be used to render this composition, as set in the Advanced tab of the Composition Settings dialog box. Allowed values are the members of renderers. Read / Write.

renderers

renderers: list[str]

The available rendering plug-in module names. Read-only.

resolution_factor

resolution_factor = ChunkField[List[int]](
    "_cdta",
    "resolution_factor",
    validate=validate_sequence(
        length=2, min=1, max=99, integer=True
    ),
)

The x and y downsample resolution factors for rendering the composition. The two values in the array specify how many pixels to skip when sampling; the first number controls horizontal sampling, the second controls vertical sampling. Full resolution is [1, 1], half resolution is [2, 2], and quarter resolution is [4, 4]. The default is [1, 1]. Read / Write.

selected

selected: bool

When True, this item is selected. Read-only.

Note

Item selection is not stored in the .aep binary format; it is a runtime-only state. Parsed projects always report False.

shape_layers

shape_layers: list[ShapeLayer]

A list of the shape layers in this composition.

shutter_angle

shutter_angle = ChunkField[int](
    "_cdta",
    "shutter_angle",
    validate=_validate_number(min=0, max=720, integer=True),
)

The shutter angle setting for the composition. This corresponds to the Shutter Angle setting in the Advanced tab of the Composition Settings dialog box. Read / Write.

shutter_phase

shutter_phase = ChunkField[int](
    "_cdta",
    "shutter_phase",
    validate=_validate_number(
        min=-360, max=360, integer=True
    ),
)

The shutter phase setting for the composition. This corresponds to the Shutter Phase setting in the Advanced tab of the Composition Settings dialog box. Read / Write.

solid_layers

solid_layers: list[AVLayer]

A list of the layers whose source are solids.

solo_layers

solo_layers: list[Layer]

A list of the soloed layers in this composition.

text_layers

text_layers: list[TextLayer]

A list of the text layers in this composition.

three_d_layers

three_d_layers: list[AVLayer]

A list of the 3D layers in this composition.

three_d_model_layers

three_d_model_layers: list[ThreeDModelLayer]

A list of the 3D model layers in this composition.

time

time = ChunkField[float](
    "_cdta",
    "time_seconds",
    validate=_validate_number(
        min=lambda self: display_start_time,
        max=lambda self: (
            display_start_time + duration - 1 / frame_rate
        ),
    ),
)

The current time of the item when it is being previewed directly from the Project panel. This value is a number of seconds. It is an error to set this value for a FootageItem whose main_source is still. Read / Write.

time_scale

time_scale = ChunkField[float](
    "_cdta", "time_scale", read_only=True
)

The time scale, used as a divisor for keyframe time values. Read-only.

type_name

type_name: str

A user-readable name for the item type ("Folder", "Footage" or "Composition"). These names are application locale-dependent, meaning that they are different depending on the application's UI language. Read-only.

use_proxy

use_proxy = ChunkField[bool](
    "_idta",
    "use_proxy",
    validate=_validate_use_proxy,
    post_set=_sync_proxy_active,
)

When True, a proxy is used for the item. Read / Write.

It is set to True by all the set_proxy methods, and to False by the set_proxy_to_none() method.

used_in

used_in: list[CompItem]

All the compositions that use this AVItem.

width

width = ChunkField[int](
    "_cdta", "width", validate=validate_footage_dimension
)

The width of the item in pixels. Read / Write.

work_area_duration

work_area_duration = ChunkField[float](
    "_cdta",
    "work_area_duration",
    validate=_validate_number(
        min=lambda self: 1 / frame_rate,
        max=lambda self: duration - work_area_start,
    ),
)

The work area duration in seconds. Read / Write.

work_area_duration_frame

work_area_duration_frame = ChunkField[int](
    "_cdta",
    "work_area_duration_frame",
    validate=_validate_number(
        min=1,
        max=lambda self: (
            frame_duration - work_area_start_frame
        ),
        integer=True,
    ),
)

The work area duration in frames. Read / Write.

work_area_start

work_area_start = ChunkField[float](
    "_cdta",
    "work_area_start",
    validate=_validate_number(
        min=0.0, max=lambda self: duration - 1 / frame_rate
    ),
)

The work area start time relative to composition start. Read / Write.

work_area_start_frame

work_area_start_frame = ChunkField[int](
    "_cdta",
    "work_area_start_frame",
    validate=_validate_number(
        min=0,
        max=lambda self: frame_duration - 1,
        integer=True,
    ),
)

The work area start frame relative to composition start. Read / Write.

Functions

add

add(item: AVItem, duration: float | None = None) -> AVLayer

Add an existing footage or composition item as a new layer.

Parameters:

  • item (AVItem) –

    The [AVItem][] (footage or composition) to add.

  • duration (float | None, default: None ) –

    Layer duration in seconds, for still footage. By default (probed in AE 2026) timed footage and nested comps span their source duration, and stills span the still-layer default (the "Pref_DEFAULT_STILL_OUT_POINT" preference; composition duration by default).

Returns:

  • AVLayer

    The newly created [AVLayer][].

add_box_text

add_box_text(
    box_size: list[float] | None = None, text: str = ""
) -> TextLayer

Create a new box (paragraph) text layer at the top of the layer stack.

Parameters:

  • box_size (list[float] | None, default: None ) –

    [width, height] of the text box. If None, uses the composition dimensions.

  • text (str, default: '' ) –

    Initial text content.

Returns:

  • TextLayer

    The newly created [TextLayer][].

add_camera

add_camera(
    name: str | None = None,
    center_point: list[float] | None = None,
) -> CameraLayer

Create a new camera layer at the top of the layer stack.

Parameters:

  • name (str | None, default: None ) –

    Layer name. Auto-generated if None.

  • center_point (list[float] | None, default: None ) –

    The [x, y] center point. Defaults to [width/2, height/2].

Returns:

add_guide

add_guide(orientation_type: int, position: int) -> int

Adds a new guide to the item.

Any orientation_type value other than 0 (horizontal) or 1 (vertical) defaults to horizontal.

Parameters:

  • orientation_type (int) –

    0 for horizontal, 1 for vertical.

  • position (int) –

    The pixel position of the guide.

Returns:

  • int

    The index of the new guide.

add_light

add_light(
    name: str | None = None,
    center_point: list[float] | None = None,
) -> LightLayer

Create a new light layer at the top of the layer stack.

Parameters:

  • name (str | None, default: None ) –

    Layer name. Auto-generated if None.

  • center_point (list[float] | None, default: None ) –

    The [x, y] center point. Defaults to [width/2, height/2].

Returns:

  • LightLayer

    The newly created [LightLayer][].

add_null

add_null(duration: float | None = None) -> AVLayer

Create a new null layer at the top of the layer stack.

A null layer has no visual content and is commonly used as a parent for other layers. Its source is a small transparent solid created automatically.

Parameters:

  • duration (float | None, default: None ) –

    Layer duration in seconds. Defaults to the synthetic-layer default span (the "Pref_DEFAULT_SYNTHETIC_OUT_POINT" preference; composition duration by default). AE's addNull ignores this argument (probed in AE 2026); py_aep honors it, since it sets the layer out-point directly and the result is a valid AE file.

Returns:

  • AVLayer

    The newly created [AVLayer][].

add_parametric_mesh

add_parametric_mesh(
    name: str | None = None,
    *,
    mesh_type: ParametricMeshType,
) -> ParametricMeshLayer

Create a new parametric mesh layer at the top of the layer stack.

Parameters:

  • name (str | None, default: None ) –

    Layer name. Auto-generated if None.

  • mesh_type (ParametricMeshType) –

    The type of parametric mesh (required, keyword-only).

Returns:

add_shape

add_shape() -> ShapeLayer

Create a new empty shape layer at the top of the layer stack.

Returns:

  • ShapeLayer

    The newly created [ShapeLayer][].

add_solid

add_solid(
    color: list[float],
    name: str | None = None,
    width: int | None = None,
    height: int | None = None,
    pixel_aspect: float = 1.0,
    duration: float | None = None,
) -> AVLayer

Create a new solid layer at the top of the layer stack.

Parameters:

  • color (list[float]) –

    Solid color as [R, G, B] in 0.0--1.0 range.

  • name (str | None, default: None ) –

    The solid and layer name. Pass None to auto-generate a name from the color (e.g. Red Solid 1).

  • width (int | None, default: None ) –

    Solid width in pixels. Defaults to comp width.

  • height (int | None, default: None ) –

    Solid height in pixels. Defaults to comp height.

  • pixel_aspect (float, default: 1.0 ) –

    Pixel aspect ratio (default 1.0).

  • duration (float | None, default: None ) –

    Layer duration in seconds. Defaults to the synthetic-layer default span (the "Pref_DEFAULT_SYNTHETIC_OUT_POINT" preference; composition duration by default). AE's addSolid ignores this argument (probed in AE 2026); py_aep honors it, since it sets the layer out-point directly and the result is a valid AE file.

Returns:

  • AVLayer

    The newly created [AVLayer][].

add_text

add_text(text: str = '') -> TextLayer

Create a new point text layer at the top of the layer stack.

Parameters:

  • text (str, default: '' ) –

    Initial text content.

Returns:

  • TextLayer

    The newly created [TextLayer][].

add_vertical_box_text

add_vertical_box_text(
    box_size: list[float] | None = None, text: str = ""
) -> TextLayer

Create a new vertical box (paragraph) text layer at the top of the stack.

Vertical text flows top-to-bottom with lines stacking right-to-left, matching the Vertical Type Tool default.

Parameters:

  • box_size (list[float] | None, default: None ) –

    [width, height] of the text box. If None, uses the composition dimensions.

  • text (str, default: '' ) –

    Initial text content.

Returns:

  • TextLayer

    The newly created [TextLayer][].

add_vertical_text

add_vertical_text(text: str = '') -> TextLayer

Create a new vertical point text layer at the top of the stack.

Vertical text flows top-to-bottom with lines stacking right-to-left, matching the Vertical Type Tool default.

Parameters:

  • text (str, default: '' ) –

    Initial text content.

Returns:

  • TextLayer

    The newly created [TextLayer][].

layer

layer(
    name: str | None = None,
    index: int | None = None,
    other_layer: Layer | None = None,
    rel_index: int | None = None,
) -> Layer

Get a Layer object by name, index, or relative to another layer.

Parameters:

  • name (str | None, default: None ) –

    The name of the layer to return.

  • index (int | None, default: None ) –

    The index position of the layer to return.

  • other_layer (Layer | None, default: None ) –

    A Layer object to use as a reference for the relative index position of the layer to return.

  • rel_index (int | None, default: None ) –

    The index position of the layer relative to the other_layer to return.

precompose

precompose(
    layer_indices: list[int],
    name: str,
    move_all_attributes: bool = True,
) -> CompItem

Create a new CompItem and move the specified layers into it.

The moved layers are replaced in this composition by a single new layer whose source is the new composition, placed at the topmost moved layer's index. The new composition inherits this composition's settings and is stored at the alphabetical position in this composition's folder.

Parent and track-matte links follow AE's rules: links inside the moved set are kept; a stayer referencing a moved layer retargets to the replacement layer; a moved layer whose parent stays is unparented; a moved layer whose track matte stays gets a copy of the matte layer inside the new composition (the original stays untouched).

When move_all_attributes is False (allowed for a single source-backed layer only), the selected layer stays in this composition with all its attributes and its source is swapped to the new composition, which is sized from the layer's source and contains one fresh layer referencing that source.

Warning

References to moved Layer objects become stale (the layers are re-created inside the new composition), mirroring ExtendScript's reference invalidation.

Parameters:

  • layer_indices (list[int]) –

    0-based indices of the layers to precompose (ExtendScript uses 1-based indices).

  • name (str) –

    The name of the new composition.

  • move_all_attributes (bool, default: True ) –

    True (default) to move all attributes into the new composition; False to leave them on the retained layer ("Leave all attributes" in the Pre-compose dialog).

Returns:

Raises:

  • ValueError

    If layer_indices is empty or contains an out-of-range index, or if move_all_attributes is False with more than one index or with a layer that has no source.

remove

remove() -> None

Remove this composition, including any render-queue items targeting it.

remove_all_guides

remove_all_guides() -> None

Remove all guides from the item.

Equivalent to calling remove_guide for each guide. A no-op when the item has no guides.

remove_all_markers

remove_all_markers() -> None

Remove all markers from this composition.

A no-op when the composition has no markers.

remove_guide

remove_guide(guide_index: int) -> None

Removes an existing guide by index.

Parameters:

  • guide_index (int) –

    The 0-based index of the guide to remove.

Raises:

set_proxy

set_proxy(file: str | PathLike[str]) -> None

Sets a file as the proxy of this AVItem.

Loads the specified file into a new FileSource object, sets this as the value of the proxy_source attribute, and sets use_proxy to true.

It does not preserve the interpretation parameters, instead using the user preferences.

This differs from setting a FootageItem's main_source, but both actions are performed as in the user interface.

Note

Unlike ExtendScript, if the specified file has an unlabeled alpha channel, this method does not estimate the alpha interpretation.

Parameters:

Raises:

  • ValueError

    If the extension is not a supported footage format.

  • NotImplementedError

    If After Effects requires a format-specific opti header not implemented for this format.

set_proxy_to_none

set_proxy_to_none() -> None

Remove the proxy source from this item.

set_proxy_with_placeholder

set_proxy_with_placeholder(
    name: str | None,
    width: int,
    height: int,
    frame_rate: float,
    duration: float,
) -> None

Set a placeholder as the proxy source.

Parameters:

  • name (str | None) –

    The placeholder name. None becomes Missing Name. An empty string becomes Placeholder.

  • width (int) –

    Width in pixels (4-30000).

  • height (int) –

    Height in pixels (4-30000).

  • frame_rate (float) –

    Frame rate in fps (1.0-99.0).

  • duration (float) –

    Duration in seconds (> 0, <= 10800).

set_proxy_with_sequence

set_proxy_with_sequence(
    file: str | PathLike[str],
    force_alphabetical: bool = False,
) -> None

Sets a sequence of files as the proxy of this AVItem, with the option of forcing alphabetical order. Loads the specified file sequence into a new FileSource object, sets this as the value of the proxy_source attribute, and sets use_proxy to true.

It does not preserve the interpretation parameters, instead using the user preferences.

Note

Unlike ExtendScript, if the specified file has an unlabeled alpha channel, this method does not estimate the alpha interpretation.

Parameters:

  • file (str | PathLike[str]) –

    Path to a representative frame; sibling frames in the same folder are gathered into the sequence.

  • force_alphabetical (bool, default: False ) –

    Order frames alphabetically rather than numerically.

Raises:

  • ValueError

    If the extension is not a supported footage format.

  • NotImplementedError

    If After Effects requires a format-specific opti header not implemented for this format.

set_proxy_with_solid

set_proxy_with_solid(
    color: list[float],
    name: str | None,
    width: int,
    height: int,
    pixel_aspect: float = 1.0,
) -> None

Set a solid as the proxy source.

Parameters:

  • color (list[float]) –

    Solid color as [R, G, B] in 0.0-1.0 range.

  • name (str | None) –

    The solid name. Pass None to auto-generate a name from the color (e.g. Red Solid 1). An empty string becomes ????.

  • width (int) –

    Width in pixels (1-30000).

  • height (int) –

    Height in pixels (1-30000).

  • pixel_aspect (float, default: 1.0 ) –

    Pixel aspect ratio (0.01-100.0).