问题陈述。
我在社区里搜索了很多关于如何使用C#程序获取存储在Azure容器中的音频blob的持续时间的问题,现联系大家。
研究工作。
我在C#中看到了很多库(如NAudio、MediaInfo、WindowsAPICodePack-Shell等),它们可以帮助获取媒体文件的持续时间,但它们只支持存储在本地系统路径中的媒体文件,而不支持放置在云端的音频。
从blob的角度来看,它确实给出了blob的长度属性,以字节为单位返回大小,这不能满足我的要求。
请建议是否有任何方法来获取音频blob的持续时间。先谢谢你
该工具 ffprobe (来自FFmpeg系列)就可以了。这个工具被设计用来检查媒体文件,并返回所有你需要的信息。
它可以把输入作为一个URL,所以你可以喂它你的blob文件(假设该URL是开放的,不需要认证)。
这个网站 (https:/trac.ffmpeg.orgwikiFFprobeTips。)有一些关于如何使用ffprobe的提示。
在C#中,你可以简单地使用下列方法调用.exe文件 Process.Start([pathToFFProbe], [Arguments])
. 如果你是在Mac上,使用Homebrew。brew install FFmpeg
以获得工具。在其他平台上应该也一样简单。
参数,如 -o JSON
将以JSON格式输出数据,您可以在您自己的应用程序中进行解析,以执行任何进一步的计算。