C#如何按帧截取视频,并保存为图片

首先我们需要运用到一个软件名为:ffmpeg.exe
这是处理视频的一个工具软件
下面直接上代码 我代码是控制器写的
public ActionResult Index()
{

        string upPath= Server.MapPath("~/Uploads/");

        string filename2 = DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss-fffffff");

        CreateImg(upPath + "1.mp4", filename2);

        return View();
    }

    /// 
    /// 视频路径  还有图片名称
    /// 
    /// 
    /// 
    /// 
    private string CreateImg(string fileName, string filename2)
    {
        string ffmpeg = Server.MapPath("~/Uploads/ffmpeg.exe");
        string vFileName = fileName;
        string FlvImgSize = "240x180";
        System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(ffmpeg);
        startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
        string flv_img = filename2 + ".png";
        string flv_img_p = System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + flv_img);
        startInfo.Arguments = " -i " + vFileName + "  -y  -f  image2   -ss 2 -vframes 1  -s   " + FlvImgSize + "  " + flv_img_p;
        try { System.Diagnostics.Process.Start(startInfo); }
        catch { return ""; }
        if (System.IO.File.Exists(flv_img_p)) { return flv_img; }
        return "";
    }

源码资源

你可能感兴趣的:(技术,分享)