ExecuteAndReturnOutput() public static method

public static ExecuteAndReturnOutput ( string command, string arguments ) : string
command string
arguments string
return string
        /// <summary>
        /// Opens from file.
        /// </summary>
        /// <param name='fileName'>
        /// File name.
        /// </param>
        public bool OpenFromFile(string fileName)
        {
            try
            {
                if (!File.Exists(fileName))
                {
                    return(false);
                }

                FileName = fileName;
                var fi = new System.IO.FileInfo(fileName);
                FileSize = fi.Length;

                Tracks.Clear();

                TargetContainer = MediaInfoBase.DetectContainerByExt(fileName);

                var mediaInfoXML = SupportMethods.ExecuteAndReturnOutput(MediaConvertGUIConfiguration.MediaInfoPath, "-f --Output=XML \"" + fileName + "\"");
                RawMediaInfoOutput = mediaInfoXML;

                var xmlDoc = new System.Xml.XmlDocument();
                xmlDoc.LoadXml(mediaInfoXML);

                var nodes = xmlDoc.SelectNodes("Mediainfo/File/track");
                foreach (XmlNode node in nodes)
                {
                    var track = new TrackInfo();
                    track.ParseFromXmlNode(node);
                    Tracks.Add(track);
                }

                return(true);
            } catch (Exception ex)
            {
                Console.WriteLine("Error:" + ex.ToString());
                return(false);
            }
        }
Beispiel #2
0
        public static string MakeFFMpegScreenShot(MediaInfo sourceMovie, int secondsDelay = 0)
        {
            if (sourceMovie.FirstVideoTrack != null && File.Exists(sourceMovie.FileName))
            {
                var ffmpegCommandArgs = String.Empty;

                var timeSpan = TimeSpan.FromSeconds(secondsDelay);
                //var timeAsStrig = timeSpan.ToString("hh:mm:ss");
                var timeAsString = string.Format("{0}:{1}",
                                                 timeSpan.Minutes.ToString().PadLeft(2, '0'),
                                                 timeSpan.Seconds.ToString().PadLeft(2, '0'));

                var picFileName = sourceMovie.FileName + ".jpg";

                var counter = 0;
                while (File.Exists(picFileName))
                {
                    counter++;
                    picFileName = sourceMovie.FileName + "." + counter.ToString().PadLeft(2, '0') + ".jpg";
                }

                // https://trac.ffmpeg.org/wiki/Create%20a%20thumbnail%20image%20every%20X%20seconds%20of%20the%20video
                // ffmpeg -i input.flv -ss 00:00:14.435 -f image2 -vframes 1 out.png

                ffmpegCommandArgs = " -i {filename} -ss {time} -f image2 -vframes 1 {pic}";

                ffmpegCommandArgs = ffmpegCommandArgs.Replace("{filename}", "\"" + sourceMovie.FileName + "\"");
                ffmpegCommandArgs = ffmpegCommandArgs.Replace("{time}", timeAsString);
                ffmpegCommandArgs = ffmpegCommandArgs.Replace("{pic}", "\"" + picFileName + "\"");

                SupportMethods.ExecuteAndReturnOutput(MediaConvertGUIConfiguration.FFMpegPath, ffmpegCommandArgs);

                return(picFileName);
            }

            return(null);
        }