js传递二进制视频数据的方法

JavaScript018

js传递二进制视频数据的方法,第1张

js传递二进制视频数据的方法是以下这些。

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)