- 浏览: 27074 次
最新评论
将H.264使用RTMP打包后发送给RED5/FMS进行实时发布
- 博客分类:
- 技术杂绘
将H.264使用RTMP打包后发送给RED5/FMS进行实时发布
2011年02月25日
需要从硬压卡上获取的NALU封装成RTMP协议格式发送给RED5/FMS进行实时发布.
RTMP中传送 H.264使用的视频封装格式既是 FLV规范 中的 VideoTag
Frame Type UB [4]
Type of video frame. The following values are defined:
1 = key frame (for AVC, a seekable frame)
2 = inter frame (for AVC, a non-seekable frame)
3 = disposable inter frame (H.263 only)
4 = generated key frame (reserved for server use only)
5 = video info/command frame
CodecID UB [4]
Codec Identifier. The following values are defined:
2 = Sorenson H.263
3 = Screen video
4 = On2 VP6
5 = On2 VP6 with alpha channel
6 = Screen video version 2
7 = AVC
AVCPacketType F UI8
The following values are defined:
0 = AVC sequence header
1 = AVC NALU
2 = AVC end of sequence (lower level NALU sequence ender is
not required or supported)
CompositionTime SI24
IF AVCPacketType == 1
Composition time offset
ELSE
0
See ISO 14496-12, 8.15.3 for an explanation of composition
times. The offset in an FLV file is always in milliseconds.
在第一个RTMP Message的数据包中,需要发送 AVC sequence header , 也就是AVCDecoderConfigurationRecord
其中就包含有Profile / Level / SPS / PPS 等解码需要的信息
然后就开始发送NALU了。
NALU在一个RTMP Message可以发送1个或者多个。
根据 NALU的 reference idc 可以得出 帧类型 typedef enum { NALU_PRIORITY_HIGHEST = 3, NALU_PRIORITY_HIGH = 2, NALU_PRIORITY_LOW = 1, NALU_PRIORITY_DISPOSABLE = 0 } NaluRefIdc; 如果这个 VideoTag中含有 NALU_PRIORITY_HIGHEST 的NALU, 那么它的VideoTag的 Frame Type 应该是 FrameType_KeyFrame enum FrameType { FrameType_KeyFrame = 1, FrameType_InterFrame = 2, FrameType_DisposableInterFrame = 3, FrameType_GeneratedKeyFrame = 4, FrameType_VideoInfo = 5, };
发表评论
-
fieldBUS
2012-01-20 10:35 11392fieldBUS 2010年10月27日 ... -
Flash媒体服务器的强化指南
2012-01-20 10:34 714Flash媒体服务器的强化指南 2010年09月27日 ... -
FMS与FMLE视频会议
2012-01-20 10:34 1251FMS与FMLE视频会议 2010年08月04日 一、软 ... -
Flex 连接 FMS,测试代码。
2012-01-20 10:34 569Flex 连接 FMS,测试代码。 2011年01月14日 ... -
Eclipse插件大全 挑选最牛的TOP30
2012-01-19 15:36 843Eclipse插件大全 挑选最牛的TOP30 2010年08 ... -
cacti + nagios + ndoutility + nagvis安装及配置
2012-01-19 15:36 869cacti + nagios + ndoutility + n ... -
RHEL5.4使用CentOS5.5的yum源
2012-01-19 15:35 612RHEL5.4使用CentOS5.5的yum源 2010年0 ... -
用vim/gvim写django
2012-01-19 15:35 833用vim/gvim写django 2011年07月13日 ... -
2012年1月16日
2012-01-17 05:22 5842012年1月16日 8小时前 ... -
原来我们曾经想追求的东西,不过尔耳而已。
2012-01-17 05:21 644原来我们曾经想追求的东西,不过尔耳而已。 8小时前 ... -
经典摘要(二)
2012-01-17 05:21 618经典摘要(二) 8小时前 ... -
『2011.01.16』――四川.重庆的客户伤不起
2012-01-17 05:21 576『2011.01.16』――四川.重庆的客户伤不起 8小时前 ... -
小年,小随想
2012-01-17 05:21 605小年,小随想 8小时前 态度就和未来一样已不明朗多时 ... -
常见开发工具下载链接
2012-01-16 04:16 873常见开发工具下载链接 2010年06月11日 编程开发工 ... -
VC的相关资料收集
2012-01-16 04:16 1342VC的相关资料收集 2009年07月21日 大家好,欢迎 ... -
Qt+4.x+Open+Source+(MinGW)+for+Windows安装
2012-01-16 04:16 791Qt+4.x+Open+Source+(MinGW)+for+ ... -
Crystal Reports 10
2012-01-16 04:16 1388Crystal Reports 10 2010年05月27日 ... -
java
2012-01-16 04:16 702java 2010年11月10日 Name: flowb ...
相关推荐
将H264视频流打包成rtmp格式并发送,可以支持多路同时发送。该程序为dll
1:通过DirectShow和DirectSound捕获指定摄像头和麦克风的数据,并使用x264和aac编码后通过librtmp发布到指定的RTMP服务端(red5/fms等)。 2:支持将摄像头和麦克风数据录制到本地FLV文件中(h.264/aac)。 3:可自定义...
Qt基于librtmp推送H.264 详见博客:http://blog.csdn.net/caoshangpa/article/details/53125949
在网上找到的将h264通过rtmp发布到flash media server。Red5 Wowza 测试通过。该代码使用到了x264和librtmp。如果要编译该源码,请先配置好x264和librtmp。
Android采集视频用H264编码以RTMP协议发送到FMS服务器IVideoChat
RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,最初由Macromedia 公司创建,后来归Adobe公司所有,是一种私有协议,主要用来联系Flash Player和RtmpServer,如FMS, Red5, crtmpserver...
1)、拉取RTSP流转推RTMP,支持H265转H264。 2)、可选择使用javaCV推流、ffmpeg推流两种方式。 3)、javaCV仅支持拉去或推送H264压缩方式的流。 4)、ffmpeg采用命令的方式拉流和推流,支持H265和H264。 5)、...
rtmp 协议打包发送,发送给fsm。c++实现。 h264编码,
将h264裸流封装成flv格式后,通过rtmp协议发布到rtmp流服务器
rtmp 播放工具,支持H264 H265, 参考FFmpeg完成rtmp H265推流后,使用此工具测试OK. 工具同时支持将rtsp转码rtmp推送测试平台,比Wowza Streaming用着更方便,rtmp开发者值得拥有,具体开发问题也可留言讨论。谢谢
EasyPlayer.js-legacy.zip 支持rtmp流播放
使用video.js播放rtmp视频,亲测可用,注意一定要把代码放到服务器上运行!
基于rtmpdump的rtmp包转解码打包ts(h264+aac),通过rtmpdump收流,调用系统接口,转码音视频数据包成h264视频和aac的音频。供封转ts使用
1、本视频流为h264编码,流来源为海康摄像头。 2、本视频播放时长为3分03秒,几乎可以满足所有测试需要。 3、本视频以原有电影为素材进行剪辑加工而成。 4、本视频分辨率为:1920*1080,帧率为25。 5、本视频下载...
纯C++代码,读取H264文件到内存推流到RTMP流媒体服务器,关键使用libRTMP库封装成RTMP协议格式!方便初学者
本程序可以把摄像头视频和麦克风音频,录制为FLV文件,视频压缩采用H.264编码,音频压缩采用AAC编码,支持同步进行RTMP直播(服务器端需要FMS/WOWZA/RED5等)。可选择码率、分辨率、帧率、关键帧间隔等信息。1号教室...
centos 7下编译支持h.265的rtmp推流的ffmpeg的完整包 。https://blog.csdn.net/tidehc/article/details/107315284
h264测试文件,通过rtmpdump库推送到red5服务器
内存中H264数据加原始PCM音频数据封装FLV格式发布出rtmp
RTMP协议封 包 由一个...包体最大长度默认为128字节,通过chunkSize可改变包体最大长 度,通常当一段AFM数据超过128字节后,超过128的部分就放到了其他的RTMP封包中,包头为一个字节. 完整的12字节RTMP包头每个字节的含义: