Пример #1
0
        public static Cutlist GetCuts(string input)
        {
            Cutlist Cuts = new Cutlist();
            IEnumerable <Chapter> chapters = Mpeg.GetChapters(input);

            List <Chapter> ads = chapters.Where(c => c.tag.value == "Video").ToList();

            foreach (Chapter chapter in ads)
            {
                Cut cut = new Cut()
                {
                    Start = chapter.start_time + 2, End = chapter.end_time - 2
                };
                if (Cuts.Count == 0)
                {
                    cut.Start += 4;
                }
                if (chapter == ads.Last())
                {
                    cut.End -= 5;
                }
                if (cut.End > cut.Start)
                {
                    Cuts.Add(cut);
                }
            }
            return(Cuts);
        }
Пример #2
0
        public void AddMpegToXml(Mpeg mpeg)
        {
            var mpegs = DeserializeMpegsFromXmlFile();

            mpegs.Add(mpeg);
            SerializeMpegsToXmlFile(mpegs);
        }
Пример #3
0
        private void SearchButtonOnClick(object sender, EventArgs e)
        {
            MpegManager manager = new MpegManager(xmlPath);

            var Concept               = ConceptTxt.Text ?? "";
            var Event                 = EventTxt.Text ?? "";
            var SpatialRelation       = SpatialRelationTxt.Text ?? "";
            var SpatialRelationSource = SpatialRelationSourceTxt.Text ?? "";
            var SpatialRelationTarget = SpatialRelationTargetTxt.Text ?? "";

            var TemporalRelation       = TemporalRelationTxt.Text ?? "";
            var TemporalRelationSource = TemporalRelationSourceTxt.Text ?? "";
            var TemporalRelationTarget = TemporalRelationTargetTxt.Text ?? "";
            var agent    = AgentTxt.Text ?? "";
            var Relation = RelationTxt.Text ?? "";



            HashSet <Agent> agents = new HashSet <Agent> {
                new Agent(agent)
            };
            Mpeg mpegQuery = new Mpeg(Event, Concept, "", SpatialRelation, SpatialRelationSource, SpatialRelationTarget,
                                      TemporalRelation, TemporalRelationSource, TemporalRelationTarget, Relation, agents);
            HashSet <Mpeg> result = manager.QueryImages(mpegQuery);

            HashSet <Image> images = new HashSet <Image>();

            foreach (var r in result)
            {
                images.Add(manager.GetImageFromBase64(r.Image));
            }
        }
Пример #4
0
        public HashSet <Mpeg> DeserializeXmlElementsToMpegs(IEnumerable <XElement> elements)
        {
            HashSet <Mpeg> mpegs = new HashSet <Mpeg>();

            foreach (var mpegInXml in elements)
            {
                Mpeg mpeg = new Mpeg
                {
                    Agents                 = DeserializeAgentsFromXmlAgentsElement(mpegInXml.Element("Agents")),
                    TemporalRelation       = mpegInXml.Element("TemporalRelation").Value,
                    TemporalRelationSource = mpegInXml.Element("TemporalRelation").Attribute("Source").Value,
                    TemporalRelationTarget = mpegInXml.Element("TemporalRelation").Attribute("Target").Value,
                    SpatialRelation        = mpegInXml.Element("SpatialRelation").Value,
                    SpatialRelationSource  = mpegInXml.Element("SpatialRelation").Attribute("Source").Value,
                    SpatialRelationTarget  = mpegInXml.Element("SpatialRelation").Attribute("Target").Value,
                    Image    = mpegInXml.Element("Image").Value,
                    Evt      = mpegInXml.Element("Event").Value,
                    Concept  = mpegInXml.Element("Concept").Value,
                    Relation = mpegInXml.Element("Relation").Value
                };

                mpegs.Add(mpeg);
            }
            return(mpegs);
        }
