H.264数据流格式
来源:互联网 发布:js 将数组变为字符串 编辑:程序博客网 时间:2024/05/20 09:08
H.264数据流格式
H264码流的两种打包方式,一种为Annex-b byte stream format的格式,字节流格式,这个是绝大部分编码器的默认输出格式,就是每个帧的开头的3~4个字节是H264的start_code,0x00000001或者0x000001,即NALU数据+开始前缀(00000001或000001),针对H.320电话会议。另一种是原始的NAL打包格式,就是开始的若干字节(1,2,4字节)是NAL的长度,而不是start_code,此时必须借助某个全局的数据来获得编码器的profile,level,PPS,SPS等信息才可以解码。
RTP格式:NALU数据+20个字节的类似的并不符合RTP协议的RTP头。针对IP网络的RTP打包方式。为原始的NAL打包格式,就是开始的若干字节(1,2,4字节)是NAL的长度,而不是start_code,此时必须借助某个全局的数据来获得编码器的profile,level,PPS,SPS等信息才可以解码。
H.264协议只规定了字节流格式,没有规定 RTP 格式。可能也是因为这个原因,JM 的 RTP 格式没有被用到任何场合场合中,成为了摆设。
一共有两种起始码:3字节的0x000001和4字节的0x00000001
3字节的0x000001只有一种场合下使用,就是一个完整的帧被编为多个slice的时候,包含这些slice的nalu使用3字节起始码。其余场合都是4字节的。
H.264 的两种码流格式:
GetAnnexbNALU 处理字节流格式的码流
GetRTPNALU 处理 RTP 格式码流
字节流格式的码流主要用于存储,例如制作 DVD(当然现在的 DVD 还不是用 H.264)
RTP 格式码流主要用于网络传送,例如在线看电影
最简单RTP包包括RTP包头、H.264扩展头和H.264码流
码流在JM里会首先打包到NALU里去,之后要把NALU中的相关信息变成H.264扩展头,然后再加上一个RTP包头,就变成了一个RTP包。
H.264扩展头就一个字节,三个信息。
RTP包头12和16字节两种,JM都先读四个字节,再读四个字节时间戳,再就是buffer,之后还有四个字节的信息源标识符,一共12字节才对。
0 0
- H.264数据流格式
- H.264数据流格式
- H.264 格式
- H.264帧格式
- H.264格式分析
- H.264格式分析
- 将摄像头原始RGB数据流编码成H.264文件
- 将摄像头原始RGB数据流编码成H.264文件
- 将摄像头原始RGB数据流编码成H.264文件
- mpeg1数据流格式
- H.264 RTPpayload 格式------ H.264 视频 RTP 负载格式
- H.264 RTP payload 格式
- H.264 RTP payload 格式
- H.264 RTP payload 格式
- H.264 RTP payload 格式
- H.264 RTP payload 格式
- H.264 RTP PAYLOAD 格式
- H.264 RTP payload 格式
- git tag 打标签
- Android二维码扫描、生成
- Android 进阶 教你打造 Android 中的 IOC 框架 【ViewInject】 (上)
- Android---绘图
- iphone个人热点找不到
- H.264数据流格式
- git:将某个commit或其中某个文件修改提取出来
- Linux和Windows生成系统时间命名的文件
- oracle查看dbid
- javascript判断输入是否为空
- 10019---浅谈UML的概念和模型之UML九种图
- Learn Python The Hard Way ex41中的程序
- Android 进阶 教你打造 Android 中的 IOC 框架 【ViewInject】 (下)
- View too large to fit into drawing cache when calling getDrawingCache()