Exemple #1
0
        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))));
        }
Exemple #2
0
        public static bool TryGetMuxer(string muxerName, out IMuxer muxer)
        {
            muxer = Muxers.FirstOrDefault(x => x.Identifier == muxerName);
            if (muxer == null)
            {
                return(false);
            }

            return(true);
        }
Exemple #3
0
 public Conn(IMuxer muxer, ushort id)
 {
     _muxer = muxer;
     _id    = id;
 }