Пример #5
0
        private void UploadButtonOnClick(object sender, EventArgs e)
        {
            MpegManager manager = new MpegManager(XmlPath);

            var Concept               = ConceptTxt.Text ?? "";
            var Event                 = EventTxt.Text ?? "";
            var SpatialRelation       = SpatialRelationTxt.Text ?? "";
            var SpatialRelationSource = SpatialRelationSourceTxt.Text ?? "";
            var SpatialRelationTarget = SpatialRelationTargetTxt.Text ?? "";

            var TemporalRelation       = TemporalRelationTxt.Text ?? "";
            var TemporalRelationSource = TemporalRelationSourceTxt.Text ?? "";
            var TemporalRelationTarget = TemporalRelationTargetTxt.Text ?? "";
            var agent    = AgentTxt.Text ?? "";
            var Relation = RelationTxt.Text ?? "";

            HashSet <Agent> agents = new HashSet <Agent> {
                new Agent(agent)
            };
            string encodedImage = manager.GetBase64StringFromImage(_imageHandler.GetImageUrl());
            Mpeg   mpeg         = new Mpeg(Event, Concept, encodedImage, SpatialRelation, SpatialRelationSource, SpatialRelationTarget,
                                           TemporalRelation, TemporalRelationSource, TemporalRelationTarget, Relation, agents);

            manager.AddMpegToXml(mpeg);

            // manager.MigrateXmlToDb();
        }
Пример #6
0
        public HashSet <Mpeg> QueryImages(Mpeg criteriaMpeg)
        {
            XElement       doc     = XElement.Load(xmlPath);
            var            matches = FilterAllCrtieria(doc.Elements("Mpeg7"), criteriaMpeg);
            HashSet <Mpeg> result  = DeserializeXmlElementsToMpegs(matches);

            return(result);
        }
Пример #7
0
        private XElement SerializeAgents(Mpeg mpeg)
        {
            var agents = new XElement("Agents");

            foreach (var agent in mpeg.Agents)
            {
                agents.Add(SerializeAgent(agent));
            }
            return(agents);
        }
Пример #8
0
 private void SaveMpegToDb(Mpeg mpeg)
 {
     var context = new mdipContext();
     {
         context.Mpegs.Add(mpeg);
         try
         {
             context.SaveChanges();
         }
         catch (Exception e) { }
     }
 }
Пример #9
0
        static void Main(string[] args)
        {
            IVideoMediaVisitor visitor = new ResizeVisitor();
            IMedia             rm      = new Rm();

            rm.Play();
            ((IVideoMedia)rm).Accept(visitor);

            IMedia mpeg = new Mpeg();

            mpeg.Play();
            ((IVideoMedia)mpeg).Accept(visitor);

            Console.Read();
        }
Пример #10
0
 private XElement SerializeMpeg7(Mpeg mpeg)
 {
     return(new XElement("Mpeg7",
                         new XElement("Event", mpeg.Evt),
                         new XElement("Concept", mpeg.Concept),
                         new XElement("Image", mpeg.Image),
                         new XElement("SpatialRelation", mpeg.SpatialRelation,
                                      new XAttribute("Source", mpeg.SpatialRelationSource),
                                      new XAttribute("Target", mpeg.SpatialRelationTarget)),
                         new XElement("TemporalRelation", mpeg.TemporalRelation,
                                      new XAttribute("Source", mpeg.TemporalRelationSource),
                                      new XAttribute("Target", mpeg.TemporalRelationTarget)),
                         new XElement("Relation", mpeg.Relation),
                         SerializeAgents(mpeg)
                         ));
 }
