我想减少来自 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。
我是一名优秀的程序员,十分优秀!