1、用js操作二进制数据,通过socket与后台进行传输。将二进制数据存放在其中。
2、通过此方式,我们可以直接在网络中传输二进制内容。
我知道的跟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)
}
})
(1)HTML页面视频标签大体如下
<video id="video"controls="controls">
<source src="./video/2.mp4" type="video/mp4" />
</video>
(2)视频加载后获取视频的长度
varelevideo = document.getElementById("video")
elevideo.addEventListener('loadedmetadata', function () {//加载数据
//视频的总长度 console.log(elevideo.duration)
})
(3)视频开始播放
varelevideo = document.getElementById("video")
elevideo.addEventListener('play', function () {//播放开始执行的函数
console.log("开始播放")
})
(4) 视频正在播放中
varelevideo = document.getElementById("video")
elevideo.addEventListener('playing', function () {//播放中console.log("播放中")
})
(5)视频加载中
varelevideo = document.getElementById("video")
elevideo.addEventListener('waiting', function () {//加载
console.log("加载中")
})
(6)视频暂停播放
varelevideo = document.getElementById("video")
elevideo.addEventListener('pause', function () {//暂停开始执行的函数
console.log("暂停播放")
})
(7)视频结束播放
varelevideo = document.getElementById("video")
elevideo.addEventListener('ended', function () {//结束
console.log("播放结束")
}, false)