class pixeltable.iterators.FrameIterator
Iterator over frames of a video. At most one of fps, num_frames or keyframes_only may be specified. If fps
is specified, then frames will be extracted at the specified rate (frames per second). If num_frames is specified,
then the exact number of frames will be extracted. If neither is specified, then all frames will be extracted. The
first frame of the video will always be extracted, and the remaining frames will be spaced as evenly as possible.
Args:
fps: Number of frames to extract per second of video. This may be a fractional value, such as 0.5.
If omitted or set to 0.0, or if greater than the native framerate of the video,
then the framerate of the video will be used (all frames will be extracted).
num_frames: Exact number of frames to extract. The frames will be spaced as evenly as possible. If
num_frames is greater than the number of frames in the video, all frames will be extracted.
keyframes_only: If True, only extract keyframes.
all_frame_attrs:
If True, outputs a pxt.Json column frame_attrs with the following pyav-provided attributes
(for more information, see pyav’s documentation on
VideoFrame and
Frame):
index (int)
pts (int | None)
dts (int | None)
time (float | None)
is_corrupt (bool)
key_frame (bool)
pict_type (int)
interlaced_frame (bool)
If False, only outputs frame attributes frame_idx, pos_msec, and pos_frame as separate columns.
method close()
Close the iterator and release all resources
method create()
Provide the Pixeltable types of the init() parameters
The keys need to match the names of the init() parameters. This is equivalent to the parameters_types
parameter of the @function decorator.
method output_schema()
Specify the dictionary returned by next() and a list of unstored column names
Returns:
tuple[dict[str, pixeltable.type_system.ColumnType], list[str]]: a dictionary which is turned into a list of columns in the output table
a list of unstored column names
method set_pos()
Set the iterator position to posLast modified on January 15, 2026