保存拍摄的快照

本文关键字:快照 保存 | 更新日期: 2023-09-27 18:25:53

我已经完成了这个问题中的所有内容。除了一个,一切都很好。我无法保存拍摄的快照。如果我继续调试,一切都会好起来的。。怎么了?

 public class FFMPEG
{
    Process ffmpeg;
    public void exec(string input, string parametri, string output)
    {
        ffmpeg = new Process();
        ffmpeg.StartInfo.Arguments = " -i " + input + (parametri != null ? " " + parametri : "") + " " + output;
        ffmpeg.StartInfo.FileName = HttpContext.Current.Server.MapPath("~/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, "-ss 00:00:06 " + velicina, jpg);
    }
}

FFMPEG f = new FFMPEG();
            f.GetThumbnail(Server.MapPath("~/Uploads/" + unique), Server.MapPath("~/Thumbnails/" + unique.Remove(unique.IndexOf(".")) + ".jpg"), "1200x223");

保存拍摄的快照

我假设您提取的是640x480缩略图,velicina是用于指定根据您发布的部分代码判断的分辨率的参数。在这种情况下,您有一个ffmpeg语法错误,您可以更改GetThumbnail函数如下:

public void GetThumbnail(string video, string jpg, string velicina)
{
    if (velicina == null) velicina = "640x480";
    exec(video, "-ss 00:00:06 -s" + velicina, jpg);
}

特别地,-s命令告诉ffmpeg输出的分辨率。试试它是否可行。