public void StartConversion(string destinationFolder)
        {
            if (State == ConversionStateEnum.InProgress)
            {
                return;
            }

            _startTicks = DateTime.Now.Ticks;
            State       = ConversionStateEnum.InProgress;

            _destinationFolder = destinationFolder;
            _timeLeftCalc      = new TimeLeftCalculator(SourceInfo.FrameCount, 400);

            var dest320x180 = Path.Combine(destinationFolder, "320x180");

            if (vaiFazer320 && !Directory.Exists(dest320x180))
            {
                Directory.CreateDirectory(dest320x180); // deixa deisparar aqui se não for possível criar
            }
            var dest480x270 = Path.Combine(destinationFolder, "480x270");

            if (vaiFazer480 && !Directory.Exists(dest480x270))
            {
                Directory.CreateDirectory(dest480x270);
            }

            var dest640x360 = Path.Combine(destinationFolder, "640x360");

            if (vaiFazer640 && !Directory.Exists(dest640x360))
            {
                Directory.CreateDirectory(dest640x360);
            }

            var dest1280x720 = Path.Combine(destinationFolder, "1280x720");

            if (vaiFazer1280 && !Directory.Exists(dest1280x720))
            {
                Directory.CreateDirectory(dest1280x720);
            }


            fi = new FFmpegProcess(
                new ProcessStartOptions {
                Priority = ProcessPriorityClass.BelowNormal, DisplayMode = FFmpegDisplayMode.None
            }
                );

            fi.Completed     += Fi_Completed;
            fi.StatusUpdated += Fi_StatusUpdated;

            var cmd = $"-i \"{_source}\" " + // arquivo de entrada
                      (!vaiFazer320 ? string.Empty : $" -c:a aac -strict experimental -ac 2 -b:a 64k -ar 44100 -c:v libx264 -pix_fmt yuv420p -profile:v baseline -level 1.3 -maxrate 192K -bufsize 1M -crf 18 -r 10 -g 30 -f hls -hls_time 9 -hls_list_size 0 -s 320x180 -hls_segment_filename \"{dest320x180}\\%03d.ts\" \"{dest320x180}\\{SEGMENT_MANIFEST_FILE_NAME}\"") +
                      (!vaiFazer480 ? string.Empty : $" -c:a aac -strict experimental -ac 2 -b:a 64k -ar 44100 -c:v libx264 -pix_fmt yuv420p -profile:v baseline -level 2.1 -maxrate 500K -bufsize 2M -crf 18 -r 10 -g 30  -f hls -hls_time 9 -hls_list_size 0 -s 480x270 -hls_segment_filename \"{dest480x270}\\%03d.ts\" \"{dest480x270}\\{SEGMENT_MANIFEST_FILE_NAME}\"") +
                      (!vaiFazer640 ? string.Empty : $" -c:a aac -strict experimental -ac 2 -b:a 96k -ar 44100 -c:v libx264 -pix_fmt yuv420p -profile:v baseline -level 3.1 -maxrate 1M -bufsize 3M -crf 18 -r 24 -g 72 -f hls -hls_time 9 -hls_list_size 0 -s 640x360 -hls_segment_filename \"{dest640x360}\\%03d.ts\" \"{dest640x360}\\{SEGMENT_MANIFEST_FILE_NAME}\"") +
                      (!vaiFazer1280 ? string.Empty : $" -c:a aac -strict experimental -ac 2 -b:a 96k -ar 44100 -c:v libx264 -pix_fmt yuv420p -profile:v main -level 3.2 -maxrate 2M -bufsize 6M -crf 18 -r 24 -g 72 -f hls -hls_time 9 -hls_list_size 0 -s 1280x720  -hls_segment_filename \"{dest1280x720}\\%03d.ts\" \"{dest1280x720}\\{SEGMENT_MANIFEST_FILE_NAME}\"");

            fi.RunFFmpeg(cmd);
        }
 public ConversionCompletedEventArgs(ConversionStateEnum state)
 {
     Status = state;
 }