捕获一帧视频文件(.Net核心)

时间:2018-12-06 16:55:23

标签: c# asp.net-core .net-core video-processing

我花了一些时间找到.Net Core的库,并用它在某个特定时刻捕获视频文件的帧。我知道那里有一些东西,例如我使用了 Mediatoolkit ,但它与.net核心不兼容。
它们都与.net框架兼容。有帮助吗?

2 个答案:

答案 0 :(得分:1)

您可以使用ffmpeg提取帧: https://trac.ffmpeg.org/wiki/Create%20a%20thumbnail%20image%20every%20X%20seconds%20of%20the%20video

您必须知道要使用什么操作系统(Linux或Windows)才能提供兼容的ffmpeg二进制文件。

使用此API,您可以使用参数(适用于.NET Core)从C#调用ffmpeg: https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.process.start?view=netframework-4.7.2

var process = new Process
{
    StartInfo = new ProcessStartInfo()
    {
        CreateNoWindow = true,
        FileName = "ffmpeg", // or path to the ffmpeg
        WindowStyle = ProcessWindowStyle.Hidden,
        Arguments = "your arguments here"
    }
};

process.Start();
process.WaitForExit(10000); // wait for exit 10000 miliseconds

现在,您只需要从文件系统读取输出(图像文件)即可。

答案 1 :(得分:0)

我使用了Xabe.FFmpeg。 https://ffmpeg.xabe.net/docs.html

score