/// <summary>
        /// Конвертирует видео-файл
        /// </summary>
        /// <param name="outputPath">Путь к сконвертированному файлу</param>
        /// <param name="video">Параметры конвертации</param>
        public void ConvertVideo(string source, string outputPath, VideoConvertSettings video)
        {
            var videoStream = GetVideoStream(source);

            if (videoStream == null)
            {
                throw new Exception(Resource.VideoStreamNotFound);
            }

            string codecs;

            //на будущие форматы
            switch (video.Format)
            {
            case VideoFormat.mp4:
                codecs = "-f mp4";
                break;

            default:
                codecs = "-f mp4";
                break;
            }

            if (video.FrameHeight > videoStream.Height)
            {
                video.FrameHeight = videoStream.Height;
            }

            int width = videoStream.Width * video.FrameHeight / videoStream.Height;

            if (width % 2 != 0)
            {
                width++;
            }

            string arguments = string.Format("-i \"{0}\" -y -r {4} -vf \"scale={5}:{1}\" {2} \"{3}\"",
                                             source, video.FrameHeight, codecs, outputPath, video.FrameRate, width);

            var output = Run("ffmpeg", arguments);

            if (!File.Exists(outputPath))
            {
                throw new Exception(output);
            }
        }
        /// <summary>
        /// Обработка видеофайла
        /// </summary>
        /// <param name="source">Исходный файл</param>
        /// <param name="destination">Путь назначения</param>
        /// <param name="quality">Качество видео (используем пока только 240p) </param>
        /// <param name="videoFrameRate">Частота кадров видео (используем пока только 24)</param>
        /// <param name="format">Формат видео (используем пока только mp4)</param>
        public void ProcessVideo(string source,
                                 string destination,
                                 VideoQuality quality,
                                 int videoFrameRate,
                                 VideoFormat format)
        {
            string extension           = string.Format(".{0}", Enum.GetName(typeof(VideoFormat), format));
            string destinationFileName = Path.GetFileNameWithoutExtension(source) + extension;
            string outputTempFileName  = Path.Combine(_tempDirectory, Guid.NewGuid().ToString());

            try
            {
                if (!Directory.Exists(destination))
                {
                    Directory.CreateDirectory(destination);
                }

                destinationFileName = Path.Combine(destination, destinationFileName);

                VideoConvertSettings convSettings = new VideoConvertSettings(quality, videoFrameRate, format);
                // конвертируем и сохраняем во временном файле
                _сonverter.ConvertVideo(source, outputTempFileName, convSettings);

                // upload to storage
                using (FileStream fileStream = File.OpenRead(outputTempFileName))
                {
                    using (FileStream writeStream = System.IO.File.Create(destinationFileName))
                    {
                        fileStream.CopyTo(writeStream);
                    }
                }
            }
            finally
            {
                if (File.Exists(outputTempFileName))
                {
                    File.Delete(outputTempFileName);
                }
            }
        }