Dim*_*dis 1 c# metadata asp.net-core-mvc
这个问题是关于 asp.net WEB 应用程序,而不是关于 .net windows 应用程序。在我的应用程序中,我使用 asp.net core 上传视频文件 (mp4)。
我需要从此视频文件中获取元数据,但现在我关注的是该视频文件的持续时间。
我已经创建了表单,并且在我的控制器中我成功接收了一个IFormFile file对象。我可以通过调用 .length 方法 ( file.Length) 来找到文件的大小,但我真的很难获得确切的日期,尤其是该对象的持续时间。
如何确定该对象的确切日期和持续时间?
这是我的代码:
public async Task UploadVideos(IList<IFormFile> files)
{
long size = files.Sum(f => f.Length);
Console.WriteLine("The size of all the selected files is:"+size);
Console.WriteLine("the file name is" + files[0].FileName);
string type = files[0].ContentType;
if (type.Equals("video/mp4"))
{
Console.WriteLine("Indeed a mp4 format");
}
}
Run Code Online (Sandbox Code Playgroud)
抱歉回复晚了,以下是如何获取视频上传后的持续时间,
您可以使用NReco,提供的链接有一个关于如何获取视频信息的很好的小示例,
var ffProbe = new NReco.VideoInfo.FFProbe();
var videoInfo = ffProbe.GetMediaInfo(pathToVideoFile);
Console.WriteLine(videoInfo.FormatName);
Console.WriteLine(videoInfo.Duration);
Run Code Online (Sandbox Code Playgroud)
唯一的问题是商业用途的许可。
您可以尝试的另一个是 mediatoolkit ,我以前使用过它,它效果很好,特别是对于您正在寻找的功能,一个简单的用法是
var inputFile = new MediaFile { Filename = video_name };
using (var engine = new Engine())
{
engine.GetMetadata(inputFile);
}
Run Code Online (Sandbox Code Playgroud)
示例图像显示了调用 getmetadata 方法的输出,
。
MediaToolkit 使用MIT 许可证
以上都是c++ FFmpeg库的包装