首页 > 代码库 > Htnl5直播_资料

Htnl5直播_资料

1、使用 WebSockets 进行 HTML5 视频直播 - 9up - SegmentFault.html

https://segmentfault.com/a/1190000000392586

 

最近在做的一个小项目需要用到相关技术,找到这篇文章貌似不错,于是就翻译转载上来了。 Recently I‘m interesting in these technologies and I‘m working on a project related to it. I‘ve found this useful article so I translated and posted it here.

原文地址 / Original post:
HTML5 Live Video Streaming via WebSockets - PhobosLab

笔者之前做一个实时监控应用的时候,曾搜索过一些将 iPhone 的摄像头拍摄的画面实时传输到浏览器的方案,一个都没有。

就 HTML5 来说,视频(实时)直播是一个很悲催的活,HTML5 视频目前还没有一个正式的流式传输支持,Safari 支持很蹩脚的HTTP Live Streaming 并且也即将有 Media Source Extension 规范和 MPEG-DASH。但所有这些方案都是将视频分成小片,由浏览器单独下载,因此会产生最小五秒钟的延迟。

下面是一个完全不同的方案,可以支持所有现代浏览器:Firefox、Chrome、Safari、Mobile Safari、Android 版 Chrome 甚至是 IE10。

原文的这个位置提供了一个直播例子。

这套方案向后兼容,没有用到什么新奇技术,目前暂时不支持音频。但它出乎意料地好用。

来自摄像头的视频被 ffmpeg 编码,然后通过 HTTP 传递给一个 Node.js 写的小脚本;脚本会将这条 MPEG 视频流通过 WebSockets 分发给所有链接的浏览器;浏览器使用 JavaScript 解码 MPEG 视频流并将解码后的画面渲染到 Canvas 元素上。

你甚至可以用树莓派来传输视频。可能会有点慢,但是笔者测试过以 30fps 的帧率实时编码 320x240 视频不成问题。对笔者来说这是最好的树莓派视频方案。

下面是构建步骤。首先你需要取得最新版本的 ffmpeg,最新的安装包可以从 deb-multimedia 获得。如果你使用 Linux,你的摄像头应该在位于 /dev/video0 或 /dev/video1;在 OS X 或 Windows 上你可以用 VLC。

确保用来分发视频流的服务器安装了 Node.js。下载 phoboslab/jsmpeg 项目的 stream-server.js 脚本。安装 WebSocket 包 ws 并启动服务器:

npm install ws
node stream-server.js 你的密码

这里的密码是用来确保不会有好奇宝宝来劫持你的视频流用的。如果服务器运行正常,你应该会看到这样的输出:

Listening for MPEG Stream on http://127.0.0.1:8082/<secret>/<width>/<height>
Awaiting WebSocket connections on ws://127.0.0.1:8084/

服务器启动后,你就可以启动 ffmpeg 并将它指向到正在运行的这个域名和端口了:

ffmpeg -s 640x480 -f video4linux2 -i /dev/video0 -f mpeg1video -b 800k -r 30 http://example.com:8082/你的密码/640/480/

这条命令会开始从摄像头捕捉 640x480 的视频,并编码成 30fps 码率 800kbps 的 MPEG 视频。编码后的视频会通过 HTTP 被发送到所指定的服务器和端口。确保密码正确,URL 中的长和宽也需要正确指定,否则服务器无法正确判断当前的分辨率。

在树莓派上你可能需要将分辨率降至 320x240 来确保编码速度仍能维持 30fps。

要观看直播,需要从前文提到的 jsmpeg 项目中下载 stream-example.html 和 jsmpg.js 文件,更改 stream-example.html 中的 WebSocket URL 为你的服务器地址,并使用你喜欢的浏览器打开。

如果一切正常,你就能看到少于 100ms 延迟的流畅的摄像头画面。很好很强大对不?

更便捷的方案请围观原文的 Instant Webcam。

只是备忘一下,近期会再发一篇博文来总结一下各个方案的实际使用效果。

重复一次原文地址 / Original post:
HTML5 Live Video Streaming via WebSockets - PhobosLab

  • 2014年01月20日发布

 

2、html5视频直播方案总结_jquery教程_jqueryschool-国内最大的jquery原创分享社区.html

技术分享

 

 

发布时间:2015-12-19 16:24:18

 

最近在研究html5视频直播,一句话,真特么的蛋疼,下面是我最近研究粗略的一点总结

 

HTML5视频直播技术分享

1、HLS直播流方案
Android不支持
IOS支持
微信浏览器环境可控制视频全屏播放
其它浏览器环境直播全屏,采用下完注再看视频直播方案
PC不支持
缺点:有延迟,具体延迟多少取决于服务器的配置和带宽,最终结果需要一个实时直播流来测试才知道

2、视频流解析图片方案
mpg视频流方案
Android和IOS都支持
6M视频解析,结果加载很慢,解析也很不流畅
800K视频流解析,结果加载变块,解析也跟着变流畅
缺点:最终效果还是取决于服务器推送过来的视频流的大小,视频流越小,加载越快,解析也更流畅

PC支持
6M视频源本地解析很流畅
6M视频源外网解析很流畅,加载时有点慢
缺点:没有音频功能,需要加载完视频流才开始解析,推送过来的视频流越大,解析越慢,终端显示越卡
优点:兼容所有设备

mp4视频流方案
Android和IOS都支持
6M视频解析,结果加载很慢,解析也很不流畅
183K视频流解析,结果加载变块,解析也不太流畅
缺点:最终效果还是取决于服务器推送过来的视频流的大小,视频流越小,加载越快,解析也更流畅,相对mpg视频流方案来讲效果没那么好

PC支持
6M视频源本地解析很流畅
6M视频源外网解析很流畅,加载时有点慢
缺点:没有音频功能,需要加载完视频流才开始解析,推送过来的视频流越大,解析越慢,终端显示越卡
优点:兼容所有设备
最终效果还是需要一个实时视频源采集推送过来测试

 

3、

  3.1、HTML5 视频直播(一) _ JerryQu 的小站.html

    https://imququ.com/post/html5-live-player-1.html

  3.2、HTML5 视频直播(二) _ JerryQu 的小站.html

    https://imququ.com/post/html5-live-player-2.html

  3.3、HTML5 视频直播(三) _ JerryQu 的小站.html

    https://imququ.com/post/html5-live-player-3.html

4、

5、

 

Htnl5直播_资料