#
Tee
The tee block splits the video or audio data stream into multiple streams that completely copy the original stream.
#
Block info
Name: TeeBlock.
#
The sample pipeline
graph LR; UniversalSourceBlock-->TeeBlock; TeeBlock-->VideoRendererBlock; TeeBlock-->H264EncoderBlock; H264EncoderBlock-->MP4SinkBlock;
#
Sample code
var pipeline = new MediaBlocksPipeline();
var filename = "test.mp4";
var fileSource = new UniversalSourceBlock(await UniversalSourceSettings.CreateAsync(new Uri(filename)));
var videoTee = new TeeBlock(2);
var h264Encoder = new H264EncoderBlock(new OpenH264EncoderSettings());
var mp4Muxer = new MP4SinkBlock(new MP4SinkSettings(@"output.mp4"));
var videoRenderer = new VideoRendererBlock(pipeline, VideoView1);
pipeline.Connect(fileSource.VideoOutput, videoTee.Input);
pipeline.Connect(videoTee.Outputs[0], videoRenderer.Input);
pipeline.Connect(videoTee.Outputs[1], h264Encoder.Input);
pipeline.Connect(h264Encoder.Output, mp4Muxer.CreateNewInput(MediaBlockPadMediaType.Video));
await pipeline.StartAsync();
#
Sample applications
#
Platforms
Windows, macOS, Linux, iOS, Android.