public async Task ConversionStreamTest() { var path = Res.GetPath(Res.Video_Mp4); var opath = "out-test-v-2.mp4"; try { using var reader = new VideoReader(path); await reader.LoadMetadataAsync(); var encoder = new H264Encoder { Format = "flv" }; using (var filestream = File.Create(opath)) { using (var writer = new VideoWriter(filestream, reader.Metadata.Width, reader.Metadata.Height, reader.Metadata.AvgFramerate, encoder.Create())) { writer.OpenWrite(); reader.Load(); await reader.CopyToAsync(writer); } } using var video = new VideoReader(opath); await video.LoadMetadataAsync(); Assert.True(video.Metadata.Codec == "h264"); Assert.True(video.Metadata.AvgFramerate == reader.Metadata.AvgFramerate); Assert.True(Math.Abs(video.Metadata.Duration - reader.Metadata.Duration) < 0.2); Assert.True(video.Metadata.Width == reader.Metadata.Width); Assert.True(video.Metadata.Height == reader.Metadata.Height); Assert.True(video.Metadata.BitDepth == reader.Metadata.BitDepth); Assert.True(video.Metadata.Streams.Length == 1); // only video } finally { if (File.Exists(opath)) { File.Delete(opath); } } }