rtmp
darkdragonking
这个作者很懒,什么都没留下…
展开
-
目前最好的,以rtmp发送264到red5服务器的代码,darkdragonking亲测可用--《到H264视频通过RTMP直播》
前面的文章中提到了通过RTSP(Real Time Streaming Protocol)的方式来实现视频的直播,但RTSP方式的一个弊端是如果需要支持客户端通过网页来访问,就需要在在页面中嵌入一个ActiveX控件,而ActiveX一般都需要签名才能正常使用,否则用户在使用时还需要更改浏览器设置,并且ActiveX还只支持IE内核的浏览器,Chrome、FireFox需要IE插件才能运行,因此会转载 2014-11-07 11:09:38 · 3009 阅读 · 0 评论 -
使用librtmp进行H264与AAC直播
libx264版本是128libfaac版本是1.281、帧的划分1.1 H.264帧对于H.264而言每帧的界定符为00 00 00 01或者00 00 01。比如下面的h264文件片断这就包函三帧数据00 00 00 01 67 42 C0 28 DA 01 E0 08 9F 96 10 0000 03 00 10 00 00 03 01 48转载 2014-11-07 09:37:39 · 918 阅读 · 0 评论 -
FLV文件格式分析
最近做RTMP Client,费力很大功夫终于把H264码流推送到Red5服务器上,封装包的时候用到FLV文件格式,下面是结合FLV Format Specification进行的分析。1. FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。转载 2014-11-06 17:13:39 · 673 阅读 · 0 评论 -
RTMPdump(libRTMP) 源代码分析大汇总
从高手那里转载来的,因为人家都直接弄好了链接了,我直接抄的链接,作为尊重转载 2014-10-31 16:56:40 · 651 阅读 · 0 评论 -
rtmp协议简单解析以及用其发送h264的flv文件
Adobe公司太坑人了,官方文档公布的信息根本就不全,如果只按照他上面的写的话,是没法用的。按照文档上面的流程,server和client连接之后首先要进行握手,握手成功之后进行一些交互,其实就是交互一些信息以确认大家都是用的同一个协议,交互成功之后就开始传数据了。 首先说下rtmp协议包的格式。握手之后,rtmp传输一个数据默认的长度是128bytes,这128byte转载 2014-10-31 13:35:19 · 627 阅读 · 0 评论 -
librtmp实时消息传输协议(RTMP)库代码浅析
没事碰到了librtmp库,这个库是ffmpeg的依赖库,用来接收,发布RTMP协议格式的数据。代码在这里:git clone git://git.ffmpeg.org/rtmpdump先看一段通过librtmp.so库下载RTMP源发布的数据的例子,从rtmpdump中抽取出来。使用的大体流程如下:RTMP_Init主要就初始化了一下RTMP*rtmp变量的成员。RTMP转载 2014-10-31 16:36:24 · 1798 阅读 · 0 评论 -
RTMP协议分析 二、AMF数据
Rtmp包默认的最大长度为128字节,(或通过chunksize改变rtmp包最大长度), 当AMF数据超过128Byte的时候就可能有多个rtmp包组成,如果需要解码的rtmp包太长则被TCP协议分割成多个TCP包.那么解码的时候需要先将包含rtmp包的tcp封包合并, 再把合并的数据解码,解码后可得到amf格式的数据,将这些AMF数据取出来就可以对AMF数据解码了.RTMP封包包括包头和A转载 2014-10-30 14:47:36 · 663 阅读 · 0 评论 -
关于rtmp封包中数据类型为0x16的封包
使用rtmp协议从FMS3中拉音视频数据的时候,会收到AMFType=0x16的封包,这种包在FMS2中从没有出现过.rtmp包头的第8个字节就是AMFType,也就是数据类型。例如AMFType=0x08表示音频包,AMFType=0x04表示Ping包等等。FMS3中为了实现H.264数据的直播而增加了一个数据类型,这个类型的值为0x16。AMFType=0x16的包中既包含了音频帧也包含转载 2014-10-31 09:52:59 · 684 阅读 · 0 评论 -
RTMP中FLV流到标准h264、aac的转换
这段时间,工作上的需要,在RTMP上做了flv流到标准h264、AAC的转换,服务器是开源项目CRTMPSERVER,客户端flex编写,视频编码h264,音频编码AAC,现将一些协议相关的东西记录如下。 一、分析FLV数据 我们先拿一个flv文件来简单分析一下flv数据的格式 flv标准文档下载地址http://www.cnblogs.com/chef转载 2014-10-30 18:54:52 · 743 阅读 · 0 评论 -
C++实现RTMP协议发送H.264编码及AAC编码的音视频
RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,最初由Macromedia 公司创建,后来归Adobe公司所有,是一种私有协议,主要用来联系Flash Player和RtmpServer,如FMS, Red5, crtmpserver等。RTMP协议可用于实现直播、点播应用,通过FMLE(Flash Media Live Encoder转载 2014-10-31 10:15:27 · 815 阅读 · 0 评论 -
RTMP协议分析 一、RTMP包头
RTMP协议分析 一、RTMP包头原创RTMP协议 封包 参考Red5RTMP协议封包 由一个包头和一个包体组成,包头可以是4种长度的任意一种:12, 8, 4, 1 byte(s).完整的RTMP包头应该是12bytes,包含了时间戳,Head_Type,AMFSize,AMFType,StreamID信息, 8字节的包头只纪录了时间戳,Head_Type,AMFSize,AM转载 2014-10-30 14:34:44 · 761 阅读 · 0 评论 -
RTMP协议以及提取RTMP视频流组成H264视频文件
首先我们获得h264的流,在监听里,我们通过参数可以获得RTMP包 IStreamPacket,调用getData()方法直接获得包数据 放入IOBuffer。以下是提取并修改数据存成h264文件的步骤1. 添加监听 IStreamListener2. 通过IOBuffer的put函数将每次获得的包数据放入新的IObuffer3. 在流结束时将IOBuffer存成文件转载 2014-10-31 10:12:39 · 739 阅读 · 0 评论 -
通过RTMP发送264流(文件或帧)
H264视频通过RTMP发送 题外话,通过RTSP(Real Time Streaming Protocol)的方式来实现视频的直播,但RTSP方式的一个弊端是如果需要支持客户端通过网页来访问,就需要在在页面中嵌入一个ActiveX控件,而ActiveX一般都需要签名才能正常使用,否则用户在使用时还需要更改浏览器设置,并且ActiveX还只支持IE内核的浏览器,Chrome、F转载 2014-10-31 09:28:08 · 2681 阅读 · 0 评论 -
RTSP流媒体播放器实现
最近需要做一个RTSP流媒体播放器,研究了一下,封装了一个RTSP播放类CRTSPPlayer,解码库采用ffmpeg。由于需求比较简单,时间也有限,目前只实现了播放、停止、暂停几个基本的接口。下面是基于CRTSPPlayer类实现的简单RTSP播放器。 目前视频只测试了H264格式,其它格式的视频还转载 2014-11-07 11:26:48 · 1597 阅读 · 0 评论