用nodejs怎么获得一个文件夹下面的视频信息呢?(具体指视频时长多少分钟的视频)

JavaScript017

用nodejs怎么获得一个文件夹下面的视频信息呢?(具体指视频时长多少分钟的视频),第1张

我知道的跟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)

}

})

在firefox上,input(type=file)默认获取到的value值就是文件名。

在IE上,input(type=file)默认获取到的value值是路径。

因此用js来获取fileupload中的上传文件的文件名需要多方面考虑。

示例代码:

<form action="" method="get" onSubmit="return false">

<input type="text" name="test" id="test">

<input type="file" name="testFile" onChange="if(this.value)insertTitle(this.value)">

<input type="submit" value="提交">

</form>

<script language="javascript">

function insertTitle(path){

var test1 = path.lastIndexOf("/") //对路径进行截取

var test2 = path.lastIndexOf("\\") //对路径进行截取

var test= Math.max(test1, test2)

if(test<0){

document.getElementById("test").value = path

}else{

document.getElementById("test").value = path.substring(test + 1)//赋值文件名

}

}

</script>