如何从mp4,m3u8或任何其他文件获取video时长

我发现NReco.VideoInfo库是最好的选择并且更简单

1]在NuGet包管理器中找到NReco.VideoInfo库并将其导入项目中

2]之后导入命名空间“使用NReco.VideoInfo”

3]将以下代码行添加到方法中。

var ffProbe = new FFProbe(); var videoInfo = ffProbe.GetMediaInfo(blob.Uri.AbsoluteUri); return videoInfo.Duration.TotalMilliseconds; 

在这里你可以看到一些其他的选择

你为什么不用windows media player来解决这个问题?

 using WMPLib; public Double getDuration(String path) { WindowsMediaPlayer wmp = new WindowsMediaPlayerClass(); IWMPMedia mediaInfo = wmp.newMedia(file); return mediaInfo.duration; } 

如果您的意思是来自本地文件,以下将显示持续时间而不加载整个video文件(在mp4上测试):

 var inputBox = document.getElementById("videoInput") inputBox.onchange = function(files) { alert("starting") var video = document.createElement('video'); alert("video created") video.preload = 'metadata'; video.onloadedmetadata = function() { alert("metadata loaded") var duration = video.duration; alert("duration is " + duration) } var selectedVID = document.getElementById("videoInput").files[0]; video.src = URL.createObjectURL(selectedVID); } 
 

Video Upload Duration test