如何将视频的第一帧保存为图像?

Cod*_*awk 10 c# asp.net video image-extraction

我想提取上传视频的第一帧并将其保存为图像文件.
可能的视频格式是mpeg,avi和wmv.

还有一件事要考虑我们正在创建一个ASP.NET网站.

Cip*_*ipi 7

您可以将FFMPEG用作单独的进程(最简单的方法),并让它为您解码第一个IDR.在这里你有一个具有GetThumbnail()方法的类FFMPEG,你传递视频文件的地址,要制作的JPEG图像的地址,以及你想要图像的分辨率:

using System.Diagnostics;
using System.Threading; 

public class FFMPEG
{
    Process ffmpeg;

    public void exec(string input, string output, string parametri)
    {
        ffmpeg = new Process();

        ffmpeg.StartInfo.Arguments = " -i " + input+ (parametri != null? " "+parametri:"")+" "+output; 
        ffmpeg.StartInfo.FileName = "utils/ffmpeg.exe";
        ffmpeg.StartInfo.UseShellExecute = false;
        ffmpeg.StartInfo.RedirectStandardOutput = true;
        ffmpeg.StartInfo.RedirectStandardError = true;
        ffmpeg.StartInfo.CreateNoWindow = true;

        ffmpeg.Start();
        ffmpeg.WaitForExit();
        ffmpeg.Close();     
    }


    public void GetThumbnail(string video, string jpg, string velicina)
    {
        if (velicina == null) velicina = "640x480";
        exec(video, jpg, "-s "+velicina);
    }
}
Run Code Online (Sandbox Code Playgroud)

使用这样:

FFMPEG f = new FFMPEG();
f.GetThumbnail("videos/myvid.wmv", "images/thumb.jpg", "1200x223");
Run Code Online (Sandbox Code Playgroud)

为此,您必须在文件夹/ utils中使用ffmpeg.exe,或更改代码以找到ffmpeg.exe.

还有其他方法可以在.NET中使用FFMPEG,比如.NET包装器,你可以谷歌搜索它们.他们基本上在这里做同样的事情,只是更好.因此,如果FFMPEG完成您的工作,我建议使用.NET包装器.