Skip to main content

OGG output

The OGG container format can multiplex a number of independent streams for audio, video, text (such as subtitles), and metadata.

Use OGGSinkSettings class to set the parameters.

Block info

Name: OGGSinkBlock.

Pin directionMedia typePins count
Input audioaudio/x-vorbisone or more
audio/x-flac
audio/x-speex
audio/x-celt
application/x-ogm-audio
audio/x-opus
Input videovideo/x-theoraone or more
application/x-ogm-video
video/x-dirac
video/x-smoke
video/x-vp8
video/x-daala
Input subtitletext/x-cmmlone or more
subtitle/x-kate
application/x-kate

The sample pipeline

UniversalSourceBlock:AudioOutput VorbisEncoderBlock OGGSinkBlock:AudioInput

Sample code

var pipeline = new MediaBlocksPipeline(false);

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

var vorbisEncoderBlock = new VorbisEncoderBlock(new VorbisEncoderSettings());
pipeline.Connect(fileSource.AudioOutput, vorbisEncoderBlock.Input);

var oggSinkBlock = new OGGSinkBlock(new OGGSinkSettings(@"output.ogg"));
pipeline.Connect(vorbisEncoderBlock.Output, oggSinkBlock.CreateNewInput(MediaBlockPadMediaType.Audio));

await pipeline.StartAsync();

Platforms

Windows, macOS, Linux, iOS, Android.