如何在 Azure 上使用 "FFmpeg" 和 c#?

How to use "FFmpeg" with c# on Azure?

我想减小来自 Azure 上的网络作业的 mp4 视频的大小。我的 webjob 中有一个队列触发器,每次添加新视频时,VideoCompressor Webjob 都会减小 mp4 视频文件的大小(根据方向减少到 200px 宽度或高度 + 裁剪到仅 2 分钟)。

根据我在网上看到的,ffmpeg 就是答案。有 nuget 包:FFmpeg.stable.GZCR。 我想使用一个 nugget 包,这样就不必每次都访问 ffmpeg 网站并验证是否有新版本。

但我没有找到任何关于它的文档:

我找到了一些关于 FFmpeg 的信息,但它是针对 WinRT 的,所以对我来说没有用:

我找到了这段代码,这似乎是我想要做的。问题出在 nugget 包中,我不知道如何访问 ffmpeg.exe",但也许您有其他想法?

你有什么想法或建议吗?

FFMPEG 非常复杂 API,您最好直接从 C# 程序调用该工具。在研究如何在 ffmpeg 中做某事时,每个人都会在直接访问 .exe 方面讨论该工具,因此与尝试使用包装器相比,您不会感到困惑 API.

您可以使用 System.Diagnostics.Process 执行此操作,例如

var process = new Process
{
    // Path to your ffmpeg binary
    FileName = "ffmpeg.exe",
    // Example ffmpeg command to get the sound from an mp4 video
    Arguments = "-i input.mp4 -vn -ab 320 output.mp3",
    UseShellExecute = false
}

process.Start();

如果您想自动升级 ffmpeg,您可以编写脚本以从 GitHub 存储库获取最新版本并自己编译 ffmpeg。