我想提取上传视频的第一帧并将其保存为图像文件。
可能的视频格式有 mpeg、avi 和 wmv。
还需要考虑的一件事是我们正在创建一个 ASP.NET 网站。
最佳答案
您可以将 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);
}
}
像这样使用:
FFMPEG f = new FFMPEG();
f.GetThumbnail("videos/myvid.wmv", "images/thumb.jpg", "1200x223");
为此,您必须在文件夹/utils 中有 ffmpeg.exe,或更改代码以找到 ffmpeg.exe。
还有其他方法可以在 .NET 中使用 FFMPEG,例如 .NET 包装器,您可以通过谷歌搜索它们。他们基本上在这里做同样的事情,只是更好。因此,如果 FFMPEG 可以完成您的工作,我建议您使用 .NET 包装器。
关于c# - 如何将视频的第一帧保存为图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3575311/