使用C#获取存储在azure容器中的音频blob的持续时间。

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

问题陈述。

我在社区里搜索了很多关于如何使用C#程序获取存储在Azure容器中的音频blob的持续时间的问题,现联系大家。

研究工作。

我在C#中看到了很多库(如NAudio、MediaInfo、WindowsAPICodePack-Shell等),它们可以帮助获取媒体文件的持续时间,但它们只支持存储在本地系统路径中的媒体文件,而不支持放置在云端的音频。

从blob的角度来看,它确实给出了blob的长度属性,以字节为单位返回大小,这不能满足我的要求。

请建议是否有任何方法来获取音频blob的持续时间。先谢谢你

c# azure azure-functions azure-storage-blobs
1个回答
0
投票

该工具 ffprobe (来自FFmpeg系列)就可以了。这个工具被设计用来检查媒体文件,并返回所有你需要的信息。

它可以把输入作为一个URL,所以你可以喂它你的blob文件(假设该URL是开放的,不需要认证)。

这个网站 (https:/trac.ffmpeg.orgwikiFFprobeTips。)有一些关于如何使用ffprobe的提示。

在C#中,你可以简单地使用下列方法调用.exe文件 Process.Start([pathToFFProbe], [Arguments]). 如果你是在Mac上,使用Homebrew。brew install FFmpeg 以获得工具。在其他平台上应该也一样简单。

参数,如 -o JSON 将以JSON格式输出数据,您可以在您自己的应用程序中进行解析,以执行任何进一步的计算。

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