Inheritance: MediaInfoBase
示例#1
0
        /// <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;
            }
        }
示例#2
0
 public void AppendTracksTo(MediaInfo mInfo,decimal durationMS, string onlyType="")
 {
     foreach(var track in Tracks)
     {
         if ((onlyType=="") || ((track.TrackType ==onlyType)) )
         {
             var tr = new TrackInfo();
             track.CopyTo(tr);
             tr.DurationMS = durationMS;
             mInfo.Tracks.Add(tr);
         }
     }
 }
示例#3
0
 public void Copyto(MediaInfo mInfo,bool videoOnly)
 {
     mInfo.ClearTracks();
     foreach(var track in Tracks)
     {
         if ((videoOnly==false) || ((track.TrackType =="Video")) )
         {
             var tr = new TrackInfo();
             track.CopyTo(tr);
             mInfo.Tracks.Add(tr);
         }
     }
     mInfo.TargetVideoCodec = TargetVideoCodec;
     mInfo.TargetContainer = TargetContainer;
     mInfo.FileName = FileName;
     mInfo.FileSize = FileSize;
     mInfo.EditAspect = EditAspect;
     mInfo.EditBitRate = EditBitRate;
     mInfo.EditFrameRate = EditFrameRate;
     mInfo.EditResolution = EditResolution;
     mInfo.EditRotation = EditRotation;
 }
示例#4
0
        public void CopyTo(TrackInfo track)
        {
            track.Aspect = Aspect;
            track.Bitrate = Bitrate;
            track.Codec = Codec;
            track.Channels = Channels;
            track.TrackType = TrackType;
            track.FrameRate = FrameRate;
            track.SamplingRateHz = SamplingRateHz;
            track.StreamSize = StreamSize;

            track.Width = RealWidth;
            track.PixelAspect = 1;

            track.Height = Height;
            track.DurationMS = DurationMS;
            track.TargetAudioCodec = TargetAudioCodec;
            track.RotatationAngle = RotatationAngle;
        }