Сначала я пробую FFMPEG Wrapper, но выдает ошибку после того, как нашел простое решение.
Вы можете использовать этот пакет самородков:
Install-Package Microsoft.WindowsAPICodePack-Shell -Version 1.1.0
В вашем проекте добавьте два пространства имен
с использованием Microsoft.WindowsAPICodePack.Shell;
using.Microsoft.WindowsAPICodePack.Shell.PropertySystem;
ShellFile so = ShellFile.FromFilePath("your file path");
double.TryParse(so.Properties.System.Media.Duration.Value.ToString(), out var nanoseconds);
if (nanoseconds > 0)
{
double seconds = Convert100NanosecondsToMilliseconds(nanoseconds) / 1000;
int ttl_seconds = Convert.ToInt32(seconds);
TimeSpan time = TimeSpan.FromSeconds(ttl_seconds);
}
public static double Convert100NanosecondsToMilliseconds(double nanoseconds)
{
return nanoseconds * 0.0001;
}
Здесь я сохраняю секунды в TimeSpan , так что его напрямую дают часы: минуты: секунды.