public void AddAudioAndVideo() { // test all the overloads for AddVideoWithAudio using (ITimeline timeline = new DefaultTimeline()) { timeline.AddVideoGroup(24, 320, 240).AddTrack(); timeline.AddAudioGroup().AddTrack(); IAudioVideoClipPair clip1 = timeline.AddVideoWithAudio("1sec.wmv"); Assert.AreEqual(0, clip1.AudioClip.Offset); Assert.AreEqual(1, clip1.AudioClip.Duration); Assert.AreEqual(0, clip1.VideoClip.Offset); Assert.AreEqual(1, clip1.VideoClip.Duration); IAudioVideoClipPair clip2 = timeline.AddVideoWithAudio("1sec.wmv", 1); Assert.AreEqual(2, clip2.AudioClip.Offset); Assert.AreEqual(1, clip2.AudioClip.Duration); Assert.AreEqual(2, clip2.VideoClip.Offset); Assert.AreEqual(1, clip2.VideoClip.Duration); IAudioVideoClipPair clip3 = timeline.AddVideoWithAudio("1sec.wmv", 0, 0.5); Assert.AreEqual(3, clip3.AudioClip.Offset); Assert.AreEqual(0.5, clip3.AudioClip.Duration); Assert.AreEqual(3, clip3.VideoClip.Offset); Assert.AreEqual(0.5, clip3.VideoClip.Duration); IAudioVideoClipPair clip4 = timeline.AddVideoWithAudio("1sec.wmv", 0, 0.5, 1.0); Assert.AreEqual(3.5, clip4.AudioClip.Offset); Assert.AreEqual(0.5, clip4.AudioClip.Duration); Assert.AreEqual(0.5, clip4.AudioClip.MediaStart); Assert.AreEqual(3.5, clip4.VideoClip.Offset); Assert.AreEqual(0.5, clip4.VideoClip.Duration); Assert.AreEqual(0.5, clip4.VideoClip.MediaStart); IAudioVideoClipPair clip5 = timeline.AddVideoWithAudio("1sec.wmv", InsertPosition.Absolute, 6, 0, -1); Assert.AreEqual(6, clip5.AudioClip.Offset); Assert.AreEqual(1, clip5.AudioClip.Duration); Assert.AreEqual(6, clip5.VideoClip.Offset); Assert.AreEqual(1, clip5.VideoClip.Duration); IAudioVideoClipPair clip6 = timeline.AddVideoWithAudio("myclip", "1sec.wmv", InsertPosition.Absolute, 8, 0, 0.5); Assert.AreEqual(8, clip6.AudioClip.Offset); Assert.AreEqual(0, clip6.AudioClip.MediaStart); Assert.AreEqual(0.5, clip6.AudioClip.Duration); Assert.AreEqual("myclip", clip6.AudioClip.Name); Assert.AreEqual(8, clip6.VideoClip.Offset); Assert.AreEqual(0, clip6.VideoClip.MediaStart); Assert.AreEqual(0.5, clip6.VideoClip.Duration); Assert.AreEqual("myclip", clip6.VideoClip.Name); } }
public void ShadowCopyAudio() { using (ITimeline timeline = new DefaultTimeline()) { timeline.AddAudioGroup().AddTrack(); timeline.AddVideoGroup(24, 320, 200).AddTrack(); IAudioVideoClipPair pair = timeline.AddVideoWithAudio("..\\..\\1sec.wmv", true); Assert.AreEqual("..\\..\\1sec.wmv", pair.VideoClip.File.FileName); Assert.AreNotEqual("..\\..\\1sec.wmv", pair.AudioClip.File.FileName); Assert.IsTrue(pair.AudioClip.File.FileName.EndsWith(".wmv")); } }
public void WatermarkVideoClip() { // this demonstrates one way of watermarking a video clip... string outputFile = "WatermarkVideoClip.wmv"; using (ITimeline timeline = new DefaultTimeline(15)) { // greate our default audio track timeline.AddAudioGroup().AddTrack(); // add a video group, 32bpp, 320x240 (32bpp required to allow for an alpha channel) IGroup videoGroup = timeline.AddVideoGroup(32, 320, 240); // add our default video track ITrack videoTrack = videoGroup.AddTrack(); // add another video track, this will be used to contain our watermark image ITrack watermarkTrack = videoGroup.AddTrack(); // add the video in "transitions.wmv" to the first video track, and the audio in "transitions.wmv" // to the first audio track. timeline.AddVideoWithAudio("transitions.wmv"); // add the watermark image in, and apply it for the duration of the videoContent // this image will be stretched to fit the video clip, and in this case is a transparent gif. IClip watermarkClip = watermarkTrack.AddImage("testlogo.gif", 0, videoTrack.Duration); // add a alpha setter effect to the image, this will adjust the alpha of the image to be 0.5 // of it's previous value - so the watermark is 50% transparent. watermarkClip.AddEffect(0, watermarkClip.Duration, StandardEffects.CreateAlphaSetterRamp(0.8)); // add a transition to the watermark track, this allows the video clip to "shine through" the watermark, // base on the values present in the alpha channel of the watermark track. watermarkTrack.AddTransition(0, videoTrack.Duration, StandardTransitions.CreateKey(KeyTransitionType.Alpha, null, null, null, null, null), false); using ( // render it to windows media var renderer = new WindowsMediaRenderer(timeline, outputFile, WindowsMediaProfiles.HighQualityVideo)) { renderer.Render(); } } }
public void ShadowCopyAudio() { using (ITimeline timeline = new DefaultTimeline()) { string fullPath = Path.GetFullPath("1sec.wmv"); timeline.AddAudioGroup().AddTrack(); timeline.AddVideoGroup(24, 320, 200).AddTrack(); IAudioVideoClipPair pair = timeline.AddVideoWithAudio("1sec.wmv", true); Assert.AreEqual(fullPath, pair.VideoClip.File.FileName); Assert.AreNotEqual(fullPath, pair.AudioClip.File.FileName); Assert.IsTrue(pair.AudioClip.File.FileName.EndsWith(".wmv")); } }