# Video processing

Inspect video files and normalize their encoding and resolution before uploading them.

## API Reference

Module: `nominal.experimental.video_processing`.

Classes

| [`VideoResolution`](https://dev.nominal.io/python/ref/generated/nominal.experimental.video_processing.VideoResolution.md#nominal.experimental.video_processing.VideoResolution "nominal.experimental.video_processing.VideoResolution") | Width and height limits for video scaling, with optional upscaling. |
| --- | --- |

Functions

| [`frame_count`](https://dev.nominal.io/python/ref/generated/nominal.experimental.video_processing.frame_count.md#nominal.experimental.video_processing.frame_count "nominal.experimental.video_processing.frame_count") | Given a path to a video file, return the number of frames present in the video. |
| --- | --- |
| [`has_audio_track`](https://dev.nominal.io/python/ref/generated/nominal.experimental.video_processing.has_audio_track.md#nominal.experimental.video_processing.has_audio_track "nominal.experimental.video_processing.has_audio_track") | Given a path to a video file, return whether or not there is an audio track present. |
| [`normalize_video`](https://dev.nominal.io/python/ref/generated/nominal.experimental.video_processing.normalize_video.md#nominal.experimental.video_processing.normalize_video "nominal.experimental.video_processing.normalize_video") | Convert video file to an h264 encoded video file using ffmpeg. |
| [`scale_factor_from_resolution`](https://dev.nominal.io/python/ref/generated/nominal.experimental.video_processing.scale_factor_from_resolution.md#nominal.experimental.video_processing.scale_factor_from_resolution "nominal.experimental.video_processing.scale_factor_from_resolution") | Build a video filter that scales the video using ffmpeg. |

Constants

| [`FULL_HD`](https://dev.nominal.io/python/ref/experimental/video_processing.md#nominal.experimental.video_processing.FULL_HD "nominal.experimental.video_processing.FULL_HD") | `VideoResolution(resolution_width=1920, resolution_height=1080, allow_upscaling=False)` |
| --- | --- |
| [`HIGH_DEFINITION`](https://dev.nominal.io/python/ref/experimental/video_processing.md#nominal.experimental.video_processing.HIGH_DEFINITION "nominal.experimental.video_processing.HIGH_DEFINITION") | `VideoResolution(resolution_width=1280, resolution_height=720, allow_upscaling=False)` |
| [`QUAD_HD`](https://dev.nominal.io/python/ref/experimental/video_processing.md#nominal.experimental.video_processing.QUAD_HD "nominal.experimental.video_processing.QUAD_HD") | `VideoResolution(resolution_width=2560, resolution_height=1440, allow_upscaling=False)` |
| [`STANDARD_DEFINITION`](https://dev.nominal.io/python/ref/experimental/video_processing.md#nominal.experimental.video_processing.STANDARD_DEFINITION "nominal.experimental.video_processing.STANDARD_DEFINITION") | `VideoResolution(resolution_width=640, resolution_height=480, allow_upscaling=False)` |
| [`ULTRA_HD`](https://dev.nominal.io/python/ref/experimental/video_processing.md#nominal.experimental.video_processing.ULTRA_HD "nominal.experimental.video_processing.ULTRA_HD") | `VideoResolution(resolution_width=3840, resolution_height=2160, allow_upscaling=False)` |

Type aliases

| [`AnyResolutionType`](https://dev.nominal.io/python/ref/experimental/video_processing.md#nominal.experimental.video_processing.AnyResolutionType "nominal.experimental.video_processing.AnyResolutionType") | [`Literal`](https://docs.python.org/3/library/typing.html#typing.Literal "(in Python v3.15)")['480p', '720p', '1080p', '1440p', '2160p'] | [`VideoResolution`](https://dev.nominal.io/python/ref/generated/nominal.experimental.video_processing.VideoResolution.md#nominal.experimental.video_processing.VideoResolution "nominal.experimental.video_processing.resolution.VideoResolution") |
| --- | --- |
| [`ResolutionSpecifier`](https://dev.nominal.io/python/ref/experimental/video_processing.md#nominal.experimental.video_processing.ResolutionSpecifier "nominal.experimental.video_processing.ResolutionSpecifier") | [`Literal`](https://docs.python.org/3/library/typing.html#typing.Literal "(in Python v3.15)")['480p', '720p', '1080p', '1440p', '2160p'] |
