public void Can_CutVideo() { string filePath = @"{0}\Cut_Video_Test.mp4"; string outputPath = string.Format(filePath, Path.GetDirectoryName(_outputFilePath)); var inputFile = new MediaFile { Filename = _inputFilePath }; var outputFile = new MediaFile { Filename = outputPath }; using (var engine = new Engine()) { engine.ConvertProgressEvent += engine_ConvertProgressEvent; engine.ConversionCompleteEvent += engine_ConversionCompleteEvent; engine.GetMetadata(inputFile); ConversionOptions options = new ConversionOptions(); options.CutMedia(TimeSpan.FromSeconds(30), TimeSpan.FromSeconds(25)); engine.Convert(inputFile, outputFile, options); engine.GetMetadata(outputFile); } Assert.That(File.Exists(outputPath)); // Input file is 33 seconds long, seeking to the 30th second and then // attempting to cut another 25 seconds isn't possible as there's only 3 seconds // of content length, so instead the library cuts the maximumum possible. }
void bw_DoWork(object sender, DoWorkEventArgs e) { var options = new MediaToolkit.Options.ConversionOptions(); var inputFiled = new MediaFile { Filename = VideoToTrim }; var outputFile = new MediaFile { Filename = VideoToTrimTo }; string video2trim = "\"" + VideoToTrim + "\""; string video2trim2 = "\"" + VideoToTrimTo + "\""; using (var engine = new Engine()) { engine.GetMetadata(inputFiled); options.CutMedia(Start, End); //fade=in:0:30 engine.ConvertProgressEvent += ConvertProgressEvent; engine.ConversionCompleteEvent += engine_ConversionCompleteEvent; engine.Convert(inputFiled, outputFile, options); //ffmpeg -i input.mp4 -filter:v 'fade=in:0:50' \ -c:v libx264 -crf 22 -preset veryfast -c:a copy output.mp4 //engine.CustomCommand("-ss " + Start + " -t " + End + " -i " + video2trim + " " + "\"" + " fade=in:0:03" + "\"" + " " + video2trim2); //engine.CustomCommand("-ss " + Start + " -t " + End + " -i" + " " + video2trim + " -filter:v" + " fade=in=0:130 " + "-c:v libx264 -crf 22 -preset veryfast -c:a copy " + video2trim2); //std trim // string startTime = Start.Hours + ":" + Start.m //engine.CustomCommand("-ss " + Start. + " -t " + End + " -i " + video2trim + " -acodec copy -vcodec copy " + video2trim2); } }
public static void IntroVideoss(string VideoFile) { // this.FileName = VideoFile; var inputFile = new MediaFile { Filename = VideoFile }; var outputFile = new MediaFile {Filename = @"Z:\ddd.mp4"}; var inputFiles = new MediaToolkit.Options.ConversionOptions(); var engine = new MediaToolkit.Engine(); TimeSpan t = new TimeSpan(0, 0, 2, 10, 49); TimeSpan d = new TimeSpan(0, 0, inputFile.Metadata.Duration.Minutes, inputFile.Metadata.Duration.Seconds, inputFile.Metadata.Duration.Milliseconds); d = inputFile.Metadata.Duration; d = d - t; inputFiles.CutMedia (t, d); engine.Convert(inputFile, outputFile, inputFiles); }
private static ConversionOptions InitializeClippingData(decimal newDurationInMilliseconds, TrailerClipperOptions clipperOptions) { var options = new ConversionOptions(); var newDuration = Convert.ToDouble(newDurationInMilliseconds); var newDurationTimeSpan = TimeSpan.FromMilliseconds(newDuration); var seekToPosition = TimeSpan.Zero; if (clipperOptions.RemoveIntro) { var introLength = Convert.ToDouble(clipperOptions.IntroLengthInMilliseconds); seekToPosition = TimeSpan.FromMilliseconds(introLength); } var lengthSpan = newDurationTimeSpan.Subtract(seekToPosition); options.CutMedia(seekToPosition, lengthSpan); return options; }
public void Can_CutVideo() { string outputPath = string.Format(@"{0}\Cut_Video_Test.mp4", Path.GetDirectoryName(_outputFilePath)); var inputFile = new MediaFile { Filename = _inputFilePath }; var outputFile = new MediaFile { Filename = outputPath }; using (var engine = new Engine()) { engine.ConvertProgressEvent += engine_ConvertProgressEvent; engine.ConversionCompleteEvent += engine_ConversionCompleteEvent; engine.GetMetadata(inputFile); var options = new ConversionOptions(); options.CutMedia(TimeSpan.FromSeconds(30), TimeSpan.FromSeconds(25)); engine.Convert(inputFile, outputFile, options); } }
public IEnumerable<MediaSegment> Segment(FileInfo file, long fileId) { var source = new MediaFile(file.FullName); using (var engine = new Engine()) { engine.GetMetadata(source); var progressMs = 0.0; while (progressMs < source.Metadata.Duration.TotalMilliseconds) { var options = new ConversionOptions(); var endMs = Math.Min(progressMs + _segmentLengthMs, source.Metadata.Duration.TotalMilliseconds); options.CutMedia(TimeSpan.FromMilliseconds(progressMs), TimeSpan.FromMilliseconds(endMs)); var outputFile = Path.Combine(file.DirectoryName, string.Format("{0}_audio_{1}ms.wav", file.Name, progressMs)); engine.Convert(source, new MediaFile(outputFile), options); yield return new MediaSegment { FileId = fileId, File = new FileInfo(outputFile), OffsetMs = progressMs, DurationMs = endMs - progressMs }; progressMs = endMs; } } }