Пример #1
0
        public void ShouldDownLoadStreamInfo()
        {
            var manager = new StreamManager(_htmlUri, new StreamDownloader());

            manager.DownloadAndParseData();
            Assert.AreEqual(7, manager.Streams.Count);
        }
Пример #2
0
        public void ShouldDetectCorrectDataUrl()
        {
            var manager = new StreamManager(_htmlUri, new StreamDownloader());

            manager.DownloadAndParseData();
            Assert.AreEqual(_dataUrl, manager.DataUrl);
        }
Пример #3
0
        public void ShouldHandleRelativeStreamUrls()
        {
            var downloader = A.Fake <IStreamDownloader>();

            A.CallTo(() => downloader.Download(_dataUrl)).Returns(_dataRelativePath);
            A.CallTo(() => downloader.Download(_streamMasterDataUrlRelative)).Returns(_masterDataRelativePath);
            var manager = new StreamManager(_htmlUri, downloader);

            manager.DownloadAndParseData();

            Assert.AreEqual(_stream6DataUrl, manager.Streams.Last().Url);
        }
Пример #4
0
 public void ShouldParseCorrectNumberOfStreams()
 {
     _underTest.DownloadAndParseData();
     Assert.AreEqual(7, _underTest.Streams.Count);
 }
Пример #5
0
        static void Main(string[] args)
        {
            string output    = @"C:\users\Kefir\Desktop\test.mp4";
            string argFormat = @" -i ""{0}"" -acodec copy -vcodec copy -absf aac_adtstoasc ""{1}""";

            string url = null;

            // If an argument was specified on the command line, use it.
            // Otherwise, prompt for a URL.
            if (args.Length > 1)
            {
                url = args[1];
            }
            else
            {
                System.Console.Write("Url: ");
                url = System.Console.ReadLine();
            }
            if (string.IsNullOrEmpty(url))
            {
                System.Console.Write("No URL specified. RecTime cannot continue.");
                Environment.Exit(1);
            }
            StreamManager manager = new StreamManager(url, new StreamDownloader());

            System.Console.WriteLine("Downloading Data & stream info...");
            manager.DownloadAndParseData();

            var stream = manager.Streams.MaxBy(s => s.Bandwidth);

            System.Console.WriteLine("Selected stream: " + stream.Bandwidth + "kbit/s " + stream.Resolution);

            var streamUrl = stream.Url;

            Process p = new Process();

            p.StartInfo.UseShellExecute        = false;
            p.StartInfo.RedirectStandardOutput = true;
            p.StartInfo.RedirectStandardError  = true;

            OperatingSystem os = Environment.OSVersion;

            switch (os.Platform)
            {
            case PlatformID.MacOSX:
            case PlatformID.Unix:
                p.StartInfo.FileName = "ffmpeg";
                break;

            default:
                p.StartInfo.FileName = "ffmpeg.exe";
                break;
            }

            p.StartInfo.Arguments = string.Format(argFormat, streamUrl, output);
            p.OutputDataReceived += P_OutputDataReceived;
            p.ErrorDataReceived  += P_ErrorDataReceived;

            p.Start();
            p.BeginErrorReadLine();
            p.BeginOutputReadLine();
            p.WaitForExit();
            System.Console.ReadKey();
        }