Получите продолжительность аудиоблока, хранящегося в контейнере azure, используя C# - PullRequest
2 голосов
/ 28 мая 2020

Постановка проблемы:

Я обращаюсь к людям в сообществе после долгих поисков того, как получить продолжительность аудиоблобы, хранящегося в контейнере Azure, с помощью программы C#.

Исследовательская работа:

Я видел много разных библиотек в C# (например, NAudio, MediaInfo, WindowsAPICodePack-Shell et c.), Которые помогают определить продолжительность мультимедийный файл, но он поддерживает только мультимедийные файлы, хранящиеся в локальном системном пути, а не aud ios, размещенный в облаке.

Говоря с точки зрения blob, он дает свойство length для blob, которое возвращает размер в байтов, что не соответствует моим требованиям.

Подскажите, пожалуйста, есть ли способ узнать продолжительность аудио-блоба. Заранее спасибо!

1 Ответ

0 голосов
/ 28 мая 2020

Инструмент ffprobe (из семейства FFmpeg) сделает свое дело. Этот инструмент предназначен для проверки мультимедийного файла и возврата всей необходимой вам информации.

Он может принимать ввод в виде URL-адреса, чтобы вы могли передать ему свой файл большого двоичного объекта (при условии, что URL-адрес открыт и не t требует аутентификации).

На этом веб-сайте (https://trac.ffmpeg.org/wiki/FFprobeTips) есть несколько отличных советов по использованию ffprobe.

Из C# вы можете просто вызвать .exe с использованием Process.Start([pathToFFProbe], [Arguments]). Если вы используете Ma c, используйте Homebrew brew install FFmpeg, чтобы получить инструменты. Это должно быть так же просто на других платформах.

Аргументы, такие как -o JSON, будут выводить данные в формате JSON, который вы можете проанализировать в своем собственном приложении для выполнения любых дальнейших вычислений.

...