# H264EncoderAttributes

> Descriptor for H.264 encoder attributes.

## Definition

* **Type:** Struct
* **Namespace:** [UnityEditor.Media](/engine/6000.3/script-reference/unityeditor/media.md)
* **Assembly:** UnityEditor

```csharp
public struct H264EncoderAttributes
```

## Examples

```csharp
using UnityEditor.Media;
using UnityEngine;
using UnityEditor;
using Unity.Collections;
using System.IO;

public class Recorder
{
    static public void RecordMovie()
    {
        H264EncoderAttributes h264Attr = new H264EncoderAttributes
        {
            gopSize = 25,
            numConsecutiveBFrames = 2,
            profile = VideoEncodingProfile.H264High
        };

        var videoAttr = new VideoTrackEncoderAttributes(h264Attr)
        {
            frameRate = new MediaRational(50),
            width = 320,
            height = 200,
            targetBitRate = 3000000
        };

        var audioAttr = new AudioTrackAttributes
        {
            sampleRate = new MediaRational(48000),
            channelCount = 2,
            language = "fr"
        };

        int sampleFramesPerVideoFrame = audioAttr.channelCount *
            audioAttr.sampleRate.numerator / videoAttr.frameRate.numerator;

        var encodedFilePath = Path.Combine(Path.GetTempPath(), "my_movie.mp4");

        Texture2D tex = new Texture2D((int)videoAttr.width, (int)videoAttr.height, TextureFormat.RGBA32, false);

        using (var encoder = new MediaEncoder(encodedFilePath, videoAttr, audioAttr))
        using (var audioBuffer = new NativeArray<float>(sampleFramesPerVideoFrame, Allocator.Temp))
        {
            for (int i = 0; i < 100; ++i)
            {
                // Fill 'tex' with the video content to be encoded into the file for this frame.
                // ...
                encoder.AddFrame(tex);

                // Fill 'audioBuffer' with the audio content to be encoded into the file for this frame.
                // ...
                encoder.AddSamples(audioBuffer);
            }
        }
    }
}
```

## Fields

| Value                                                                                                                     | Description                                                                                                            |
| ------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| [gopSize](/engine/6000.3/script-reference/unityeditor/media/h264encoderattributes/gopsize.md)                             | The maximum size of a group of pictures, in frames.                                                                    |
| [numConsecutiveBFrames](/engine/6000.3/script-reference/unityeditor/media/h264encoderattributes/numconsecutivebframes.md) | The maximum number of consecutive B frames between I and P frames.                                                     |
| [profile](/engine/6000.3/script-reference/unityeditor/media/h264encoderattributes/profile.md)                             | The [VideoEncodingProfile](/engine/6000.3/script-reference/unityeditor/videoencodingprofile.md) for the encoded video. |
