Я создаю cms, и я хочу, чтобы пользователи смогли загрузить видео, но я не знаком с загрузкой видео и преобразованием. Существует ли пример, или кто-либо кодировал решение как это? Я слышал о ffmpeg, но я не знаю, как интегрировать его с asp.net.
Как простое решение я могу заставить свои клиенты загрузить flv файлы, но затем я должен был бы все еще получить снимок экрана от этого fvl.
Спасибо
Ответ автора вопрос:
Требуется ли установка ffmpeg на стороне сервера или достаточно exe?
ffmpeg.exe будет достаточно, установка не требуется.
Приведенный ниже код получает снимок экрана на captureTime
видео, заданном переменной videoFilename
, и сохраняет его по пути imageFilename
.
Process ffmpeg = new Process();
ffmpeg.EnableRaisingEvents = true;
ffmpeg.StartInfo = new ProcessStartInfo
{
FileName = this.ffmpegPath,
Arguments = string.Format(
"-i \"{0}\" -an -y -s 320x240 -ss {1} -vframes 1 -f image2 \"{2}\"",
this.videoFilename,
DateTime.MinValue.Add(this.captureTime).ToString("HH:mm:ss:ff", CultureInfo.InvariantCulture),
this.imageFilename
),
WorkingDirectory = this.workingDirectory,
UseShellExecute = false,
RedirectStandardError = true,
RedirectStandardOutput = true,
WindowStyle = ProcessWindowStyle.Hidden
};
ffmpeg.Start();
ffmpeg.WaitForExit(this.timeout);
Я использовал ffmpeg, но я нашел, что проще просто использовать предварительно скомпилированную .exe версию. Поэтому в бэкенде я просто запускал ffmpeg.exe с необходимыми аргументами командной строки для выполнения преобразования, позволял ему работать, и когда он заканчивал, готовый файл был готов к работе.