Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


H264EncoderAttributes

Descriptor for H.264 encoder attributes.
Read time 1 minuteLast updated 9 days ago

Definition

public struct H264EncoderAttributes

Examples

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

gopSizeThe maximum size of a group of pictures, in frames.
numConsecutiveBFramesThe maximum number of consecutive B frames between I and P frames.
profileThe VideoEncodingProfile for the encoded video.