需要从硬压卡上获取的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,
- };
分享到:
相关推荐
该工具可以直接打开H264类型的裸流或者MP4类型的文件,可以通过时间轴查看每一帧的画面以及帧信息,简单好用
H264裸流帧解码器,可将H264裸流帧解码为opecv可使用的Iplimage类型 使用:先调用Init,传入正确的参数,然后调用H264toIplimage即可
2 将rtp h264 lua拷贝到Wireshark的安装目录下 3 需要启动对Lua的支持 默认不启动对Lua的支持 编辑 init lua文件 在“disable lua true; ”这一行前添加注释符“ ” 然后在文件的最后添加一行 dofile "rtp h...
android H264解码库,有三种数据类型输出,可在初始化时选择,库文件编译即可使用
视频分析工具H264,码流分析,可视化界面,直观的方便的分析帧类型
FLV格式编码测试视频H264、H263视频+MP3音频 用于解码相应的测试
多种视频测试文件(TS、h264_mp4、h265_mp4、mov、mpg、flv等共计17种格式)
如果在做rtsp的话,可能会需要了解h264的RTP负载结构
对h264中的nal单元、类型以及码流中的相应字符意义进行了解释
可以提取h264流中的I帧和其他类型帧,并可以重新组装起来,还原出原来的h264流,使用了x264中代码,参考了网络上一位仁兄的代码
实现对一个H264文件的丢包功能,有固定的误码图样,并得到所丢的包和包里面长度、优先级和类型信息。
RTP打包与解析,荷载类型包括PS和H264
针对H264的视频文件分析. 包括,Elecard StreamEye Tools . eseye.pyuv.SAnalyzer.VideoQE
用FFmpeg实时解码的测试代码,X264调用摄像头编码将数据复制到内存空间,解码器读取后直接解码,可以用来熟悉流程。
MATLAB实现H.264视频读取 帧间预测 分块类型比较
新一代视频压缩编码标准H.264(毕厚杰) 新一代视频压缩编码标准--H.264/AVC 文献类型:专著 责任者:毕厚杰等 出版、发行者:人民邮电出版社 出版发行时间:2009 来源数据库:馆藏中文资源 分享到: 文献传递 详细...
这是在网上找的资料,是关于H264的RTP负载格式中文简单说明。整理了一下格式,便于阅读。对于刚涉及这方面研究的人,不妨先看看这个资料,再具体的去看相关的协议文档。
通用视听业务的先进视频编码,h.264中文文档。 本建议书|国际标准是由已有视频编码标准发展而来(H.261,H.262和H.263),以适应各种应用,如视 频会议,数字存储媒体,电视广播,互联网流式传输和通信等,对运动图像...
Elecard StreamEye Studio用于H264编码文件的分析 1. Elecard StreamEye Studio是一款功能强大专业的多媒体视频优化压缩编码工具,它可以该显示多媒体文件帧,它们的大小,类型,时间,位置和顺序流;比特率,以及...