コード例 #1
0
        private void FFmpegProcess_Process_Output(string data)
        {
            if (data == null)
            {
                return;
            }
            try
            {
                receivedMessagesLog.AppendLine(data);

                ConversionCompleteEventArgs convertCompleteEvent;
                ConvertProgressEventArgs    progressEvent;

                if ((progressEvent = RegexEngine.IsProgressData(data)) != null)
                {
                    progressEvent.TotalDuration = metadata.Duration;
                    progress = progressEvent.ProcessedDuration.TotalSeconds / progressEvent.TotalDuration.TotalSeconds * 100.0;
                    OnProgressChanged?.Invoke(this, progressEvent);
                }
            }
            catch (Exception ex)
            {
                Stop();
            }
        }
コード例 #2
0
        public Metadata GetMetaData(string filePath)
        {
            string           invokeString = "-i " + filePath;
            ProcessStartInfo info         = ConvertToProcessStartInfo(invokeString);

            try
            {
                using (FFmpegProcess = new Process())
                {
                    FFmpegProcess.StartInfo = info;
                    FFmpegProcess.Start();
                    string data = FFmpegProcess.StandardError.ReadToEnd();
                    FFmpegProcess.WaitForExit();
                    metadata      = RegexEngine.GetMetaData(data);
                    FFmpegProcess = null;
                }
            }
            catch (Exception)
            {
                Stop();
            }
            return(metadata);
        }