视频处理Nuget包,尝试过MediaToolkit和ffmpeg下一步做什么?

问题描述 投票:0回答:1

我有一个程序,可以每 2 秒从视频中提取 1 帧图像,我使用的是 MediaToolkit,但由于它已经多年没有更新,它越来越无法处理某些视频。

几个月前我切换到 FFMpegCore,它处理所有视频,但速度非常慢,几乎就像实时解析每个视频一样,因此处理一个视频可能需要 20 分钟。

有什么方法可以加快 FFMpegCore 的速度,或者有什么关于我可以使用的 nuget 包的建议吗?

提前致谢

这是我的 FFMpegCore 代码

for (double t = 0.0; t < duration; t += tSpan)
{
    var outputFile = $"{recordId}_{recordIndex:000}{count:0000000}.jpg";
    var outputFilename = $"{imageFolder}\\{outputFile}";

    FFMpegArguments
        .FromFileInput(localVideoFile)
        .OutputToFile(outputFilename, false, options =>
        options
            .WithCustomArgument($"-ss {t}")
            .WithCustomArgument("-vframes 1"))
        .ProcessSynchronously();

    count += 2;
}
c# nuget-package video-processing
1个回答
0
投票

EMGU CV
一个用于图像处理的包装库,它基于
OPEN CV
一个很好的
c++
库,速度非常快,可以处理
FFMPEG

https://emgu.com/wiki/index.php/Version_History#Emgu.CV-4.8.0

另一个解决方案是使用 ffmpeg 库并创建小型 FFI 库作为桥梁并为您完成工作,并在 C# 中使用它来保存这些图片

如果这些解决方案都不适合您,也许您可能会考虑使用 GPU

solution

© www.soinside.com 2019 - 2024. All rights reserved.