关于在线视频播放的问题
发布于 10 年前 作者 zhs077 5356 次浏览 最后一次编辑是 8 年前

我在网页上通过video控件在线播放视频 “<video id=“example_video_1” controls preload=“none” width=“640” height="264" source src=“http:127.0.0.1:8080/getvideo?name=oceans-clip.mp4” />”

服务端用nodejs简单搭建,根据uri返回一个视频

res.writeHead(200,{“Content-Type”: mime.types[type],‘Content-Length’: fs.statSync(file_path).size}); res.end(fs.readFileSync(file_path));

问题:在网页上我拖动video下面的快进,发现没用。于是我将视频的src改为本地存在的路径发现可以。请问,我的服务端要怎么做才能快进的效果呢?谢谢!!!

12 回复

我觉得是数据流的原因,但是我不能肯定,因为你在用这种方式的时候,你向后拖动进度条的时候,此时文件没有下载完毕,可能会有这个问题。

以解决

@ringtail

一般这种视频文件都比较大,这种同步读取会返回一个很大的buffer对象,也就是说必须将整个视频加载到buffer后,才会将响应发回到客户端。。

据我所知,我认为比较好的方法是,res是一个可写流,而视频文件是一个可读流,所以创建视频文件的一个可读流然后pipe到res就可以了。。这个方法 会处理内部很多的事务。。。比如流量控制。。

用nodejs 写一个媒体服务器…不太靠谱吧…这种东西应该找专门的媒体服务器吧.

能否介绍几个呢?

@zhs077

开源的话 live555

@youxiachai 基本上流媒体视频的协议都支持.

@youxiachai他不能支持http协议的

@zhs077

live555 支持 HTTP Live Streaming 啊

@youxiachai我用html5的video控件 src可以指向live555吗

回到顶部