> For the complete documentation index, see [llms.txt](https://docs.natml.ai/unity/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.natml.ai/unity/api/mlfeaturetype/mlvideotype.md).

# MLVideoType

The video type describes video features.

## Creating the Type

The video type can be created with video information, or by inspecting a video file:

### From Video Info

```csharp
/// <summary>
/// Create an video feature type.
/// </summary>
/// <param name="width">Video width.</param>
/// <param name="height">Video height.</param>
/// <param name="frames">Video frame count.</param>
MLVideoType (int width, int height, int frames);
```

INCOMPLETE.

```csharp
/// <summary>
/// Create an video feature type.
/// </summary>
/// <param name="width">Video width.</param>
/// <param name="height">Video height.</param>
/// <param name="frames">Video frame count.</param>
/// <param name="type">Video frame data type.</param>
MLVideoType (int width, int height, int frames, Type type);
```

INCOMPLETE.

```csharp
/// <summary>
/// Create an video feature type.
/// </summary>
/// <param name="shape">Video feature shape.</param>
/// <param name="type">Video frame data type.</param>
/// <param name="name">Feature name.</param>
MLVideoType (int[] shape, Type type, string name = default);
```

### From a Video File

```csharp
/// <summary>
/// Get the video type for a video file at a given path.
/// </summary>
/// <param name="path">Video path.</param>
/// <returns>Corresponding video type or `null` if file is not a valid video file.</returns>
static MLVideoType FromFile (string path);
```

INCOMPLETE.

### From a [`VideoClip`](https://docs.unity3d.com/ScriptReference/Video.VideoClip.html)

```csharp
/// <summary>
/// Get the video type for a video clip.
/// Note that the frame count is merely an estimate based on the duration of the video.
/// </summary>
/// <param name-"clip">Video clip.</param>
/// <returns>Corresponding video type.</returns>
static MLVideoType FromVideoClip (VideoClip clip);
```

INCOMPLETE.

### From Streaming Assets

```csharp
/// <summary>
/// Get the video type for a video file in the `StreamingAssets` folder.
/// </summary>
/// <param name="relativePath">Relative path to video file in `StreamingAssets` folder.</param>
/// <returns>Corresponding video type or `null` if the file is not a valid video file.</returns>
static Task<MLVideoType> FromStreamingAssets (string relativePath);
```

INCOMPLETE.

## Inspecting the Type

```csharp
/// <summary>
/// Feature name.
/// </summary>
string name { get; }

/// <summary>
/// Feature data type.
/// This will typically be a numeric type.
/// </summary>
Type dataType { get; }
```

Refer to the [`MLFeatureType`](/unity/api/mlfeaturetype.md) class for more information.

## Inspecting the Video

The feature type reports information about the video it refers to:

### Video Width

```csharp
/// <summary>
/// Video width.
/// </summary>
int width { get; }
```

Refer to the [Image Width](/unity/api/mlfeaturetype/mlimagetype.md#image-width) section of the [`MLImageType`](/unity/api/mlfeaturetype/mlimagetype.md) class for more information.

### Video Height

```csharp
/// <summary>
/// Video height.
/// </summary>
int height { get; }
```

Refer to the [Image Height](/unity/api/mlfeaturetype/mlimagetype.md#image-height) section of the [`MLImageType`](/unity/api/mlfeaturetype/mlimagetype.md) class for more information.

### Video Channels

```csharp
/// <summary>
/// Video channels.
/// </summary>
int channels { get; }
```

Refer to the [Image Channels](/unity/api/mlfeaturetype/mlimagetype.md#image-channels) section of the [`MLImageType`](/unity/api/mlfeaturetype/mlimagetype.md) class for more information.

### Video Frames

```csharp
/// <summary>
/// Video frame count.
/// Note that this is almost always an approximate count.
/// </summary>
int frames { get; }
```

The video type reports the number of frames contained in the video.

{% hint style="warning" %}
Note that the frame count reported by the video type is always an estimate. To get an exact count, enumerate the [`MLVideoFeature`](/unity/api/mlfeature/mlvideofeature.md#enumerating-video-frames).
{% endhint %}

### Pixel Layout

```csharp
/// <summary>
/// Whether the image is interleaved or planar.
/// </summary>
bool interleaved { get; }
```

Refer to the [Pixel Layout](/unity/api/mlfeaturetype/mlimagetype.md#pixel-layout) section of the [MLImageType](/unity/api/mlfeaturetype/mlimagetype.md) class for more information.
