public int Mux(IMuxer muxer, IMuxerSettings settings, Action <string> logAction, Action <string> progressAction, out string outputFileName) { MkvMergeProcessRunnerService service = ServiceFactory.GetService <MkvMergeProcessRunnerService>(); outputFileName = $"{settings.VideoSourceFileName}.muxed.{settings.FileExtension}".GetNewFileName(); var parameters = service.GetAllParameters(muxer.MuxerFileName, 2); parameters .ResetParameters() .IncludeParameterWithValue("output", outputFileName) .IncludeParameterWithNoValue("options0", "no-audio") .IncludeParameterWithValue("file0", "file", settings.VideoSourceFileName) .IncludeParameterWithNoValue("options1", "no-video") .IncludeParameterWithNoValue("options1", "no-subtitles") .IncludeParameterWithNoValue("options1", "no-chapters") .IncludeParameterWithNoValue("options1", "no-attachments") .IncludeParameterWithNoValue("options1", "no-global-tags") .IncludeParameterWithValue("file1", "file", settings.AudioSourceFileName); logAction?.Invoke($"Muxing video: {settings.VideoSourceFileName} audio: {settings.AudioSourceFileName} ..."); DefaultProcessRunnerService defaultProcessRunnerService = ServiceFactory.GetService <DefaultProcessRunnerService>(); return(defaultProcessRunnerService.RunProcess(parameters, new Action <Process, string>((process, line) => progressAction?.Invoke(line)))); }
public static bool TryGetMuxer(string muxerName, out IMuxer muxer) { muxer = Muxers.FirstOrDefault(x => x.Identifier == muxerName); if (muxer == null) { return(false); } return(true); }
public Conn(IMuxer muxer, ushort id) { _muxer = muxer; _id = id; }