![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
移动直播技术
文章平均质量分 92
大飞飞鱼
做自己喜欢的事情,任凭别人去说吧
展开
-
H264 NALU说明
在H.264/AVC视频编码标准中,编码的数据流(位流)由连个层面组成:视频编码层面(VCL)和网络抽象层面(NAL)。H264编码产生的结果(位流)首先为视频编码层(VCL),为了便于网络传输与存储,需要将编码层的VCL数据再打包成NAL(全称Network Abstract Layer),即网络抽象层。其中,前者负责有效表示视频数据的内容,而后者则负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上的传输。做流媒体研发的工作只需要关心NAL层,不一定需要掌握VCL层数据。一个NAL.原创 2021-08-29 12:20:30 · 1804 阅读 · 0 评论 -
Android视频采集与处理
Android中很多基本的架构都是C/S层架构,客户端提供调用接口,而实现工作则是在服务端完成。Android Camera的架构也是C/S架构,Client进程虽然不曾拥有任何实质的Camera数据,但是service端为它提供了丰富的接口,它可以轻松的获得Camera数据的地址,然后处理这些数据。两者通过Binder进行通讯。在Android中调用摄像头需要相应的权限,需要注意的是:权限申请在Android 6.0后变成了动态申请。在本项目中使用了Camera1相关的API对摄像头进行调用,所以对Ca原创 2021-08-23 01:45:29 · 1377 阅读 · 0 评论 -
Android Media API 使用介绍
从事多媒体开发的同学,在对Android 系统开发时,Android系统已经给我们提供了对视音频的强大支持,本文介绍Android的几个和视音频相关的类,通过这几个类的组合使用,其实是能变换出许多视音频处理的相关功能,下面就对这几个类进行简单介绍。MediaMetadataRetriever:用来获取视频的相关信息,例如视频宽高、时长、旋转角度、码率等等。MediaExtractor::视音频分离器,将一些格式的视频分离出视频轨道和音频轨道。MediaCodec:视音频相应的编解码类。MediaMu原创 2021-08-23 01:14:57 · 1134 阅读 · 0 评论 -
Android 声音采集回声与回声消除
回声(或称回音)是指障碍物对声音的反射。声波在遇到障碍物时,一部分声波会穿过障碍物,而另一部分声波会反射回来形成回声。若障碍物具有坚硬光滑的表面易产生回声;反之,具有柔软的表面则易吸收声音;另外,粗糙的表面易散射声音。回声相比那些直接传播的声音所经过的路程更长,所以会比直接传播的声音晚被听到。如果两列声波的时间间隔小于0.1秒,人耳边无法分辨,只能听到被延长的声音。因为室温(20℃)时空气中的声速是343米每秒,所以站在声源处的人要听到回声需要障碍物到声源的距离至少17米。很多时候直播有连麦的需求,这时原创 2021-08-23 00:28:01 · 6620 阅读 · 0 评论 -
RTMP 推流认证的 adobe 用户认证原理与过程介绍
Adobe的FMS服务器支持推流时用户名+密码认证,这样保证了推流的安全性。由于Adobe的推流认证的方法与过程在Adobe公开的RTMP协议说明文档里没有,只能根据逆向工程分析它的过程。FMS支持两种推流认证,即adobe与llnw。本人对adobe方式进行了分析记录如下:一、用户帐号产生方法:Adobe FMS启用了认证以后,在FMS的安装目录的conf字幕里里会多出一个users.exe程序,用于产生用户数据库, users.dat文件为用户数据库文件。用users.exe程序添加一个原创 2020-08-18 12:17:25 · 1005 阅读 · 1 评论 -
windows 下用开源流媒体压力测试工具 rtmpstress 测试RTMP媒体服务器负载性能
最近笔者的朋友需要部署流媒体服务作运营,从国外购买了几套流媒体服务器软件,该流媒体服务器软件是基于java开发的,他向笔者咨询,如何检测该流媒体服务器软件是否能支持1000以上并发,笔者建议找一个RTMP压力测试工具测试一下即可,但找了半天,没有找到合适的压力测试工具,也有一个st-load 测试工具,但可惜是Linux下才能运行,对测试人员的要求比较高,派不上用场。无奈,笔者只好...原创 2020-01-10 20:42:45 · 4289 阅读 · 3 评论 -
RTMP 协议包头参考
为了方便查阅,把RTMP协议的包头记录下来,以便参考:RTMP协议在握手完成以后,服务器与客户端通过包(chunk)来进行信令交换。包(thunk)格式如下每个包有包头与数据组成。而包头自身是由三部分组成: 包头可以是4种长度的任意一种:12, 8, 4, 1 byte(s).完整的RTMP包头应该是12bytes,包含了时间戳,AMFSize,AMFType,Stre...原创 2019-10-15 01:21:00 · 248 阅读 · 0 评论 -
搭建免费网络直播系统
随着移动互联网的普及与网络直播的火爆,现在人人都能做网络直播,做网络直播可以采用手机APP做直播,也可以采用PC端的软件来做直播。由于手机APP通常是平台绑定的,因此用手机做直播只能在该APP绑定的平台进行发布,无法搭建自己的网络直播平台。在此笔者仅以如何搭建自己的直播平台的思路来发表意见。笔者从事网络直播已经5年多了,从2011年开始,笔者就一直从事网络直播平台的维护,期间积累了些许粗浅的经...原创 2016-09-02 19:03:28 · 27528 阅读 · 2 评论 -
Android Activity onDestroy() 不回调的解决方式
用Activity的时候,会发现如下问题: 有时候会发现Activity的onDestroy方法回调不执行,或者延时执行,比较缓慢(可以达到好几秒钟之后才调用),即使之前使用finish方式关闭Activity也一样onDestroy回调慢带来什么问题呢? 有可能再次打开Activity的时候,都走完了onCreate,onResume之后上一次的onDestroy方法才被调用,想...原创 2018-08-10 21:33:07 · 8804 阅读 · 0 评论 -
Webrtc 多人视频会议系统 服务器 Licode 介绍
WebRTC又称 web实时通信,主要是为了扩展浏览器的功能,使浏览器能够进行实时音视频通信,不同的浏览器对Webrtc的实现代码也许不同,但Google的浏览器将Webrtc的实现代码开源了,以至于很多人一听到Webrtc就联想到Google的开源实现,以至于误以为使用Webrtc就非常难,因为Webrtc的实现都是C/C++代码,让很多人望而生畏。其实我们只需要懂得浏览器端的Ja...原创 2018-04-14 16:02:07 · 8385 阅读 · 0 评论 -
Flash实现Websocket的跨域问题-安全沙箱问题解决办法
笔者在开发一款大型的直播交互平台时采用了Websocket技术来实现文字、弹幕与语音的交互,当前主流的浏览器都内建了Websocket的支持,因此直播平台在大多数浏览器上运行良好。但由于平台需要支持IE8(或以下版本)浏览器,由于IE没有内置的Websocket支持,因此考虑采用Flash实现一个代理层来支持Websocket,当Flash代码实现好后在IE中一运行,发现总是提示安全沙箱冲突,如下...原创 2017-08-25 11:54:00 · 4342 阅读 · 2 评论 -
免费直播编码软件应用技巧
本文对一款免费直播编码软件进行了介绍,主要介绍了如何自己搭建直播系统,视频直播编码系统的软件与硬件环境,尤其是采集卡的选择,对初学者朋友或许有益,因此在这里转发这篇博文。转载 2016-11-11 23:38:55 · 3995 阅读 · 0 评论