public void RenderWithoutVideo()
        {
            using (ITimeline timeline = new DefaultTimeline())
            {
                timeline.AddAudioGroup();

                using (var renderer = new AviFileRenderer(timeline, null))
                {
                    renderer.Render();
                }
            }
        }
예제 #2
0
파일: Form1.cs 프로젝트: Tupiet/MLH
        private void button1_Click(object sender, EventArgs e)
        {
            string firstPath  = @"";
            string secondPath = @"";
            string endPath    = @"";

            OpenFileDialog firstDialog = new OpenFileDialog();

            firstDialog.Filter           = "Video files (*.avi)|*.avi";
            firstDialog.InitialDirectory = "C:\\";
            firstDialog.Title            = "Select the first video you want to merge";

            if (firstDialog.ShowDialog() == DialogResult.OK)
            {
                firstPath = firstDialog.FileName;
            }

            OpenFileDialog secondDialog = new OpenFileDialog();

            secondDialog.Filter = "Video files (*.avi)|*.avi";
            secondDialog.Title  = "Select the second video you want to merge";

            if (secondDialog.ShowDialog() == DialogResult.OK)
            {
                secondPath = secondDialog.FileName;
            }

            CommonOpenFileDialog pathFinal = new CommonOpenFileDialog();

            pathFinal.IsFolderPicker = true;

            if (pathFinal.ShowDialog() == CommonFileDialogResult.Ok)
            {
                endPath = pathFinal.FileName + "/videoMerged.avi";
            }



            using (ITimeline timeline = new DefaultTimeline()) {
                IGroup group = timeline.AddVideoGroup(32, 1920, 1080);

                var firstVideoClip  = group.AddTrack().AddVideo(firstPath);
                var secondVideoClip = group.AddTrack().AddVideo(secondPath, firstVideoClip.Duration);

                using (AviFileRenderer renderer = new AviFileRenderer(timeline, endPath))
                {
                    renderer.Render();
                }
            }
        }
        public void RenderWithNoFileName()
        {
            using (ITimeline timeline = new DefaultTimeline())
            {
                IGroup group = timeline.AddVideoGroup(24, 100, 80);
                ITrack track = group.AddTrack();
                track.AddClip("transitions.wmv", GroupMediaType.Video, InsertPosition.Absolute, 0, 0, 2);

                using (var renderer = new AviFileRenderer(timeline, null))
                {
                    renderer.Render();
                }
            }
        }
        public void RenderVideoOnly()
        {
            string outputFile = "RenderVideoOnly.avi";

            using (ITimeline timeline = new DefaultTimeline())
            {
                IGroup group = timeline.AddVideoGroup(24, 100, 80);
                ITrack track = group.AddTrack();
                track.AddClip("transitions.wmv", GroupMediaType.Video, InsertPosition.Absolute, 0, 0, 2);

                using (var renderer = new AviFileRenderer(timeline, outputFile))
                {
                    renderer.Render();
                }

                AssertLengths(timeline, 2, outputFile);
            }
        }
        public void RenderVideoAndAudio()
        {
            string outputFile = "RenderVideoAndAudio.avi";

            using (ITimeline timeline = new DefaultTimeline())
            {
                IGroup videoGroup = timeline.AddVideoGroup(24, 100, 80);
                ITrack videoTrack = videoGroup.AddTrack();
                videoTrack.AddClip("transitions.wmv", GroupMediaType.Video, InsertPosition.Absolute, 0, 0, 2);

                IGroup audioGroup = timeline.AddAudioGroup();
                ITrack audioTrack = audioGroup.AddTrack();
                audioTrack.AddClip("testinput.wav", GroupMediaType.Audio, InsertPosition.Absolute, 0, 0, 2);

                using (var renderer = new AviFileRenderer(timeline, outputFile))
                {
                    renderer.Render();
                }

                AssertLengths(timeline, 2, outputFile);
            }
        }
예제 #6
0
        public static void createVideo(string outputFile, string tempFileName, int width, int height, bool append)
        {
            if (!append)
            {
                tempFileName = outputFile;
            }

            using (ITimeline timeline = new DefaultTimeline())
            {
                IGroup group      = timeline.AddVideoGroup(32, width, height);
                ITrack videoTrack = group.AddTrack();

                foreach (var filename in Directory.GetFiles(@"Output\"))
                {
                    videoTrack.AddImage(filename, 0, (1.0 / 48.0));
                }

                ITrack audioTrack = timeline.AddAudioGroup().AddTrack();
                try
                {
                    using (AviFileRenderer renderer = new AviFileRenderer(timeline, tempFileName))
                    {
                        renderer.Render();
                    }
                }
                catch (Exception ex)
                {
                    throw;
                }
            }

            if (append)
            {
                using (ITimeline timeline = new DefaultTimeline())
                {
                    IGroup group      = timeline.AddVideoGroup(32, width, height);
                    ITrack videoTrack = group.AddTrack();

                    var firstVideoClip  = group.AddTrack().AddVideo(outputFile);
                    var secondVideoClip = group.AddTrack().AddVideo(tempFileName, firstVideoClip.Duration);

                    ITrack audioTrack = timeline.AddAudioGroup().AddTrack();
                    try
                    {
                        using (AviFileRenderer renderer = new AviFileRenderer(timeline, "_" + outputFile))
                        {
                            renderer.Render();
                        }

                        Application.DoEvents();
                        System.Threading.Thread.Sleep(1000);

                        File.Delete(outputFile);
                        File.Delete(tempFileName);
                        File.Move("_" + outputFile, outputFile);
                    }
                    catch (Exception ex)
                    {
                        throw;
                    }
                }
            }
        }