public void GetMjpegStringWithNumFrameMoreDurationTest() { //Arrange const string sourceFilePath = "source file path"; const string destinationPath = "my path"; const string destinationFileName = "my file"; string destinationFilePath = Path.Combine(destinationPath, destinationFileName); MetadataServiceConfigurator serviceConfigurator = Factory.CreateMp4MetadataServiceConfigurator(); var metadata = new VideoMediaInfo { VideoDuration = (int)serviceConfigurator.ScreenshotTime.TotalMilliseconds - 1, VideoWidth = 4096, VideoHeight = 2304 }; var metadataService = new MetadataService(serviceConfigurator, metadata); var stringBuilder = new FfmpegService(metadataService, sourceFilePath, destinationPath, destinationFileName); string ffmpegStr = "-i \"{0}\" -f image2 -ss {1} -frames:v 1 -y \"{2}.jpg\""; ffmpegStr = String.Format(ffmpegStr, sourceFilePath, 0, destinationFilePath); //Act string str = stringBuilder.GetStringForScreenshot(); //Assert Assert.AreEqual(ffmpegStr, str); }
public VideoMediaInfo GetMetadata(string filePath) { var metadata = new VideoMediaInfo(); Open(filePath); metadata.AudioBitRate = GetIntValue(MediaInfoParams.AudioBps); metadata.AudioChannels = GetIntValue(MediaInfoParams.AudioChannel); metadata.VideoDuration = GetIntValue(MediaInfoParams.Duration); metadata.VideoHeight = GetIntValue(MediaInfoParams.VideHeight); metadata.VideoWidth = GetIntValue(MediaInfoParams.VideoWidth); metadata.VideoBitRate = GetIntValue(MediaInfoParams.VideoBps); // metadata.GeneralFileSize = GetLongValue(MediaInfoParams.FileSize); // metadata.VideoFrameRate = GetDoubleValue(MediaInfoParams.VideoFps); // metadata.AudioFormat = _mediaInfo.Option(MediaInfoParams.Option, MediaInfoParams.AudioCodec); metadata.AudioFormatProfile = _mediaInfo.Option(MediaInfoParams.Option, MediaInfoParams.AudioProfile); metadata.GeneralFormat = _mediaInfo.Option(MediaInfoParams.Option, MediaInfoParams.Container); metadata.VideoFormat = _mediaInfo.Option(MediaInfoParams.Option, MediaInfoParams.VideoCodec); metadata.VideoFormatSettingsGOP = _mediaInfo.Option(MediaInfoParams.Option, MediaInfoParams.VideoKeyFrame); // SetVideoFormatProfile(metadata); // Close(); return(metadata); }
public void GetMetadataErroVideoProfileTest() { //Arrange const string filePath = "my file path"; const string videoProfile = "profile"; const string profileLevel = "level"; int count = 0; var testValues = new[] { null, videoProfile, String.Format("{0}{1}{2}", videoProfile, "@", profileLevel), String.Format("{0}{1}", videoProfile, "@L") }; _mockMediaInfo.Setup((m) => m.Open(It.IsAny <string>())).Returns(1); _mockMediaInfo.Setup(SetupMediaInfoParam(MediaInfoParams.VideoFormatProfile)).Returns <string, string>((s1, s2) => { string str = testValues[count]; count++; return(str); }); //Act VideoMediaInfo metadata1 = _metadataInfo.GetMetadata(filePath); VideoMediaInfo metadata2 = _metadataInfo.GetMetadata(filePath); VideoMediaInfo metadata3 = _metadataInfo.GetMetadata(filePath); VideoMediaInfo metadata4 = _metadataInfo.GetMetadata(filePath); //Assert Assert.AreEqual(null, metadata1.VideoFormatProfile); Assert.AreEqual(videoProfile, metadata2.VideoFormatProfile); Assert.AreEqual(videoProfile, metadata3.VideoFormatProfile); Assert.AreEqual(videoProfile, metadata4.VideoFormatProfile); }
public void AdjustVideoKeyFrameSuccessTest() { //Arrange var serviceConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); int myKeyFrame = serviceConfigurator.MaxKeyFrame - 1; var metadataKeyFrame0 = new VideoMediaInfo { VideoFormatSettingsGOP = String.Format("M=1, N={0}", serviceConfigurator.MinKeyFrame - 1) }; var metadataKeyFrameMore60 = new VideoMediaInfo { VideoFormatSettingsGOP = String.Format("M=1, N={0}", serviceConfigurator.MaxKeyFrame + 1) }; var metadataKeyFrame = new VideoMediaInfo { VideoFormatSettingsGOP = String.Format("M=1, N={0}", myKeyFrame) }; var metadataService1 = new MetadataService(serviceConfigurator, metadataKeyFrame0); var metadataService2 = new MetadataService(serviceConfigurator, metadataKeyFrameMore60); var metadataService3 = new MetadataService(serviceConfigurator, metadataKeyFrame); //Act; int keyFrame0 = metadataService1.AdjustKeyFrame(); int keyFrameMore60 = metadataService2.AdjustKeyFrame(); int keyFrame = metadataService3.AdjustKeyFrame(); //Assert Assert.AreEqual(serviceConfigurator.KeyFrame, keyFrame0); Assert.AreEqual(serviceConfigurator.KeyFrame, keyFrameMore60); Assert.AreEqual(myKeyFrame, keyFrame); }
public void CheckCorrectAudioValueListTest() { //Arrange MetadataServiceConfigurator serviceConfigurator = Factory.CreateMp4MetadataServiceConfigurator(); var metadata = new VideoMediaInfo { AudioBitRate = serviceConfigurator.AudioBps720P1Channel, AudioChannels = (int)AudioChannel.One, AudioFormat = "AAC", AudioFormatProfile = "LC", VideoWidth = 4096, VideoHeight = 2304 }; var metadataService = new MetadataService(serviceConfigurator, metadata); //Act metadataService.AdjustAudioBps(); metadataService.AdjustAudioCodec(); metadataService.AdjustAudioProfile(); //Assert Assert.IsTrue(metadataService.CorrectAudioValueList.All((b) => b.Value)); }
public void AdjustContainerTest() { //Arrange const string myContainer = "myContainer"; const string anotherContainer = "anotherContainer"; var serviceConfigurator = new MetadataServiceConfigurator(myContainer, null, null, null, null); var metadata1 = new VideoMediaInfo { GeneralFormat = myContainer }; var metadata2 = new VideoMediaInfo { GeneralFormat = anotherContainer }; var metadataWithoutContainer = new VideoMediaInfo { GeneralFormat = null }; var metadataService1 = new MetadataService(serviceConfigurator, metadata1); var metadataService2 = new MetadataService(serviceConfigurator, metadata2); var metadataService3 = new MetadataService(serviceConfigurator, metadataWithoutContainer); //Act string container1 = metadataService1.AdjustContainer(); string container2 = metadataService2.AdjustContainer(); //Act & Assert CustomAssert.IsThrown <MediaFormatException>(() => metadataService3.AdjustContainer()); //Assert Assert.AreEqual(myContainer, container1); Assert.AreEqual(myContainer, container2); }
public void CheckCorrectVideoValueListTest() { //Arrange MetadataServiceConfigurator serviceConfigurator = Factory.CreateMp4MetadataServiceConfigurator(); var metadata = new VideoMediaInfo { AudioBitRate = serviceConfigurator.AudioBps720P1Channel, AudioChannels = (int)AudioChannel.One, AudioFormat = serviceConfigurator.AudioCodec.Codec, AudioFormatProfile = serviceConfigurator.AudioCodec.DefaultProfile, VideoBitRate = serviceConfigurator.VideoBps1920X1080, VideoFormat = serviceConfigurator.VideoCodec.Codec, VideoFormatProfile = serviceConfigurator.VideoCodec.DefaultProfile, VideoFrameRate = serviceConfigurator.MaxFps - 1, VideoFormatSettingsGOP = String.Format("M=1, N={0}", serviceConfigurator.KeyFrame), VideoWidth = 4096, VideoHeight = 2304 }; var metadataService = new MetadataService(serviceConfigurator, metadata); //Act metadataService.AdjustVideoWidth(); metadataService.AdjustVideoHeight(); metadataService.AdjustKeyFrame(); metadataService.AdjustVideoBps(); metadataService.AdjustVideoCodec(); metadataService.AdjustVideoFps(); metadataService.AdjustVideoProfile(); //Assert Assert.IsTrue(metadataService.CorrectVideoValueList.All((b) => b.Value)); }
public void AdjustVideoFpsSuccessTest() { //Arrange var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); var metadata1 = new VideoMediaInfo { VideoFrameRate = 29.970 }; var metadata2 = new VideoMediaInfo { VideoFrameRate = metadataConfigurator.MinFps - 1 }; var metadata3 = new VideoMediaInfo { VideoFrameRate = metadataConfigurator.MaxFps + 1 }; var metadataService1 = new MetadataService(metadataConfigurator, metadata1); var metadataService2 = new MetadataService(metadataConfigurator, metadata2); var metadataService3 = new MetadataService(metadataConfigurator, metadata3); //Act double adjustedFps1 = metadataService1.AdjustVideoFps(); //Act & Assert CustomAssert.IsThrown <MediaFormatException>(() => metadataService2.AdjustVideoFps()); CustomAssert.IsThrown <MediaFormatException>(() => metadataService3.AdjustVideoFps()); //Assert Assert.AreEqual(metadata1.VideoFrameRate, adjustedFps1); }
private void StartScreenshot(MetadataServiceConfigurator serviceConfigurator, string[] filePathes) { int count = 0; double avgEncodeFps = 0; var errorVideos = new List <string>(); var allSw = new Stopwatch(); var decodeSw = new Stopwatch(); foreach (string filePath in filePathes) { allSw.Restart(); Trace.WriteLine(String.Format("\n-------------Start decode file: {0}-------------\n", filePath)); try { string destinationFileName = GetDestinationFileName(filePath); var mediaInfo = new MediaInfoWrapper(); var metadataInfo = new VideoMetadataInfo(mediaInfo); VideoMediaInfo metadata = metadataInfo.GetMetadata(filePath); var metadataService = new MetadataService(serviceConfigurator, metadata); var stringBuilder = new FfmpegService(metadataService, filePath, _destinationPath, destinationFileName); var ffmpeg = new Ffmpeg(stringBuilder); string ffmpegString = stringBuilder.GetStringForScreenshot(); WriteFileInfo(ffmpegString, metadata); decodeSw.Restart(); ffmpeg.StartScreenshotProcess(); allSw.Stop(); decodeSw.Stop(); WriteFinishProcess(decodeSw.Elapsed, allSw.Elapsed, ffmpeg.EncodeFps); avgEncodeFps += ffmpeg.EncodeFps; count++; } catch (MediaFormatException ex) { string errorMessage = String.Format("Error File:\t\t{0}.\nError Param:\t\t{1}", filePath, ex.Message); Trace.WriteLine(errorMessage); errorVideos.Add(errorMessage); } catch (ExternalProcessException ex) { string errorMessage = String.Format("Error File:\t\t{0}.\nFfmpeg return:\t\t{1}\n{2}", filePath, ex.Result, ex.Arguments); Trace.WriteLine(errorMessage); errorVideos.Add(errorMessage); } finally { Trace.WriteLine(String.Format("\n-------------Finish decode file: {0}-------------\n", filePath)); } } avgEncodeFps = avgEncodeFps / count; WriteFinishInfo(avgEncodeFps, count, errorVideos); }
private void SetVideoFormatProfile(VideoMediaInfo metadata) { string val = _mediaInfo.Option(MediaInfoParams.Option, MediaInfoParams.VideoFormatProfile); if (val == null) { return; } string[] splitStr = Regex.Split(val, "@"); metadata.VideoFormatProfile = splitStr[0]; }
public void GetMp4StringFromIncorrectMetadataTest() { //Arrange const string sourceFilePath = "source file path"; const string destinationPath = "my path"; const string destinationFileName = "my file"; string destinationFilePath = Path.Combine(destinationPath, destinationFileName); MetadataServiceConfigurator serviceConfigurator = Factory.CreateMp4MetadataServiceConfigurator(); var metadata = new VideoMediaInfo { GeneralFormat = "MPEG-PS", AudioBitRate = serviceConfigurator.AudioBps720P1Channel + 1, AudioChannels = (int)AudioChannel.One, AudioFormat = "AC-3", AudioFormatProfile = null, VideoBitRate = serviceConfigurator.VideoBps1920X1080 + 1, VideoFormat = "MPEG Video", VideoFrameRate = serviceConfigurator.MaxFps - 1, VideoFormatSettingsGOP = String.Format("M=1, N={0}", serviceConfigurator.MaxKeyFrame + 1), VideoFormatProfile = "High", VideoWidth = 4096, VideoHeight = 2304, }; var metadataService = new MetadataService(serviceConfigurator, metadata); var stringBuilder = new FfmpegService(metadataService, sourceFilePath, destinationPath, destinationFileName); string ffmpegStr = "-i \"{0}\" -f {1} -vcodec {2} -b:v {3} -r {4} -g {5} -s {6}x{7} -profile {8} -acodec {9} -b:a {10} -quality good -cpu-used 0 -threads {11} -y \"{12}.{13}\""; ffmpegStr = String.Format(ffmpegStr, sourceFilePath, metadataService.ContainerForFfmpeg, metadataService.VideoCodecLib, serviceConfigurator.VideoBps1920X1080, serviceConfigurator.MaxFps - 1, serviceConfigurator.KeyFrame, metadata.VideoWidth, metadata.VideoHeight, serviceConfigurator.VideoCodec.DefaultProfile, metadataService.AudioCodecLib, serviceConfigurator.AudioBps720P1Channel, Environment.ProcessorCount, destinationFilePath, serviceConfigurator.FfmpegContainer); //Act string str = stringBuilder.GetStringForEncoder(); //Assert Assert.AreEqual(ffmpegStr, str, true); }
public void GetMp4StringFromIncorrectMetadataTest() { //Arrange const string sourceFilePath = "source file path"; const string destinationPath = "my path"; const string destinationFileName = "my file"; string destinationFilePath = Path.Combine(destinationPath, destinationFileName); MetadataServiceConfigurator serviceConfigurator = Factory.CreateMp4MetadataServiceConfigurator(); var metadata = new VideoMediaInfo { GeneralFormat = "MPEG-PS", AudioBitRate = serviceConfigurator.AudioBps720P1Channel + 1, AudioChannels = (int) AudioChannel.One, AudioFormat = "AC-3", AudioFormatProfile = null, VideoBitRate = serviceConfigurator.VideoBps1920X1080 + 1, VideoFormat = "MPEG Video", VideoFrameRate = serviceConfigurator.MaxFps - 1, VideoFormatSettingsGOP = String.Format("M=1, N={0}", serviceConfigurator.MaxKeyFrame + 1), VideoFormatProfile = "High", VideoWidth = 4096, VideoHeight = 2304, }; var metadataService = new MetadataService(serviceConfigurator, metadata); var stringBuilder = new FfmpegService(metadataService, sourceFilePath, destinationPath, destinationFileName); string ffmpegStr = "-i \"{0}\" -f {1} -vcodec {2} -b:v {3} -r {4} -g {5} -s {6}x{7} -profile {8} -acodec {9} -b:a {10} -quality good -cpu-used 0 -threads {11} -y \"{12}.{13}\""; ffmpegStr = String.Format(ffmpegStr, sourceFilePath, metadataService.ContainerForFfmpeg, metadataService.VideoCodecLib, serviceConfigurator.VideoBps1920X1080, serviceConfigurator.MaxFps - 1, serviceConfigurator.KeyFrame, metadata.VideoWidth, metadata.VideoHeight, serviceConfigurator.VideoCodec.DefaultProfile, metadataService.AudioCodecLib, serviceConfigurator.AudioBps720P1Channel, Environment.ProcessorCount, destinationFilePath, serviceConfigurator.FfmpegContainer); //Act string str = stringBuilder.GetStringForEncoder(); //Assert Assert.AreEqual(ffmpegStr, str, true); }
public void AdjustVideoProfileTest() { //Arrange const string myCodec = "myCodec"; const string anotherProfile = "anotherProfile"; const string firstProfile = "firstProfile"; const string secondProfile = "secondProfile"; var videoCodec = new CodecData(myCodec, null, firstProfile, secondProfile); var serviceConfigurator = new MetadataServiceConfigurator(null, null, videoCodec, null, null); var metadata1 = new VideoMediaInfo { VideoFormat = myCodec, VideoFormatProfile = firstProfile }; var metadata2 = new VideoMediaInfo { VideoFormat = myCodec, VideoFormatProfile = secondProfile }; var metadata3 = new VideoMediaInfo { VideoFormat = myCodec, VideoFormatProfile = anotherProfile }; var metadataWithoutCodec = new VideoMediaInfo { VideoFormat = myCodec, VideoFormatProfile = null }; var metadataService1 = new MetadataService(serviceConfigurator, metadata1); var metadataService2 = new MetadataService(serviceConfigurator, metadata2); var metadataService3 = new MetadataService(serviceConfigurator, metadata3); var metadataService4 = new MetadataService(serviceConfigurator, metadataWithoutCodec); //Act string profile1 = metadataService1.AdjustVideoProfile(); string profile2 = metadataService2.AdjustVideoProfile(); string profile3 = metadataService3.AdjustVideoProfile(); string profile4 = metadataService4.AdjustVideoProfile(); //Assert Assert.AreEqual(firstProfile, profile1); Assert.AreEqual(secondProfile, profile2); Assert.AreEqual(firstProfile, profile3); Assert.AreEqual(firstProfile, profile4); }
public void AdjustAudioProfileTest() { //Arrange const string myCodec1 = "myCodec1"; const string myCodec2 = "myCodec2"; const string anotherProfile = "anotherProfile"; const string firstProfile = "firstProfile"; var audioCodec = new CodecData(myCodec1, null, firstProfile); var serviceConfigurator = new MetadataServiceConfigurator(null, null, null, audioCodec, new CodecData(myCodec2, null)); var metadata1 = new VideoMediaInfo { AudioFormat = myCodec1, AudioFormatProfile = firstProfile }; var metadata2 = new VideoMediaInfo { AudioFormat = myCodec1, AudioFormatProfile = anotherProfile }; var metadata3 = new VideoMediaInfo { AudioFormat = myCodec2, AudioFormatProfile = anotherProfile }; var metadataWithoutProfile = new VideoMediaInfo { AudioFormat = myCodec1, AudioFormatProfile = null }; var metadataService1 = new MetadataService(serviceConfigurator, metadata1); var metadataService2 = new MetadataService(serviceConfigurator, metadata2); var metadataService3 = new MetadataService(serviceConfigurator, metadata3); var metadataService4 = new MetadataService(serviceConfigurator, metadataWithoutProfile); //Act string profile1 = metadataService1.AdjustAudioProfile(); string profile2 = metadataService2.AdjustAudioProfile(); string profile3 = metadataService3.AdjustAudioProfile(); string profile4 = metadataService4.AdjustAudioProfile(); //Assert Assert.AreEqual(firstProfile, profile1); Assert.AreEqual(firstProfile, profile2); Assert.AreEqual(anotherProfile, profile3); Assert.AreEqual(firstProfile, profile4); }
private void StartNewEncode(string[] filePathes) { int count = 0; var errorVideos = new List <string>(); var allSw = new Stopwatch(); var decodeSw = new Stopwatch(); foreach (string filePath in filePathes) { allSw.Restart(); Trace.WriteLine(String.Format("\n-------------Start decode file: {0}-------------\n", filePath)); try { var mediaInfo = new MediaInfoWrapper(); var metadataInfo = new VideoMetadataInfo(mediaInfo); VideoMediaInfo metadata = metadataInfo.GetMetadata(filePath); var encoder = new Encoder(); WriteFileInfo("N O T H I N G", metadata); decodeSw.Restart(); encoder.EncodeVideo(metadata, filePath, _destinationPath); allSw.Stop(); decodeSw.Stop(); WriteFinishProcess(decodeSw.Elapsed, allSw.Elapsed, 0); count++; } catch (MediaFormatException ex) { string errorMessage = String.Format("Error File:\t\t{0}.\nError Param:\t\t{1}", filePath, ex.Message); Trace.WriteLine(String.Format("\n{0}", errorMessage)); errorVideos.Add(errorMessage); } catch (ExternalProcessException ex) { string errorMessage = String.Format("Error File:\t\t{0}.\nFfmpeg return:\t\t{1}\n{2}", filePath, ex.Result, ex.Arguments); Trace.WriteLine(errorMessage); errorVideos.Add(errorMessage); } finally { Trace.WriteLine(String.Format("\n-------------Finish decode file: {0}-------------\n", filePath)); } } WriteFinishInfo(0, count, errorVideos); }
public void GetMetadataTest() { //Arrange const string h264Profile = "Main"; const string h264Level = "3.1"; const int width = 100; const int height = 100; const string videoContainer = "MP4"; const string videoCodec = "AVC"; const string audioCodec = "MPEG Audio"; const int videoBps = 63997; const string videoKeyFrame = "M=1, N=30"; const double videoFps = 25.001; const int audioBps = 63997; string videoFormatProfile = String.Format("{0}@L{1}", h264Profile, h264Level); const long fileSize = 1293887332; const int duration = 13454643; const AudioChannel audioChannel = AudioChannel.Six; const string audioProfile = "Layer 3"; const string filePath = "myFile"; SetupAllMediaInfoParams(width, height, videoContainer, videoCodec, videoBps, videoKeyFrame, videoFps, audioCodec, audioBps, fileSize, duration, audioChannel, audioProfile, videoFormatProfile); _mockMediaInfo.Setup(m => m.Open(It.IsAny <string>())).Returns(1); //Act VideoMediaInfo metadata = _metadataInfo.GetMetadata(filePath); //Assert Assert.AreEqual(width, metadata.VideoWidth); Assert.AreEqual(height, metadata.VideoHeight); Assert.AreEqual(videoContainer, metadata.GeneralFormat); Assert.AreEqual(videoCodec, metadata.VideoFormat); Assert.AreEqual(audioCodec, metadata.AudioFormat); Assert.AreEqual(videoBps, metadata.VideoBitRate); Assert.AreEqual(videoKeyFrame, metadata.VideoFormatSettingsGOP); Assert.AreEqual(videoFps, metadata.VideoFrameRate); Assert.AreEqual(audioBps, metadata.AudioBitRate); Assert.AreEqual(h264Profile, metadata.VideoFormatProfile); Assert.AreEqual(fileSize, metadata.GeneralFileSize); Assert.AreEqual(duration, metadata.VideoDuration); Assert.AreEqual((int)audioChannel, metadata.AudioChannels); Assert.AreEqual(audioProfile, metadata.AudioFormatProfile); }
public void AdjustAudioCodecTest() { //Arrange const string myCodec1 = "myCodec1"; const string myCodec2 = "myCodec2"; const string anotherCodec = "anotherCodec"; var audioCodec = new CodecData(myCodec1, null); var serviceConfigurator = new MetadataServiceConfigurator(null, null, null, audioCodec, new CodecData(myCodec2, null)); var metadata1 = new VideoMediaInfo { AudioFormat = myCodec1 }; var metadata2 = new VideoMediaInfo { AudioFormat = myCodec2 }; var metadata3 = new VideoMediaInfo { AudioFormat = anotherCodec }; var metadataWithoutCodec = new VideoMediaInfo { AudioFormat = null }; var metadataService1 = new MetadataService(serviceConfigurator, metadata1); var metadataService2 = new MetadataService(serviceConfigurator, metadata2); var metadataService3 = new MetadataService(serviceConfigurator, metadata3); var metadataService4 = new MetadataService(serviceConfigurator, metadataWithoutCodec); //Act string codec1 = metadataService1.AdjustAudioCodec(); string codec2 = metadataService2.AdjustAudioCodec(); string codec3 = metadataService3.AdjustAudioCodec(); string codec4 = metadataService4.AdjustAudioCodec(); //Assert Assert.AreEqual(myCodec1, codec1); Assert.AreEqual(myCodec2, codec2); Assert.AreEqual(myCodec1, codec3); Assert.AreEqual(null, codec4); }
public void CheckCorrectContainerTest() { //Arrange MetadataServiceConfigurator serviceConfigurator = Factory.CreateMp4MetadataServiceConfigurator(); var metadata = new VideoMediaInfo { GeneralFormat = serviceConfigurator.Container }; var metadataService = new MetadataService(serviceConfigurator, metadata); //Act metadataService.AdjustContainer(); //Assert Assert.IsTrue(metadataService.CorrectContainer); }
public void AdjustWidthVideoSuccessTest() { //Arrange const int width = 35; var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); var metadata = new VideoMediaInfo { VideoWidth = width * metadataConfigurator.VideoSizeMul }; var metadataService = new MetadataService(metadataConfigurator, metadata); //Act int adjustedwidth = metadataService.AdjustVideoWidth(); //Assert Assert.AreEqual(metadata.VideoWidth, adjustedwidth); }
public void AdjustHeightVideoSuccessTest() { //Arrange const int height = 23; var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); var metadata = new VideoMediaInfo { VideoHeight = height * metadataConfigurator.VideoSizeMul }; var metadataService = new MetadataService(metadataConfigurator, metadata); //Act int adjustedHeight = metadataService.AdjustVideoHeight(); //Assert Assert.AreEqual(metadata.VideoHeight, adjustedHeight); }
private void WriteFileInfo(string ffmpegString, VideoMediaInfo metadata) { Trace.WriteLine(String.Format("Width: {0}", metadata.VideoWidth)); Trace.WriteLine(String.Format("Width: {0}", metadata.VideoHeight)); Trace.WriteLine(String.Format("File Size: {0} kByte", metadata.GeneralFileSize / 1024)); Trace.WriteLine(String.Format("Container: {0}", metadata.GeneralFormat)); Trace.WriteLine(String.Format("Video Codec: {0}", metadata.VideoFormat)); Trace.WriteLine(String.Format("Video Profile: {0}", metadata.VideoFormatProfile)); Trace.WriteLine(String.Format("Video Bitrate: {0} kBit/s", metadata.VideoBitRate / 1000)); Trace.WriteLine(String.Format("Audio Codec: {0}", metadata.AudioFormat)); Trace.WriteLine(String.Format("Audio Profile: {0}", metadata.AudioFormatProfile)); Trace.WriteLine(String.Format("Audio Channel(s): {0}", metadata.AudioChannels)); Trace.WriteLine(String.Format("Audio Bitrate: {0} kBit/s", metadata.AudioBitRate / 1000)); Trace.WriteLine(String.Format("Duration: {0}", TimeSpan.FromMilliseconds(metadata.VideoDuration))); Trace.WriteLine(String.Format("Video FPS: {0}", metadata.VideoFrameRate)); Trace.WriteLine(String.Format("Video Key Frame: {0}", metadata.VideoFormatSettingsGOP)); Trace.WriteLine(String.Format("Ffmpeg String: {0}", ffmpegString)); }
public void GetMp4StringFromMetadataWithMp2Test() { //Arrange const string sourceFilePath = "source file path"; const string destinationPath = "my path"; const string destinationFileName = "my file"; string destinationFilePath = Path.Combine(destinationPath, destinationFileName); MetadataServiceConfigurator serviceConfigurator = Factory.CreateMp4MetadataServiceConfigurator(); var metadata = new VideoMediaInfo { GeneralFormat = "MPEG-4", AudioBitRate = 152000, AudioChannels = (int)AudioChannel.Two, AudioFormat = "MPEG Audio", AudioFormatProfile = "Layer 2", VideoBitRate = 2500000, VideoFormat = "AVC", VideoFrameRate = 24, VideoFormatSettingsGOP = String.Format("M=1, N={0}", serviceConfigurator.MaxKeyFrame), VideoFormatProfile = "Baseline", VideoWidth = 4096, VideoHeight = 2304 }; var metadataService = new MetadataService(serviceConfigurator, metadata); var stringBuilder = new FfmpegService(metadataService, sourceFilePath, destinationPath, destinationFileName); string ffmpegStr = "-i \"{0}\" -f mp4 -vcodec copy -acodec {1} -b:a {2} -quality good -cpu-used 0 -threads {3} -y \"{4}.{5}\""; ffmpegStr = String.Format(ffmpegStr, sourceFilePath, metadataService.AudioCodecLib, metadata.AudioBitRate, Environment.ProcessorCount, destinationFilePath, serviceConfigurator.FfmpegContainer); //Act string str = stringBuilder.GetStringForEncoder(); //Assert Assert.AreEqual(ffmpegStr, str, true); }
public void AdjustVideoBpsForVideoSizeLessConfigureMaxSizeTest() { //Arrange var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); var metadata1920X1080X8000 = new VideoMediaInfo { VideoWidth = 1920, VideoHeight = 1080, VideoBitRate = metadataConfigurator.VideoBps1920X1080 }; var metadataService1 = new MetadataService(metadataConfigurator, metadata1920X1080X8000); //Act int adjBps1920X1080X8000 = metadataService1.AdjustVideoBps(); //Assert Assert.AreEqual(metadataConfigurator.VideoBps1920X1080, adjBps1920X1080X8000); }
public void AdjustHeightMoreConfigureMaxHeightTest() { //Arrange var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); metadataConfigurator.MaxHeight = 100 * metadataConfigurator.VideoSizeMul; var metadata = new VideoMediaInfo { VideoHeight = metadataConfigurator.MaxHeight + metadataConfigurator.VideoSizeMul }; var metadataService = new MetadataService(metadataConfigurator, metadata); //Act int adjustedHeight = metadataService.AdjustVideoHeight(); //Assert Assert.AreEqual(metadataConfigurator.MaxHeight, adjustedHeight); }
public void AdjustWidthMoreConfigureMaxWidthTest() { //Arrange var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); metadataConfigurator.MaxWidth = 100 * metadataConfigurator.VideoSizeMul; var metadata = new VideoMediaInfo { VideoWidth = metadataConfigurator.MaxWidth + metadataConfigurator.VideoSizeMul }; var metadataService = new MetadataService(metadataConfigurator, metadata); //Act int adjustedwidth = metadataService.AdjustVideoWidth(); //Assert Assert.AreEqual(metadataConfigurator.MaxWidth, adjustedwidth); }
public void GetWebMStringFromCorrectMetadataTest() { //Arrange const string sourceFilePath = "source file path"; const string destinationPath = "my path"; const string destinationFileName = "my file"; string destinationFilePath = Path.Combine(destinationPath, destinationFileName); MetadataServiceConfigurator serviceConfigurator = Factory.CreateWebMMetadataServiceConfigurator(); var metadata = new VideoMediaInfo { GeneralFormat = "WebM", AudioBitRate = 152000, AudioChannels = (int)AudioChannel.Two, AudioFormat = "Vorbis", AudioFormatProfile = null, VideoBitRate = 2500000, VideoFormat = "VP8", VideoFrameRate = 24, VideoFormatSettingsGOP = String.Format("M=1, N={0}", serviceConfigurator.MaxKeyFrame), VideoFormatProfile = null, VideoWidth = 4096, VideoHeight = 2304 }; var metadataService = new MetadataService(serviceConfigurator, metadata); var stringBuilder = new FfmpegService(metadataService, sourceFilePath, destinationPath, destinationFileName); string ffmpegStr = "-i \"{0}\" -f webm -vcodec copy -acodec copy -quality good -cpu-used 0 -threads {1} -y \"{2}.{3}\""; ffmpegStr = String.Format(ffmpegStr, sourceFilePath, Environment.ProcessorCount, destinationFilePath, serviceConfigurator.FfmpegContainer); //Act string str = stringBuilder.GetStringForEncoder(); //Assert Assert.AreEqual(ffmpegStr, str, true); }
public void AdjustAudioBpsForVideoSizeLessConfigureMaxSizeTest() { //Arrange var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); var metadata128Bps = new VideoMediaInfo { VideoWidth = 1920, VideoHeight = 1080, AudioChannels = (int)AudioChannel.One, AudioBitRate = metadataConfigurator.AudioBps720P1Channel }; var metadataService1 = new MetadataService(metadataConfigurator, metadata128Bps); //Act int adjBps = metadataService1.AdjustAudioBps(); //Assert Assert.AreEqual(metadataConfigurator.AudioBps720P1Channel, adjBps); }
public void AdjustAudioBpsFor854X480And640X360AndLessX6ChannelSuccessTest() { //Arrange var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); var metadata64Bps = new VideoMediaInfo { VideoWidth = 640, VideoHeight = 360, AudioChannels = (int)AudioChannel.Six, AudioBitRate = metadataConfigurator.AudioBps360P6Channel }; var metadataMore64Bps = new VideoMediaInfo { VideoWidth = 640, VideoHeight = 360, AudioChannels = (int)AudioChannel.Six, AudioBitRate = metadataConfigurator.AudioBps360P6Channel + 1 }; var metadataLess64Bps = new VideoMediaInfo { VideoWidth = 640, VideoHeight = 360, AudioChannels = (int)AudioChannel.Six, AudioBitRate = metadataConfigurator.AudioBps360P6Channel - 1 }; var metadataService1 = new MetadataService(metadataConfigurator, metadata64Bps); var metadataService2 = new MetadataService(metadataConfigurator, metadataMore64Bps); var metadataService3 = new MetadataService(metadataConfigurator, metadataLess64Bps); //Act int adjBps64Bps = metadataService1.AdjustAudioBps(); int adjBpsMore64Bps = metadataService2.AdjustAudioBps(); int adjBpsLess64Bps = metadataService3.AdjustAudioBps(); //Assert Assert.AreEqual(metadataConfigurator.AudioBps360P6Channel, adjBps64Bps); Assert.AreEqual(metadataConfigurator.AudioBps360P6Channel, adjBpsMore64Bps); Assert.AreEqual(metadataLess64Bps.AudioBitRate, adjBpsLess64Bps); }
public void AdjustAudioBpsFor1920X1080And1280X720X6ChannelSuccessTest() { //Arrange var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); var metadata512Bps = new VideoMediaInfo { VideoWidth = 1280, VideoHeight = 720, AudioChannels = (int)AudioChannel.Six, AudioBitRate = metadataConfigurator.AudioBps720P6Channel }; var metadataMore512Bps = new VideoMediaInfo { VideoWidth = 1280, VideoHeight = 720, AudioChannels = (int)AudioChannel.Six, AudioBitRate = metadataConfigurator.AudioBps720P6Channel + 1 }; var metadataLess512Bps = new VideoMediaInfo { VideoWidth = 1280, VideoHeight = 720, AudioChannels = (int)AudioChannel.Six, AudioBitRate = metadataConfigurator.AudioBps720P6Channel - 1 }; var metadataService1 = new MetadataService(metadataConfigurator, metadata512Bps); var metadataService2 = new MetadataService(metadataConfigurator, metadataMore512Bps); var metadataService3 = new MetadataService(metadataConfigurator, metadataLess512Bps); //Act int adjBps512Bps = metadataService1.AdjustAudioBps(); int adjBpsMore512Bps = metadataService2.AdjustAudioBps(); int adjBpsLess512Bps = metadataService3.AdjustAudioBps(); //Assert Assert.AreEqual(metadataConfigurator.AudioBps720P6Channel, adjBps512Bps); Assert.AreEqual(metadataConfigurator.AudioBps720P6Channel, adjBpsMore512Bps); Assert.AreEqual(metadataLess512Bps.AudioBitRate, adjBpsLess512Bps); }
public void AdjustHeightVideoFailTest() { //Arrange var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); var metadata1 = new VideoMediaInfo { VideoHeight = 15 }; var metadata2 = new VideoMediaInfo { VideoHeight = -1 }; var metadataService1 = new MetadataService(metadataConfigurator, metadata1); var metadataService2 = new MetadataService(metadataConfigurator, metadata2); //Act & Assert CustomAssert.IsThrown <MediaFormatException>(() => metadataService1.AdjustVideoHeight()); CustomAssert.IsThrown <MediaFormatException>(() => metadataService2.AdjustVideoHeight()); }
public void AdjustVideoBpsForLess640X360SuccessTest() { //Arrange var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); var metadata1000Bps = new VideoMediaInfo { VideoWidth = 40, VideoHeight = 60, VideoBitRate = metadataConfigurator.VideoBps640X360 }; var metadataMore1000Bps = new VideoMediaInfo { VideoWidth = 40, VideoHeight = 60, VideoBitRate = metadataConfigurator.VideoBps640X360 + 1 }; var metadataLess1000Bps = new VideoMediaInfo { VideoWidth = 40, VideoHeight = 60, VideoBitRate = metadataConfigurator.VideoBps640X360 - 1 }; var metadataService1 = new MetadataService(metadataConfigurator, metadata1000Bps); var metadataService2 = new MetadataService(metadataConfigurator, metadataMore1000Bps); var metadataService3 = new MetadataService(metadataConfigurator, metadataLess1000Bps); //Act int adjBps1000Bps = metadataService1.AdjustVideoBps(); int adjBpsMore1000Bps = metadataService2.AdjustVideoBps(); int adjBpsLess1000Bps = metadataService3.AdjustVideoBps(); //Assert Assert.AreEqual(metadataConfigurator.VideoBps640X360, adjBps1000Bps); Assert.AreEqual(metadataConfigurator.VideoBps640X360, adjBpsMore1000Bps); Assert.AreEqual(metadataLess1000Bps.VideoBitRate, adjBpsLess1000Bps); }
public void AdjustAudioBpsForVideoSizeMoreConfigureMaxSizeTest() { //Arrange var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); metadataConfigurator.MaxWidth = 854; metadataConfigurator.MaxHeight = 480; var metadata128Bps = new VideoMediaInfo { VideoWidth = 1920, VideoHeight = 1080, AudioChannels = (int) AudioChannel.One, AudioBitRate = metadataConfigurator.AudioBps720P1Channel }; var metadataService1 = new MetadataService(metadataConfigurator, metadata128Bps); //Act int adjBps = metadataService1.AdjustAudioBps(); //Assert Assert.AreEqual(metadataConfigurator.AudioBps360P1Channel, adjBps); }
public void EncodedVideoMetadataTest() { //Arrange const string sourceFilePath = "source file path"; const string destinationPath = "my path"; const string destinationFileName = "my file"; MetadataServiceConfigurator serviceConfigurator = Factory.CreateMp4MetadataServiceConfigurator(); var metadata = new VideoMediaInfo { GeneralFormat = "MPEG-PS", AudioBitRate = serviceConfigurator.AudioBps720P1Channel + 1, AudioChannels = (int) AudioChannel.One, AudioFormat = "AC-3", AudioFormatProfile = null, VideoBitRate = serviceConfigurator.VideoBps1920X1080 + 1, VideoFormat = "MPEG Video", VideoFrameRate = serviceConfigurator.MaxFps - 1, VideoFormatSettingsGOP = String.Format("M=1, N={0}", serviceConfigurator.MaxKeyFrame + 1), VideoFormatProfile = "High", VideoWidth = 4096, VideoHeight = 2304, }; var metadataService = new MetadataService(serviceConfigurator, metadata); var ffmpegService = new FfmpegService(metadataService, sourceFilePath, destinationPath, destinationFileName); //Act ffmpegService.GetStringForEncoder(); //Assert Assert.AreEqual(ffmpegService.EncodedVideoData.Container, serviceConfigurator.Container); Assert.AreEqual(ffmpegService.EncodedVideoData.Width, metadata.VideoWidth); Assert.AreEqual(ffmpegService.EncodedVideoData.Height, metadata.VideoHeight); Assert.AreEqual(ffmpegService.EncodedVideoData.VideoCodec, serviceConfigurator.VideoCodec.Codec); Assert.AreEqual(ffmpegService.EncodedVideoData.AudioCodec, serviceConfigurator.AudioCodec.Codec); }
public void AdjustAudioBpsFor1920X1080And1280X720X6ChannelSuccessTest() { //Arrange var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); var metadata512Bps = new VideoMediaInfo { VideoWidth = 1280, VideoHeight = 720, AudioChannels = (int) AudioChannel.Six, AudioBitRate = metadataConfigurator.AudioBps720P6Channel }; var metadataMore512Bps = new VideoMediaInfo { VideoWidth = 1280, VideoHeight = 720, AudioChannels = (int) AudioChannel.Six, AudioBitRate = metadataConfigurator.AudioBps720P6Channel + 1 }; var metadataLess512Bps = new VideoMediaInfo { VideoWidth = 1280, VideoHeight = 720, AudioChannels = (int) AudioChannel.Six, AudioBitRate = metadataConfigurator.AudioBps720P6Channel - 1 }; var metadataService1 = new MetadataService(metadataConfigurator, metadata512Bps); var metadataService2 = new MetadataService(metadataConfigurator, metadataMore512Bps); var metadataService3 = new MetadataService(metadataConfigurator, metadataLess512Bps); //Act int adjBps512Bps = metadataService1.AdjustAudioBps(); int adjBpsMore512Bps = metadataService2.AdjustAudioBps(); int adjBpsLess512Bps = metadataService3.AdjustAudioBps(); //Assert Assert.AreEqual(metadataConfigurator.AudioBps720P6Channel, adjBps512Bps); Assert.AreEqual(metadataConfigurator.AudioBps720P6Channel, adjBpsMore512Bps); Assert.AreEqual(metadataLess512Bps.AudioBitRate, adjBpsLess512Bps); }
private VideoMediaInfo GetVideoMetadata(int width, int height, string container, string videoCodec, int videoBps, string videoKeyFrame, double videoFps, string audioCodec, int audioBps, long fileSize, int duration, AudioChannel audioChannel, string audioProfile, string videoFormatProfile = null) { var metadata = new VideoMediaInfo { AudioBitRate = audioBps, AudioFormat = audioCodec, AudioChannels = (int) audioChannel, AudioFormatProfile = audioProfile, GeneralFormat = container, VideoDuration = duration, GeneralFileSize = fileSize, VideoHeight = height, VideoBitRate = videoBps, VideoFormat = videoCodec, VideoFrameRate = videoFps, VideoFormatSettingsGOP = videoKeyFrame, VideoFormatProfile = videoFormatProfile, VideoWidth = width }; return metadata; }
public void GetMjpegStringWithNumFrameMoreDurationTest() { //Arrange const string sourceFilePath = "source file path"; const string destinationPath = "my path"; const string destinationFileName = "my file"; string destinationFilePath = Path.Combine(destinationPath, destinationFileName); MetadataServiceConfigurator serviceConfigurator = Factory.CreateMp4MetadataServiceConfigurator(); var metadata = new VideoMediaInfo { VideoDuration = (int) serviceConfigurator.ScreenshotTime.TotalMilliseconds - 1, VideoWidth = 4096, VideoHeight = 2304 }; var metadataService = new MetadataService(serviceConfigurator, metadata); var stringBuilder = new FfmpegService(metadataService, sourceFilePath, destinationPath, destinationFileName); string ffmpegStr = "-i \"{0}\" -f image2 -ss {1} -frames:v 1 -y \"{2}.jpg\""; ffmpegStr = String.Format(ffmpegStr, sourceFilePath, 0, destinationFilePath); //Act string str = stringBuilder.GetStringForScreenshot(); //Assert Assert.AreEqual(ffmpegStr, str); }
public void AdjustVideoBpsFor854X480SuccessTest() { //Arrange var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); var metadata854X480X2500 = new VideoMediaInfo { VideoWidth = 854, VideoHeight = 480, VideoBitRate = metadataConfigurator.VideoBps854X480 }; var metadata854X480More2500 = new VideoMediaInfo { VideoWidth = 854, VideoHeight = 480, VideoBitRate = metadataConfigurator.VideoBps854X480 + 1 }; var metadata854X480Less2500 = new VideoMediaInfo { VideoWidth = 854, VideoHeight = 480, VideoBitRate = metadataConfigurator.VideoBps854X480 - 1 }; var metadataService1 = new MetadataService(metadataConfigurator, metadata854X480X2500); var metadataService2 = new MetadataService(metadataConfigurator, metadata854X480More2500); var metadataService3 = new MetadataService(metadataConfigurator, metadata854X480Less2500); //Act int adjBps854X480X2500 = metadataService1.AdjustVideoBps(); int adjBps854X480More2500 = metadataService2.AdjustVideoBps(); int adjBps854X480Less2500 = metadataService3.AdjustVideoBps(); //Assert Assert.AreEqual(metadataConfigurator.VideoBps854X480, adjBps854X480X2500); Assert.AreEqual(metadataConfigurator.VideoBps854X480, adjBps854X480More2500); Assert.AreEqual(metadata854X480Less2500.VideoBitRate, adjBps854X480Less2500); }
public void AdjustWidthMoreConfigureMaxWidthTest() { //Arrange var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); metadataConfigurator.MaxWidth = 100*metadataConfigurator.VideoSizeMul; var metadata = new VideoMediaInfo { VideoWidth = metadataConfigurator.MaxWidth + metadataConfigurator.VideoSizeMul }; var metadataService = new MetadataService(metadataConfigurator, metadata); //Act int adjustedwidth = metadataService.AdjustVideoWidth(); //Assert Assert.AreEqual(metadataConfigurator.MaxWidth, adjustedwidth); }
public void AdjustScreenshotTimeTest() { //Arrange var serviceConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); var metadata1 = new VideoMediaInfo { VideoDuration = (int) serviceConfigurator.ScreenshotTime.TotalMilliseconds - 1 }; var metadata2 = new VideoMediaInfo { VideoDuration = (int) serviceConfigurator.ScreenshotTime.TotalMilliseconds + 1 }; var metadataService1 = new MetadataService(serviceConfigurator, metadata1); var metadataService2 = new MetadataService(serviceConfigurator, metadata2); //Act int time1 = metadataService1.AdjustScreenshotTime(); int time2 = metadataService2.AdjustScreenshotTime(); //Assert Assert.AreEqual(0, time1); Assert.AreEqual(serviceConfigurator.ScreenshotTime.Seconds, time2); }
public void AdjustWidthVideoSuccessTest() { //Arrange const int width = 35; var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); var metadata = new VideoMediaInfo { VideoWidth = width*metadataConfigurator.VideoSizeMul }; var metadataService = new MetadataService(metadataConfigurator, metadata); //Act int adjustedwidth = metadataService.AdjustVideoWidth(); //Assert Assert.AreEqual(metadata.VideoWidth, adjustedwidth); }
public void AdjustContainerTest() { //Arrange const string myContainer = "myContainer"; const string anotherContainer = "anotherContainer"; var serviceConfigurator = new MetadataServiceConfigurator(myContainer, null, null, null, null); var metadata1 = new VideoMediaInfo { GeneralFormat = myContainer }; var metadata2 = new VideoMediaInfo { GeneralFormat = anotherContainer }; var metadataWithoutContainer = new VideoMediaInfo { GeneralFormat = null }; var metadataService1 = new MetadataService(serviceConfigurator, metadata1); var metadataService2 = new MetadataService(serviceConfigurator, metadata2); var metadataService3 = new MetadataService(serviceConfigurator, metadataWithoutContainer); //Act string container1 = metadataService1.AdjustContainer(); string container2 = metadataService2.AdjustContainer(); //Act & Assert CustomAssert.IsThrown<MediaFormatException>(() => metadataService3.AdjustContainer()); //Assert Assert.AreEqual(myContainer, container1); Assert.AreEqual(myContainer, container2); }
public void AdjustHeightMoreConfigureMaxHeightTest() { //Arrange var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); metadataConfigurator.MaxHeight = 100*metadataConfigurator.VideoSizeMul; var metadata = new VideoMediaInfo { VideoHeight = metadataConfigurator.MaxHeight + metadataConfigurator.VideoSizeMul }; var metadataService = new MetadataService(metadataConfigurator, metadata); //Act int adjustedHeight = metadataService.AdjustVideoHeight(); //Assert Assert.AreEqual(metadataConfigurator.MaxHeight, adjustedHeight); }
public void CheckCorrectAudioValueListTest() { //Arrange MetadataServiceConfigurator serviceConfigurator = Factory.CreateMp4MetadataServiceConfigurator(); var metadata = new VideoMediaInfo { AudioBitRate = serviceConfigurator.AudioBps720P1Channel, AudioChannels = (int) AudioChannel.One, AudioFormat = "AAC", AudioFormatProfile = "LC", VideoWidth = 4096, VideoHeight = 2304 }; var metadataService = new MetadataService(serviceConfigurator, metadata); //Act metadataService.AdjustAudioBps(); metadataService.AdjustAudioCodec(); metadataService.AdjustAudioProfile(); //Assert Assert.IsTrue(metadataService.CorrectAudioValueList.All((b) => b.Value)); }
public void AdjustAudioBpsFor854X480And640X360AndLessX6ChannelSuccessTest() { //Arrange var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); var metadata64Bps = new VideoMediaInfo { VideoWidth = 640, VideoHeight = 360, AudioChannels = (int) AudioChannel.Six, AudioBitRate = metadataConfigurator.AudioBps360P6Channel }; var metadataMore64Bps = new VideoMediaInfo { VideoWidth = 640, VideoHeight = 360, AudioChannels = (int) AudioChannel.Six, AudioBitRate = metadataConfigurator.AudioBps360P6Channel + 1 }; var metadataLess64Bps = new VideoMediaInfo { VideoWidth = 640, VideoHeight = 360, AudioChannels = (int) AudioChannel.Six, AudioBitRate = metadataConfigurator.AudioBps360P6Channel - 1 }; var metadataService1 = new MetadataService(metadataConfigurator, metadata64Bps); var metadataService2 = new MetadataService(metadataConfigurator, metadataMore64Bps); var metadataService3 = new MetadataService(metadataConfigurator, metadataLess64Bps); //Act int adjBps64Bps = metadataService1.AdjustAudioBps(); int adjBpsMore64Bps = metadataService2.AdjustAudioBps(); int adjBpsLess64Bps = metadataService3.AdjustAudioBps(); //Assert Assert.AreEqual(metadataConfigurator.AudioBps360P6Channel, adjBps64Bps); Assert.AreEqual(metadataConfigurator.AudioBps360P6Channel, adjBpsMore64Bps); Assert.AreEqual(metadataLess64Bps.AudioBitRate, adjBpsLess64Bps); }
private void WriteFileInfo(string ffmpegString, VideoMediaInfo metadata) { Trace.WriteLine(String.Format("Width: {0}", metadata.VideoWidth)); Trace.WriteLine(String.Format("Width: {0}", metadata.VideoHeight)); Trace.WriteLine(String.Format("File Size: {0} kByte", metadata.GeneralFileSize/1024)); Trace.WriteLine(String.Format("Container: {0}", metadata.GeneralFormat)); Trace.WriteLine(String.Format("Video Codec: {0}", metadata.VideoFormat)); Trace.WriteLine(String.Format("Video Profile: {0}", metadata.VideoFormatProfile)); Trace.WriteLine(String.Format("Video Bitrate: {0} kBit/s", metadata.VideoBitRate/1000)); Trace.WriteLine(String.Format("Audio Codec: {0}", metadata.AudioFormat)); Trace.WriteLine(String.Format("Audio Profile: {0}", metadata.AudioFormatProfile)); Trace.WriteLine(String.Format("Audio Channel(s): {0}", metadata.AudioChannels)); Trace.WriteLine(String.Format("Audio Bitrate: {0} kBit/s", metadata.AudioBitRate/1000)); Trace.WriteLine(String.Format("Duration: {0}", TimeSpan.FromMilliseconds(metadata.VideoDuration))); Trace.WriteLine(String.Format("Video FPS: {0}", metadata.VideoFrameRate)); Trace.WriteLine(String.Format("Video Key Frame: {0}", metadata.VideoFormatSettingsGOP)); Trace.WriteLine(String.Format("Ffmpeg String: {0}", ffmpegString)); }
public void CheckCorrectVideoValueListTest() { //Arrange MetadataServiceConfigurator serviceConfigurator = Factory.CreateMp4MetadataServiceConfigurator(); var metadata = new VideoMediaInfo { AudioBitRate = serviceConfigurator.AudioBps720P1Channel, AudioChannels = (int) AudioChannel.One, AudioFormat = serviceConfigurator.AudioCodec.Codec, AudioFormatProfile = serviceConfigurator.AudioCodec.DefaultProfile, VideoBitRate = serviceConfigurator.VideoBps1920X1080, VideoFormat = serviceConfigurator.VideoCodec.Codec, VideoFormatProfile = serviceConfigurator.VideoCodec.DefaultProfile, VideoFrameRate = serviceConfigurator.MaxFps - 1, VideoFormatSettingsGOP = String.Format("M=1, N={0}", serviceConfigurator.KeyFrame), VideoWidth = 4096, VideoHeight = 2304 }; var metadataService = new MetadataService(serviceConfigurator, metadata); //Act metadataService.AdjustVideoWidth(); metadataService.AdjustVideoHeight(); metadataService.AdjustKeyFrame(); metadataService.AdjustVideoBps(); metadataService.AdjustVideoCodec(); metadataService.AdjustVideoFps(); metadataService.AdjustVideoProfile(); //Assert Assert.IsTrue(metadataService.CorrectVideoValueList.All((b) => b.Value)); }
public void AdjustVideoCodecTest() { //Arrange const string anotherCodecName = "anotherCodec"; const string myCodecName = "myCodec"; var myCodec = new CodecData(myCodecName, null); var serviceConfigurator = new MetadataServiceConfigurator(null, null, myCodec, null, null); var metadata1 = new VideoMediaInfo { VideoFormat = myCodecName }; var metadata2 = new VideoMediaInfo { VideoFormat = anotherCodecName }; var metadataWithoutCodec = new VideoMediaInfo { VideoFormat = null }; var metadataService1 = new MetadataService(serviceConfigurator, metadata1); var metadataService2 = new MetadataService(serviceConfigurator, metadata2); var metadataService3 = new MetadataService(serviceConfigurator, metadataWithoutCodec); //Act string codec1 = metadataService1.AdjustVideoCodec(); string codec2 = metadataService2.AdjustVideoCodec(); //Act & Assert CustomAssert.IsThrown<MediaFormatException>(() => metadataService3.AdjustContainer()); //Assert Assert.AreEqual(myCodecName, codec1); Assert.AreEqual(myCodecName, codec2); }
public void AdjustHeightVideoFailTest() { //Arrange var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); var metadata1 = new VideoMediaInfo { VideoHeight = 15 }; var metadata2 = new VideoMediaInfo { VideoHeight = -1 }; var metadataService1 = new MetadataService(metadataConfigurator, metadata1); var metadataService2 = new MetadataService(metadataConfigurator, metadata2); //Act & Assert CustomAssert.IsThrown<MediaFormatException>(() => metadataService1.AdjustVideoHeight()); CustomAssert.IsThrown<MediaFormatException>(() => metadataService2.AdjustVideoHeight()); }
public void AdjustHeighhMultiply16Test() { //Arrange var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); var metadata1 = new VideoMediaInfo { VideoHeight = 100 }; var metadata2 = new VideoMediaInfo { VideoHeight = 89 }; var metadataService1 = new MetadataService(metadataConfigurator, metadata1); var metadataService2 = new MetadataService(metadataConfigurator, metadata2); //Act int adjustedwidth1 = metadataService1.AdjustVideoHeight(); int adjustedwidth2 = metadataService2.AdjustVideoHeight(); //Assert Assert.AreEqual(96, adjustedwidth1); Assert.AreEqual(80, adjustedwidth2); }
public void GetMp4StringWithoutAudioTest() { //Arrange const string sourceFilePath = "source file path"; const string destinationPath = "my path"; const string destinationFileName = "my file"; string destinationFilePath = Path.Combine(destinationPath, destinationFileName); MetadataServiceConfigurator serviceConfigurator = Factory.CreateMp4MetadataServiceConfigurator(); var metadata = new VideoMediaInfo { GeneralFormat = "MPEG-4", AudioBitRate = 0, AudioChannels = (int) AudioChannel.None, AudioFormat = null, AudioFormatProfile = null, VideoBitRate = 2500000, VideoFormat = "AVC", VideoFrameRate = 24, VideoFormatSettingsGOP = String.Format("M=1, N={0}", serviceConfigurator.MaxKeyFrame), VideoFormatProfile = "Baseline", VideoWidth = 4096, VideoHeight = 2304 }; var metadataService = new MetadataService(serviceConfigurator, metadata); var stringBuilder = new FfmpegService(metadataService, sourceFilePath, destinationPath, destinationFileName); string ffmpegStr = "-i \"{0}\" -f mp4 -vcodec copy -quality good -cpu-used 0 -threads {1} -y \"{2}.{3}\""; ffmpegStr = String.Format(ffmpegStr, sourceFilePath, Environment.ProcessorCount, destinationFilePath, serviceConfigurator.FfmpegContainer); //Act string str = stringBuilder.GetStringForEncoder(); //Assert Assert.AreEqual(ffmpegStr, str, true); }
public void AdjustVideoFpsSuccessTest() { //Arrange var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); var metadata1 = new VideoMediaInfo { VideoFrameRate = 29.970 }; var metadata2 = new VideoMediaInfo { VideoFrameRate = metadataConfigurator.MinFps - 1 }; var metadata3 = new VideoMediaInfo { VideoFrameRate = metadataConfigurator.MaxFps + 1 }; var metadataService1 = new MetadataService(metadataConfigurator, metadata1); var metadataService2 = new MetadataService(metadataConfigurator, metadata2); var metadataService3 = new MetadataService(metadataConfigurator, metadata3); //Act double adjustedFps1 = metadataService1.AdjustVideoFps(); //Act & Assert CustomAssert.IsThrown<MediaFormatException>(() => metadataService2.AdjustVideoFps()); CustomAssert.IsThrown<MediaFormatException>(() => metadataService3.AdjustVideoFps()); //Assert Assert.AreEqual(metadata1.VideoFrameRate, adjustedFps1); }
public void AdjustHeightVideoSuccessTest() { //Arrange const int height = 23; var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); var metadata = new VideoMediaInfo { VideoHeight = height*metadataConfigurator.VideoSizeMul }; var metadataService = new MetadataService(metadataConfigurator, metadata); //Act int adjustedHeight = metadataService.AdjustVideoHeight(); //Assert Assert.AreEqual(metadata.VideoHeight, adjustedHeight); }
public void AdjustVideoBpsFor1280X720SuccessTest() { //Arrange var metadataConfigurator = new MetadataServiceConfigurator(null, null, null, null, null); var metadata1280X720X5000 = new VideoMediaInfo { VideoWidth = 1280, VideoHeight = 720, VideoBitRate = metadataConfigurator.VideoBps1280X720 }; var metadata1280X720More5000 = new VideoMediaInfo { VideoWidth = 1280, VideoHeight = 720, VideoBitRate = metadataConfigurator.VideoBps1280X720 + 1 }; var metadata1280X720Less5000 = new VideoMediaInfo { VideoWidth = 1280, VideoHeight = 720, VideoBitRate = metadataConfigurator.VideoBps1280X720 - 1 }; var metadataService1 = new MetadataService(metadataConfigurator, metadata1280X720X5000); var metadataService2 = new MetadataService(metadataConfigurator, metadata1280X720More5000); var metadataService3 = new MetadataService(metadataConfigurator, metadata1280X720Less5000); //Act int adjBps1280X720X5000 = metadataService1.AdjustVideoBps(); int adjBps1280X720More5000 = metadataService2.AdjustVideoBps(); int adjBps1280X720Less5000 = metadataService3.AdjustVideoBps(); //Assert Assert.AreEqual(metadataConfigurator.VideoBps1280X720, adjBps1280X720X5000); Assert.AreEqual(metadataConfigurator.VideoBps1280X720, adjBps1280X720More5000); Assert.AreEqual(metadata1280X720Less5000.VideoBitRate, adjBps1280X720Less5000); }