Пример #11
0
        public static void Trim(string input, string output)
        {
            string outDir = Path.GetDirectoryName(output);

            if (!Directory.Exists(outDir))
            {
                Directory.CreateDirectory(outDir);
            }
            Cutlist Cuts = GetCuts(input);

            //if (Cuts.Count ==0)
            //{
            //	double duration = Mpeg.GetDuration(input);
            //	Cuts.Add(new Cut() { Start = 6, End = duration - 7 });
            //}
            if (Cuts.Count > 0)
            {
                string meta = Mpeg.GetMetadata(input);
                Mpeg.RemoveChapters(meta);
                List <string> files = new List <string>();
                foreach (Cut cut in Cuts)
                {
                    string mp4 = GetTempMP4Name();
                    Mpeg.Trim(input, mp4, cut);
                    files.Add(mp4);
                }
                string temp = GetTempMP4Name();
                Mpeg.combine(files, output, meta, Cuts.Sum(c => c.End - c.Start));
//				Mpeg.addMeta(temp, output, meta);
                foreach (string file in files)
                {
                    File.Delete(file);
                }
                File.Delete(meta);
                File.Delete(temp);
            }
            else
            {
                double duration = Mpeg.GetDuration(input);
                Cut    cut      = new Cut()
                {
                    Start = 6, End = duration - 7
                };
                Mpeg.Trim(input, output, cut);
            }
        }
Пример #12
0
        static void Main(string[] args)
        {
            string foo = Environment.GetEnvironmentVariable("FFMPEGDir", EnvironmentVariableTarget.Machine);

            string file1 = @"H:\Recordings\TV\Valor\Season 1\Valor - s01e01 - Pilot  (Ep.101).mp4";
//			string file2 = @"H:\Recordings\TV\Blue Bloods\Season 8\Blue Bloods - s08e01 - Cutting Losses.mp4";
            string file3 = @"C:\temp\foo.mp4";

            IEnumerable <Chapter> pc1 = Mpeg.GetChapters(file1);
//			IEnumerable<Chapter> pc2 = Mpeg.GetChapters(file2);
            IEnumerable <Chapter> pc3 = Mpeg.GetChapters(file3);

            string m1 = Mpeg.GetMetadata(file1);
//			string m2 = Mpeg.GetMetadata(file2);
            string m3 = Mpeg.GetMetadata(file3);


            IEnumerable <Chapter> pcl = Mpeg.GetChapters(@"C:\temp\foo.mp4");

            Console.WriteLine("Hello World!");
        }
Пример #13
0
 public void Visit(Mpeg mpeg)
 {
     Console.WriteLine("Resize Mpeg.");
 }
Пример #14
0
 private bool MpegInList(IEnumerable <Mpeg> mpegs, Mpeg mpeg)
 {
     return(mpegs.Any(m => m.Equals(mpeg)));
 }
Пример #15
0
        private IEnumerable <XElement> FilterByAgents(IEnumerable <XElement> matches, Mpeg criteriaMpeg)
        {
            foreach (Agent agent in criteriaMpeg.Agents)
            {
                matches = FilterByCriteria(matches, "Agent", agent.Name);
            }

            return(matches);
        }
Пример #16
0
        private IEnumerable <XElement> FilterAllCrtieria(IEnumerable <XElement> matches, Mpeg criteriaMpeg)
        {
            IEnumerable <XElement> result = matches;

            result = FilterByCriteria(result, "Concept", criteriaMpeg.Concept);
            result = FilterByCriteria(result, "Evt", criteriaMpeg.Evt);

            result = FilterByCriteria(result, "SpatialRelation", criteriaMpeg.SpatialRelation);
            result = FilterByRelationAttribute(result, "SpatialRelation", "Source", criteriaMpeg.SpatialRelationSource);
            result = FilterByRelationAttribute(result, "SpatialRelation", "Target", criteriaMpeg.SpatialRelationTarget);

            result = FilterByCriteria(result, "TemporalRelation", criteriaMpeg.TemporalRelation);
            result = FilterByRelationAttribute(result, "TemporalRelation", "Source", criteriaMpeg.TemporalRelationSource);
            result = FilterByRelationAttribute(result, "TemporalRelation", "Target", criteriaMpeg.TemporalRelationTarget);

            result = FilterByCriteria(result, "Relation", criteriaMpeg.Relation);
            result = FilterByAgents(result, criteriaMpeg);
            return(result);
        }