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

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、

时间: 2024-12-25 06:51:43

Htnl5直播_资料的相关文章

ffmpeg.串流_资料(包含一些vlc)

1. 基于FFmpeg进行RTMP推流(一) - 简书.html(https://www.jianshu.com/p/69eede147229) 基于FFmpeg进行RTMP推流(二) - 简书.html(https://www.jianshu.com/p/6b9ab2652147) ZC:该作者的 "流媒体"系列文章:流媒体 - 文集 - 简书.html(https://www.jianshu.com/nb/17697147) RTMP服务器搭建(crtmpserver和nginx)

Tensorflow.猫狗_资料

1.cpp的博客里面有一部分 资料 2.深度学习8:Cats vs. Dogs实例学习 - 慢慢积累 - CSDN博客.html(https://blog.csdn.net/lin453701006/article/details/79402976) ZC:这里面提到了 "油管up主KevinRush",我之前 也看到别的文章有推荐此人的视频链接(国内的 如 youku.土豆等) 但是 里面视频都被删掉了... 不知 发生了什么 不知是不是up主自己删的...  不知道 他的油管的视频

Unity游戏开发中的内存管理_资料

内存是手游的硬伤——Unity游戏Mono内存管理及泄漏http://wetest.qq.com/lab/view/135.html 深入浅出再谈Unity内存泄漏http://wetest.qq.com/lab/view/150.html 这一次,我优化了37%的内存http://wetest.qq.com/lab/view/147.html Unity项目资源加载与管理http://wetest.qq.com/lab/view/124.html Android应用内存泄露分析.改善经验总结h

javascript_父子窗口交互_资料

1. http://www.cnblogs.com/MaxIE/archive/2006/08/21/482501.html 2. 3.

WPF_书_资料

1.WPF入门教程系列十九 ListView示例 http://www.cnblogs.com/chillsrc/archive/2015/09/18/4818975.html http://www.cnblogs.com/chillsrc/p/4826388.html WPF入门教程系列一——基础 http://www.cnblogs.com/chillsrc/p/4464023.html 2.Windows Presentation Foundation程序设计指南 英文原版名是<<App

PHP_Zend_Dom_Query_QUERY采集类库_资料

$cateHtml = new Zend_Dom_Query($cateCon);//实例Zend_Dom_Query类 $cateBlock=$cateHtml->query('#nav_body .specialLi .specialNav a');//返回Zend_Dom_Query_Result类 Zend_Dom_Query_Result方法说明 $cateBlock->rewind()->nodeValue;//重置指针,返回第一个DOM$cateBlock->curr

APK签名_资料

1.百度搜索关键字"Eclipse APK 签名" 2. http://jingyan.baidu.com/article/15622f247bdd1bfdfcbea5fd.html http://www.cnblogs.com/tianguook/archive/2012/09/27/2705724.html http://www.360doc.com/content/14/1005/10/6359190_414507748.shtml http://blog.csdn.net/ne

day7_直播_网络编程篇(元昊老师著)

网络编程篇计算机网络: 多台独立的计算机用网络通信设备连接起来的网络.实现资源共享和数据传递. 比如,我们之前的学过的知识可以将D盘的一个文件传到C盘,但如果你想从你的电脑传一个文件到我的电脑上目前是做不到的; 或者我们现在是不是只能设计单机版的游戏而网络编程则可以解决这些问题.网络编程: 通过某种计算机语言来实现不同设备间的资源共享和信息传递. 计算机网络的创造可能比计算机本身意义更重大!!!(否则,你只能玩单机版游戏) OSI模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框

外积法设计离散型 Hopfield 神经网络的权系数矩阵_资料整理

交法. 相关课件内容