# MPEG-TS output

Media Blocks SDK .Net

MPEG transport stream is a standard digital container format for the transmission and storage of audio, video, and PSIP data. It is used in broadcast systems such as DVB, ATSC, and IPTV.

Use the MPEGTSSinkSettings class to set the parameters.

# Block info

Name: MPEGTSSinkBlock.

Pin direction Media type Pins count
Input audio audio/mpeg [1,2,4] one or more
audio/x-lpcm
audio/x-ac3
audio/x-dts
audio/x-opus
Input video video/mpeg [1,2,4] one or more
video/x-dirac
video/x-h264
video/x-h265
Input subtitle meta/x-klv one or more
subpicture/x-dvb
application/x-teletext

# The sample pipeline

graph LR;
    UniversalSourceBlock-->H264EncoderBlock;
    UniversalSourceBlock-->AACEncoderBlock;
    H264EncoderBlock-->MPEGTSSinkBlock;
    AACEncoderBlock-->MPEGTSSinkBlock;

# Sample code

var pipeline = new MediaBlocksPipeline();

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

var aacEncoderBlock = new AACEncoderBlock(new MFAACEncoderSettings() { Bitrate = 192 });
pipeline.Connect(fileSource.AudioOutput, aacEncoderBlock.Input);

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

var tsSinkBlock = new MPEGTSSinkBlock(new MPEGTSSinkSettings(@"output.ts"));
pipeline.Connect(h264EncoderBlock.Output, tsSinkBlock.CreateNewInput(MediaBlockPadMediaType.Video));
pipeline.Connect(aacEncoderBlock.Output, tsSinkBlock.CreateNewInput(MediaBlockPadMediaType.Audio));

await pipeline.StartAsync();

# Platforms

Windows, macOS, Linux, iOS, Android.