# AVI output

Media Blocks SDK .Net

AVI sink is used to create AVI files, and it is popular among Windows users. AVI files support many different video, audio, and subtitle formats.

Use the AVISinkSettings class to set the parameters.

# Block info

Name: AVISinkBlock.

Pin direction Media type Pins count
Input audio audio/x-raw one or more
audio/mpeg
audio/x-ac3
audio/x-alaw
audio/x-mulaw
audio/x-wma
Input video video/x-raw one or more
image/jpeg
video/x-divx
video/x-msmpeg
video/mpeg
video/x-h263
video/x-h264
video/x-dv
video/x-huffyuv
video/x-wmv
video/x-jpc
video/x-vp8
image/png

# The sample pipeline

graph LR;
    UniversalSourceBlock-->H264EncoderBlock;
    UniversalSourceBlock-->MP3EncoderBlock;
    H264EncoderBlock-->AVISinkBlock;
    MP3EncoderBlock-->AVISinkBlock;

# Sample code

var pipeline = new MediaBlocksPipeline();

var filename = "test.mp4";
var fileSource = new UniversalSourceBlock(await UniversalSourceSettings.CreateAsync(new Uri(filename)));

var mp3EncoderBlock = new MP3EncoderBlock(new MP3EncoderSettings() { Bitrate = 192 });
pipeline.Connect(fileSource.AudioOutput, mp3EncoderBlock.Input);

var h264EncoderBlock = new H264EncoderBlock(new OpenH264EncoderSettings());
pipeline.Connect(fileSource.VideoOutput, h264EncoderBlock.Input);

var aviSinkBlock = new AVISinkBlock(new AVISinkSettings(@"output.avi"));
pipeline.Connect(h264EncoderBlock.Output, aviSinkBlock.CreateNewInput(MediaBlockPadMediaType.Video));
pipeline.Connect(mp3EncoderBlock.Output, aviSinkBlock.CreateNewInput(MediaBlockPadMediaType.Audio));

await pipeline.StartAsync();

# Platforms

Windows, macOS, Linux, iOS, Android.