Пример #1
0
            public static string GetSpectrogramFolder(string videoFileName, int trackNumber = 0)
            {
                var dir = Configuration.SpectrogramsDirectory.TrimEnd(Path.DirectorySeparatorChar);

                if (!Directory.Exists(dir))
                {
                    Directory.CreateDirectory(dir);
                }

                if (videoFileName != null && (videoFileName.StartsWith("http://", StringComparison.OrdinalIgnoreCase) ||
                                              videoFileName.StartsWith("https://", StringComparison.OrdinalIgnoreCase)))
                {
                    return(Path.Combine(dir, $"{MovieHasher.GenerateHashFromString(videoFileName)}.wav"));
                }

                string spectrogramFolder;

                if (trackNumber > 0)
                {
                    spectrogramFolder = MovieHasher.GenerateHash(videoFileName) + "-" + trackNumber;
                }
                else
                {
                    spectrogramFolder = MovieHasher.GenerateHash(videoFileName);
                }

                return(Path.Combine(dir, spectrogramFolder));
            }
Пример #2
0
        public static string GenerateHash(string videoFileName)
        {
            if (videoFileName != null && (videoFileName.StartsWith("http://", StringComparison.OrdinalIgnoreCase) ||
                                          videoFileName.StartsWith("https://", StringComparison.OrdinalIgnoreCase)))
            {
                return(MovieHasher.GenerateHashFromString(videoFileName));
            }

            return(ToHexadecimal(ComputeMovieHash(videoFileName)));
        }
Пример #3
0
        public static string GetPeakWaveFileName(string videoFileName, int trackNumber = 0)
        {
            var dir = Configuration.WaveformsDirectory.TrimEnd(Path.DirectorySeparatorChar);

            if (videoFileName != null && (videoFileName.StartsWith("http://", StringComparison.OrdinalIgnoreCase) ||
                                          videoFileName.StartsWith("https://", StringComparison.OrdinalIgnoreCase)))
            {
                return(Path.Combine(dir, $"{MovieHasher.GenerateHashFromString(videoFileName)}.wav"));
            }

            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }

            var hash = MovieHasher.GenerateHash(videoFileName);

            string wavePeakName;

            if (trackNumber > 0)
            {
                wavePeakName = $"{hash}-{trackNumber}.wav";
            }
            else
            {
                wavePeakName = $"{hash}.wav";
                if (!File.Exists(Path.Combine(dir, wavePeakName)))
                {
                    var fileNames = Directory.GetFiles(dir, hash + "-*.wav");
                    if (fileNames.Length > 0)
                    {
                        return(fileNames.OrderBy(p => p).First());
                    }
                }
            }

            return(Path.Combine(dir, wavePeakName));
        }