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

如何使用;FFmpeg";在Azure上使用c#?,c#,azure-webjobs,C#,Azure Webjobs,我想缩小Azure上webjob的mp4视频的大小。我的webjob中有一个队列触发器,每次添加一个新视频时,VideoCompressor webjob都会减小mp4视频文件的大小(根据方向和裁剪将宽度或高度减小到200px,仅为2分钟) 从我在互联网上读到的内容来看,ffmpeg就是答案。有一个nuget包:FFmpeg.stable.GZCR。 我想使用nugget软件包,不必每次都在ffmpeg网站上验证是否有新版本 但我没有找到任何关于它的文档: 我找到了一些关于FFmpeg的

我想缩小Azure上webjob的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流程=新流程
{
//ffmpeg二进制文件的路径
FileName=“ffmpeg.exe”,
//从mp4视频中获取声音的ffmpeg命令示例
Arguments=“-i input.mp4-vn-ab 320 output.mp3”,
UseShellExecute=false
}
process.Start();

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

ffmpeg有一个非常复杂的API,您最好直接从C程序调用该工具。在研究如何在ffmpeg中执行某些操作时,每个人都会从以下方面讨论该工具:直接访问.exe,这样与尝试使用包装器API相比,您会有更少的混乱

例如,您可以使用
System.Diagnostics.Process

var流程=新流程
{
//ffmpeg二进制文件的路径
FileName=“ffmpeg.exe”,
//从mp4视频中获取声音的ffmpeg命令示例
Arguments=“-i input.mp4-vn-ab 320 output.mp3”,
UseShellExecute=false
}
process.Start();

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

只需直接使用ffmpeg.exe,无需任何包装或nuget软件包。问题是我希望轻松获得最新版本。有了nugget,我只需要做:自动更新软件包我的软件包已更新。通过使用.exe,我需要转到网站,将其下载到正确的文件夹中。当您必须手动执行操作时,会增加失败的可能性。如果其他人在该项目上工作,它可能不知道他必须手动更新。使用“FFmpeg.stable.GZCR“,看起来ffmpeg.exe被嵌入到dll中,但我不知道如何调用它。目前的fmpeg版本是4.0,该软件包有3.4,因此使用该软件包并不保证最后一个版本。我认为它不包含ffmpeg.exe。此外,盲目更新这些东西可能是危险的,没有测试。但是,这只是我的看法。请注意,该文件的下载可以在没有软件包的情况下自动完成。好的,这是一个很好的观点!我将使用ffmpeg.exe。你能告诉我更多关于ffmpeg.exe更新自动化的细节吗?直接使用ffmpeg.exe,不需要任何包装或nuget软件包。问题是我想轻松获得最新版本。有了nugget,我只需要做:自动更新软件包我的所有软件包都会更新。通过使用.exe,我需要去网站,下载到正确的文件夹。当你不得不手动操作时,你增加了失败的可能性。如果其他人在这个项目上工作,它可能不知道他必须手动更新它。有了“FFmpeg.stable.GZCR”,看起来FFmpeg.exe被嵌入到了dll中,但我不知道如何调用它。目前的fmpeg版本是4.0,该软件包有3.4,所以使用该软件包并不保证最后一个版本。我认为它不包含ffmpeg.exe。此外,盲目更新这些东西可能是危险的,没有测试。但是,这只是我的看法。请注意,该文件的下载可以在没有软件包的情况下自动完成。好的,这是一个很好的观点!我将使用ffmpeg.exe。你能告诉我更多关于ffmpeg.exe更新自动化的细节吗?谢谢你的回答:)谢谢你的回答:)