如何转换上传的视频并从此文件获取屏幕截图?

Has*_*anG 5 asp.net flash flv video-processing video-encoding

我正在建立一个cms,希望用户能够上传视频,但是我对视频上传和转换不熟悉。是否有示例或有人编码过这样的解决方案?我听说过ffmpeg,但是我不知道如何将其与asp.net集成。

作为一个简单的解决方案,我可以让我的客户上传flv文件,但随后我仍然需要从该fvl中获取屏幕截图。

谢谢

Ale*_*lex 6

回答作者的问题:

ffmpeg是否需要安装在服务器端或仅exe就足够了?

ffmpeg.exe就足够了,不需要安装。

下面的代码获取captureTimevideoFilename变量指定的视频的屏幕截图,并将其保存到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);
Run Code Online (Sandbox Code Playgroud)