コード例 #1
0
 public void Dispose()
 {
     if (!_converter.Stop())
     {
         _converter.Abort();
     }
 }
コード例 #2
0
        private int AttemptConversion()
        {
            int status = WORKING;

            FFMpegConverter converter = new FFMpegConverter();

            try
            {
                converter.ConvertMedia(this.orig_path, this.dest_path, TARGET_ENCODE);
                status = SUCCESS;
            }
            catch (FFMpegException e)
            {
                System.Diagnostics.Debug.WriteLine("Media Converter Failed: " + e.Message);
                status = FAILURE;
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("VDXMediaConverter Error: " + e.Message);
                System.Diagnostics.Debug.WriteLine(this.orig_path + " : " + this.dest_path);
                status = FAILURE;
            }
            converter.Abort();
            return(status);
        }
コード例 #3
0
        private void AbortConverter()
        {
            if (!_converter.Stop())
            {
                _converter.Abort();
            }

            _converter.Dispose();
        }
コード例 #4
0
        static async Task MainAsync(string[] args)
        {
            string dir    = "envivio";
            string mpdUrl = "http://10.5.5.7/q/p/userapi/streams/32/mpd";
            //"http://10.5.7.207/userapi/streams/30/mpd";
            //"http://10.5.7.207/userapi/streams/11/mpd?start_time=1458816642&stop_time=1458819642";
            //"http://dash.edgesuite.net/envivio/EnvivioDash3/manifest.mpd";
            //"http://dash.edgesuite.net/dash264/TestCases/1a/netflix/exMPD_BIP_TC1.mpd";
            var stopwatch = Stopwatch.StartNew();

            var downloader          = new MpdDownloader(new Uri(mpdUrl), dir);
            var trackRepresentation = downloader.GetTracksFor(TrackContentType.Video).First().TrackRepresentations.OrderByDescending(r => r.Bandwidth).First();
            var prepareTime         = stopwatch.Elapsed;

            var chunks =
                //Directory.GetFiles(@"C:\Users\Alexander\Work\Github\qoollo\SharpDashTools\DashTools.Samples\bin\Debug\envivio", "*.mp4")
                //.Select(f => Path.GetFileName(f) == "make_chunk_path_longer_32.mp4"
                //    ? new Mp4InitFile(Path.Combine("envivio", Path.GetFileName(f)))
                //    : new Mp4File(Path.Combine("envivio", Path.GetFileName(f))))
                //    .ToArray();
                await downloader.Download(trackRepresentation, TimeSpan.FromMinutes(60), TimeSpan.FromMinutes(60 + 60 * 6 / 6));

            var downloadTime = stopwatch.Elapsed - prepareTime;

            var ffmpeg = new FFMpegConverter();

            ffmpeg.LogReceived += (s, e) => Console.WriteLine(e.Data);
            var combined = downloader.CombineChunksFast(chunks, s => ffmpeg.Invoke(s));
            //downloader.CombineChunks(chunks, s => ffmpeg.Invoke(s));
            var combineTime = stopwatch.Elapsed - prepareTime - downloadTime;

            if (!ffmpeg.Stop())
            {
                ffmpeg.Abort();
            }

            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("================================================================");
            Console.WriteLine("Prepared in {0} s", prepareTime.TotalSeconds);
            Console.WriteLine("Downloaded {0} chunks in {1} s", chunks.Count(), downloadTime.TotalSeconds);
            Console.WriteLine("Combined in {0} s", combineTime.TotalSeconds);
            Console.WriteLine("Total: {0} s", (prepareTime + downloadTime + combineTime).TotalSeconds);
            Console.ReadLine();

            return;

            string mpdFilePath = //@"C:\Users\Alexander\AppData\Local\Temp\note_5_video_5_source_2-index_00000\manifest.mpd";
                                 await DownloadMpdStreams(mpdUrl, dir);

            await ConcatStreams(mpdFilePath, Path.Combine(Path.GetDirectoryName(mpdFilePath), "output.mp4"));
        }
コード例 #5
0
ファイル: VideoDecoder.cs プロジェクト: kiersten11/SwarmSight
        public void Dispose()
        {
            if (_readingTask != null)
            {
                try
                {
                    _readingTask.Abort();
                }
                catch
                {
                }
                _readingTask = null;
            }

            if (_filereader != null)
            {
                try
                {
                    _filereader.Abort();
                }
                catch
                {
                }
                _filereader = null;
            }

            if (FrameDecoder != null)
            {
                FrameDecoder.ClearBuffer();

                try
                {
                    FrameDecoder.Dispose();
                }
                catch
                {
                }
                FrameDecoder = null;
            }
        }
コード例 #6
0
ファイル: Form1.cs プロジェクト: lkd70/DLiveDL
 private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
 {
     ffmpeg.Abort();
 }
コード例 #7
0
ファイル: MainWindow.xaml.cs プロジェクト: Briangta/MkvToMp4
 private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
 {
     conv.Abort();
     conv.Stop();
 }