> 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/mlfeature/mlvideofeature.md).

# MLVideoFeature

INCOMPLETE.

## Creating the Feature

INCOMPLETE.

### From a Video File

```csharp
/// <summary>
/// Create an video feature from a video file.
/// </summary>
/// <param name="path">Video file path.</param>
MLVideoFeature (string path);
```

INCOMPLETE.

### From Streaming Assets

```csharp
/// <summary>
/// Create a video feature from a video file in the `StreamingAssets` folder.
/// </summary>
/// <param name="relativePath">Relative path to video file in `StreamingAssets` folder.</param>
/// <returns>Video feature or `null` if no valid video can be found at the relative path.</returns>
static Task<MLVideoFeature> FromStreamingAssets (string relativePath);
```

INCOMPLETE.

## Inspecting the Feature

INCOMPLETE

### Feature Type

```csharp
/// <summary>
/// Feature type.
/// </summary>
MLFeatureType type { get; }
```

Refer to the [Inspecting the Feature](/unity/api/mlfeature.md#inspecting-the-feature) section of the [`MLFeature`](/unity/api/mlfeature.md) class for more information.

{% hint style="info" %}
The `type` is always an [`MLVideoType`](/unity/api/mlfeaturetype/mlvideotype.md).
{% endhint %}

### Video Path

```csharp
/// <summary>
/// Video path.
/// </summary>
string path { get; }
```

The video feature provides the full path of its source video.

{% hint style="info" %}
The video path always refers to an accessible file on the local file system.
{% endhint %}

### Video Width

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

The video feature provides the width of its source video in pixels.

### Video Height

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

The video feature provides the height of its source video in pixels.

### Video Frame Count

```csharp
/// <summary>
/// Video frame count.
/// </summary>
int frames { get; }
```

The video feature provides the frame count of its source video.

{% hint style="warning" %}
Note that the reported frame count is merely an approximate count based on the average frame rate and duration of the source video. Enumerate the video to get an exact count.
{% endhint %}

## Handling Normalization

```csharp
/// <summary>
/// Normalization mean.
/// </summary>
Vector4 mean { get; set; }

/// <summary>
/// Normalization standard deviation.
/// </summary>
Vector4 std { get; set }
```

See the [Handling Normalization](/unity/api/mlfeature/mlimagefeature.md#handling-normalization) section of the [`MLImageFeature`](/unity/api/mlfeature/mlimagefeature.md) class for more information.

## Handling Aspect Mode

```csharp
/// <summary>
/// Aspect mode.
/// </summary>
MLImageFeature.AspectMode aspectMode { get; set; }
```

See the [Handling Aspect Mode](/unity/api/mlfeature/mlimagefeature.md#handling-aspect-mode) section of the [`MLImageFeature`](/unity/api/mlfeature/mlimagefeature.md) class for more information.

## Enumerating Video Frames

INCOMPLETE.

## Creating Cloud Features

```csharp
/// <summary>
/// Create a Cloud ML feature that is ready for prediction with Cloud ML models.
/// </summary>
/// <param name="featureType">Optional feature type used to create the Cloud ML feature.</param>
/// <returns>Cloud ML feature.</returns>
MLCloudFeature IMLCloudFeature.Create (in MLFeatureType featureType = default);
```

INCOMPLETE.
