思路: 前提是能被播放,无法被浏览器播放则无法获取时长,所以根据这一点,下面的方案也能判断视频能否被浏览器支持解码
我知道的跟nodejs关系不大,可以用ffmpeg 来获取,然后nodejs 调用ffmpeg的命令。
可以获得视频的时长 duration 和 分辨率 272X480 。
然后把输出的内容通过正则获取出来即可。
代码: 具体获取文件路径并判断的我就不写了
var url = 'd:/a.mp4'var exec = require('child_process').exec
var cp = exec('d:/soft/ffmpeg/bin/ffmpeg -i '+url,function(err,stdout,stderr){
var outStr = stderr.toString()
// console.log(outStr)
var regDuration =/Duration\: ([0-9\:\.]+),/
var rs = regDuration.exec(outStr)
if(rs[1]){
var timeStr = rs[1]
//获得时长
console.log(timeStr)
}
})