コード例 #1
0
ファイル: Montager.cs プロジェクト: IvanSorokin/Tuto
 public static IEnumerable<BatchCommand> Commands2(Chunk chunk)
 {
     if (chunk.IsFaceChunk)
         yield return new ExtractFaceVideoCommand
         {
             VideoInput = chunk.VideoSource.File,
             StartTime = chunk.VideoSource.StartTime,
             Duration = chunk.VideoSource.Duration,
             VideoOutput = chunk.TemporalVideoFile
         };
     else
         yield return new ExtractScreenVideoCommand
         {
             VideoInput = chunk.VideoSource.File,
             StartTime = chunk.VideoSource.StartTime,
             Duration = chunk.VideoSource.Duration,
             VideoOutput = chunk.TemporalVideoFile
         };
     var s = chunk.AudioSource ?? chunk.VideoSource;
     yield return new ExtractAudioCommand
     {
         VideoInput = s.File,
         StartTime = s.StartTime,
         Duration = s.Duration,
         AudioOutput = chunk.TemporalAudioFile
     };
 }
コード例 #2
0
        public void FaceTest2()
        {
            var chunk = new Chunk
            {
                IsFaceChunk=true,
                Id = 23,
                VideoSource = new ChunkSource { StartTime = 1000, File = "face", Duration = 1000 }

            };

            var cmds = Montager.Commands2(chunk).ToList();
            Assert.AreEqual(2, cmds.Count);
            Assert.IsInstanceOfType(cmds[0], typeof(ExtractFaceVideoCommand));
            {
                var c = (ExtractFaceVideoCommand)cmds[0];
                Assert.AreEqual("face", c.VideoInput);
                Assert.AreEqual("video023.avi", c.VideoOutput);
                Assert.AreEqual(1000, c.StartTime);
                Assert.AreEqual(1000, c.Duration);
            }
            Assert.IsInstanceOfType(cmds[1], typeof(ExtractAudioCommand));
            {
                var c = (ExtractAudioCommand)cmds[1];
                Assert.AreEqual("face", c.VideoInput);
                Assert.AreEqual("audio023.mp3", c.AudioOutput);
                Assert.AreEqual(1000, c.StartTime);
                Assert.AreEqual(1000, c.Duration);
            }
        }
コード例 #3
0
ファイル: Montager.cs プロジェクト: IvanSorokin/Tuto
 public static IEnumerable<BatchCommand> Commands1(Chunk chunk)
 {
     if (chunk.IsFaceChunk)
     {
         yield return new ExtractFaceVideoCommand
             {
                 VideoInput = chunk.VideoSource.File,
                 StartTime = chunk.VideoSource.StartTime,
                 Duration = chunk.VideoSource.Duration,
                 VideoOutput = chunk.OutputVideoFile
             };
     }
     else
     {
        yield return new ExtractAudioCommand
         {
             VideoInput=chunk.AudioSource.File,
             StartTime=chunk.AudioSource.StartTime,
             Duration=chunk.AudioSource.Duration,
             AudioOutput=chunk.TemporalAudioFile
         };
        yield return new ExtractScreenVideoCommand
        {
            VideoInput = chunk.VideoSource.File,
            StartTime = chunk.VideoSource.StartTime,
            Duration = chunk.VideoSource.Duration,
            VideoOutput = chunk.TemporalVideoFile
        };
         yield return new MixVideoAudioCommand
         {
             VideoInput=chunk.TemporalVideoFile,
             AudioInput=chunk.TemporalAudioFile,
             VideoOutput=chunk.OutputVideoFile
         };
     }
 }
コード例 #4
0
 public void ScreenTest()
 {
     var chunk = new Chunk
     {
         IsFaceChunk=false,
         Id = 23,
         VideoSource = new ChunkSource { StartTime = 1000, File = "screen", Duration = 1000 },
         AudioSource = new ChunkSource { StartTime = 2000, File = "face", Duration = 1000 }
     };
     var cmds = Montager.Commands1(chunk).ToList();
     Assert.AreEqual(3, cmds.Count);
     Assert.IsInstanceOfType(cmds[0], typeof(ExtractAudioCommand));
     {
         var c = (ExtractAudioCommand)cmds[0];
         Assert.AreEqual("face", c.VideoInput);
         Assert.AreEqual("audio023.mp3", c.AudioOutput);
         Assert.AreEqual(2000, c.StartTime);
         Assert.AreEqual(1000, c.Duration);
     }
     Assert.IsInstanceOfType(cmds[1], typeof(ExtractScreenVideoCommand));
     {
         var c = (ExtractScreenVideoCommand)cmds[1];
         Assert.AreEqual("screen", c.VideoInput);
         Assert.AreEqual("video023.avi", c.VideoOutput);
         Assert.AreEqual(1000, c.StartTime);
         Assert.AreEqual(1000, c.Duration);
     }
     Assert.IsInstanceOfType(cmds[2], typeof(MixVideoAudioCommand));
     {
         var c = (MixVideoAudioCommand)cmds[2];
         Assert.AreEqual("video023.avi", c.VideoInput);
         Assert.AreEqual("audio023.mp3", c.AudioInput);
         Assert.AreEqual("chunk023.avi", c.VideoOutput);
     }
 }