MPEG-TS output
MPEG transport stream is a standard digital container format for transmission and storage of audio, video, and PSIP data. It is used in broadcast systems such as DVB, ATSC and IPTV.
Use TSSinkSettings class to set the parameters.
Block info
Name: TSSinkBlock.
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 | ||
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
UniversalSourceBlock:VideoOutput
→ H264EncoderBlock
→ TSSinkBlock:VideoInput
UniversalSourceBlock:AudioOutput
→ AACEncoderBlock
→ TSSinkBlock:AudioInput
Sample code
var pipeline = new MediaBlocksPipeline(false);
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 MFH264EncoderSettings());
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.