flash直播

本文作者:IMWeb ninawu 原文出处:IMWeb社区 未经同意,禁止转载

接触了一段时间的flash直播,无论是腾讯课堂‘数据生成模式’实现的直播还是第三方直播任务tcplayer通过拉流地址实现的直播,都存在一定的延时和首帧慢的情况。为了能更好的做好音视频监控和问题定位,便想自己实现一套flash直播简单的demo,在通过改变上行的带宽,码率,帧率,gop大小等信息来观察延时和首帧的情况。

实现flash直播需要三个重要的类,netconnection,netstream和video。 NetConnection 类在客户端和服务器之间创建双向连接。客户端可以是 Flash Player 或 AIR 应用程序。服务器可以是 Web 服务器、Flash Media Server、运行 Flash Remoting 的应用程序服务器或 Adobe Stratus服务。调用 NetConnection.connect() 以建立连接。使用 NetStream 通过该连接发送媒体流和数据 调用 NetConnection.connect() 会执行下列操作: ? 传递“null”会从本地文件系统或 Web 服务器播放视频和 MP3 文件。 ? 传递“http”URL 可连接到运行 Flash Remoting 的应用程序服务器。可使用 NetServices 类通过 NetConnection 对象调用应用程序服务器函数,并返回结果。有关详细信息,请参阅 Flash Remoting 文档。 ? 传递“rtmp/e/s”URL 可连接到 Flash Media Server 应用程序。 ? 传递“rtmfp”URL 会为 RTMFP 客户端服务器、对等和 IP 多播通信创建双向网络端点。 ? 传递字符串“rtmfp:”可为 RTMFP IP 多播通信创建无服务器的双向网络端点。 NetStream 类通过 NetConnection 打开了一个单向流通道。 ? 调用 NetStream.play(),从本地磁盘、Web 服务器或 Flash Media Server 播放媒体文件。 ? 调用 NetStream.appendBytes(),将 ByteArray 数据传入 NetStream。

protected function onProgress(e:ProgressEvent):void{ if(this._downLoadState==0) this._downLoadState=1; var tem:ByteArray=new ByteArray(); tem.endian=this._urlLoader.endian; this._urlLoader.readBytes(tem); this._ns.appendBytes(tem); } Video 类在应用程序中显示实时视频或录制视频,而无需在 SWF 文件中嵌入视频 ?调用video.attachNetStream()指定要在应用程序中 Video 对象的边界内显示的视频流

下面的demo分别演示了通过appendbytes或拉流地址或直接连接媒体服务器来播放视频流。因暂未实现OBS推流,所以appendbytes和拉流地址播放的视频流并非直播视频流,后续加上OBS推流后,换成直播流即可。

演示地址:http://52.78.69.82/web/videoDemo/RTMPTest.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

黑了记者:写个恶意软件玩玩(二)

该篇是3篇系列中的第2篇(可在此读第1篇 http://www.freebuf.com/articles/others-articles/34277.html)...

21490
来自专栏轮子工厂

有哪些实用且堪称神器的Chrome插件?吐血推荐!!!

相信很多人都在使用 Chrome 浏览器,其流畅的浏览体验得到了不少用户的偏爱,但流畅只是一方面, Chrome 最大的优势还是其支持众多强大好用的扩展程序(E...

4K40
来自专栏小狼的世界

彻底理解Doctype

写了很多年的CSS,但是对于页面中的第一段话从来都是模模糊糊的认识。仿佛是记得,不同doctype模式,就会触发不同的验证级别。实际的编码过程中,貌似遇到过一两...

10410
来自专栏一个番茄说

iOS 开发安全那些事儿

​ 随着移动互联网的普及,被越来越多的心怀不轨的人觊觎,也越来越多的安全问题暴露了出来。开发者开发出来的应用被安装在设备上之后,用户并不具有专业的安全知识。...

12830
来自专栏岑志军的专栏

iOS逆向-ipa包重签名及非越狱手机安装多个微信

54440
来自专栏用户2442861的专栏

必不可少的Firefox插件

Adblock Plus 去广告,包括youku的开头广告 All-in-One Sidebar 最大的好处就是省去书签栏 NoSquint :用firefo...

79310
来自专栏FreeBuf

地方商业银行APP安全性分析

0x00、业务需求 国内133家地方商业银行作为商业领域国外IT厂商和商家必争之地,无论是IT基础设施建设、容灾备份系统建设、还是信息安全建设等,各家银行都做的...

32760
来自专栏CRPER折腾记

MacOS : 前端必备姿势(工作环境)

算是爬出来了...此篇的工作设备是(Macbook Pro 2017款,所以可能会说到 touchbar!)

63800
来自专栏北京马哥教育

22款神奇的Ubuntu软件,帮你的系统成为全场最佳

? 作者:PentonBin 来源: https://www.zhihu.com/question/19811112/answer/132006027 先讲一...

79150
来自专栏FreeBuf

帮女神修手机的意外发现:隐匿在iOS文件系统中的隐私信息

说明: 1. 本文仅供安全学习及教学用途,提及的部分技术带有攻击性,请确保合法使用。 2. “这些都不是我干的,我就负责说出来。” 3. 图片仅供参考。 4. ...

49290

扫码关注云+社区

领取腾讯云代金券