今天上网时偶尔发现这个在我脑海里疑惑的问题的答案。

H.264 Video Types

The following media subtypes are defined for H.264 video.

Subtype FOURCC Description
MEDIASUBTYPE_AVC1 'AVC1' H.264 bitstream without start codes.
MEDIASUBTYPE_H264 'H264' H.264 bitstream with start codes.
MEDIASUBTYPE_h264 'h264' Equivalent to MEDIASUBTYPE_H264, with a different FOURCC.
MEDIASUBTYPE_X264 'X264' Equivalent to MEDIASUBTYPE_H264, with a different FOURCC.
MEDIASUBTYPE_x264 'x264' Equivalent to MEDIASUBTYPE_H264, with a different FOURCC.

The main difference between these media types is the presence of startcodes in the bitstream. If the subtype is MEDIASUBTYPE_AVC1, thebitstream does not contain start codes.

H.264 Bitstream Without Start Codes

The MP4 container format stores H.264 data without start codes.Instead, each NALU is prefixed by a length field, which gives thelength of the NALU in bytes. The size of the length field can vary, butis typically 1, 2, or 4 bytes.

When start codes are not present in the bitstream, the following media type is used.

Major type MEDIATYPE_Video
Subtype MEDIASUBTYPE_AVC1
Format type FORMAT_MPEG2Video

The format block is an MPEG2VIDEOINFO structure. This structure should be filled in as follows:

  • hdr: A VIDEOINFOHEADER2 structure that describes the bitstream. No color table is present after the BITMAPINFOHEADER portion of the structure, and biClrUsed must be zero.
  • dwStartTimeCode: Not used. Set to zero.
  • cbSequenceHeader: The length of the dwSequenceHeader array in bytes.
  • dwProfile: Specifies the H.264 profile.
  • dwLevel: Specifies the H.264 level.
  • dwFlags: The number of bytes used for the length field that appears before each NALU. The length field indicates the size of the following NALU in bytes. For example, if dwFlags is 4, each NALU is preceded by a 4-byte length field. The valid values are 1, 2, and 4.
  • dwSequenceHeader: A byte array that may contain sequence parameter set (SPS) and picture parameter set (PPS) NALUs.

The MP4 container might contain sequence parameter sets (SPS) orpicture parameter sets (PPS) as special NAL units in file headers or ina separate stream (distinct from the video stream). When the format isestablished, the media type can specify SPS and PPS NAL units in the dwSequenceHeader array. If cbSequenceHeader is greater than zero, dwSequenceHeaderis the start of a byte array containing SPS and PPS NALUs, delimited by2-byte length fields, all in network byte order (big-endian). It ispossible to have both SPS and PPS, only one of these types, or none.The actual type of each NALU can be determined by examining thenal_unit_type field of the NALU itself.

When this media type is used, each media sample starts at thebeginning of a NALU, and NAL units do not span samples. This enablesthe decoder to recover from data corruption or dropped samples.

AVC1与H264的差别相关推荐

  1. 技术贴:解码时AVC1和H264的差别

    我一直疑问为什么有些视频解码时显示格式是:H264,大部分又是:AVC1 我在搜索编程资料时在微软的msdn上发现的: 原文:http://msdn.microsoft.com/en-us/libra ...

  2. AVC1和H264的区别及利用

    MP4的视频H264封装有2种格式:h264和avc1,对于这个细节,很容易被忽略.笔者也是在改编LIVE555流媒体时,增加mp4文件类型支持时遇到了该问题.(一)首先,从原理上了解一下这2种格式的 ...

  3. MP4文件两种格式AVC1和H264的区别及利用FFMPEG demux为h264码流事项

    原文:http://www.mworkbox.com/wp/work/314.html MP4的视频H264封装有2种格式:h264和avc1,对于这个细节,很容易被忽略.笔者也是在改编LIVE555 ...

  4. (转)MP4文件两种格式AVC1和H264的区别及利用FFMPEG demux为h264码流事项

    出自:http://www.mworkbox.com/wp/work/314.html 2013-05-04 MP4的视频H264封装有2种格式:h264和avc1,对于这个细节,很容易被忽略.笔者也 ...

  5. 技术贴:解码时AVC1和H264的区别

    我一直疑问为什么有些视频解码时显示格式是:H264,大部分又是:AVC1 我在搜索编程资料时在微软的msdn上发现的: 原文:http://msdn.microsoft.com/en-us/libra ...

  6. AVC1与H264的区别

    今天上网时偶尔发现这个在我脑海里疑惑的问题的答案. H.264 Video Types The following media subtypes are defined for H.264 video ...

  7. H265与H264的差别

    H265的优点 最大支持64*64的宏块大小 H264最大支持16*16的宏块大小,主要以宏块进行编码(每个宏块内部区别不大) H265在细节表达上会比H264更清楚,在像素一致的情况下,H265的压 ...

  8. H264/AVC视频解码时AVC1和H264的区别

    The following media subtypes are defined for H.264 video.

  9. 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式

    编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...

最新文章

  1. ATS统计量proxy.node.client_throughput_out的单位调研
  2. ii 第七单元 访问网络共享文件系统
  3. Aria2 使用手札
  4. 人工智能如何有效地运用于自然语言处理
  5. MDK5 JLINK配置流程
  6. 502 bad gateway
  7. 合理设置 让你的迅雷下载速度越来越快
  8. 【peoplesoft】Integration Gateway - General Error (158,10201)错误
  9. CuraEngine和Cura配置(Ubuntu18.04环境)
  10. 第二章 软件项目确立
  11. mybatis 开启日志记录 打印sql语句
  12. 支付宝扫福最佳攻略,你值得拥有
  13. android 5.0合并分区,中兴天极2 S291合并分区刷Android 5.1刷机教程
  14. 红绿灯单片机仿真;Keil和Proteus的联合使用仿真;包含免费资源
  15. 谷歌浏览器后提示Adobe Flash Player因过期而遭到阻止
  16. 基于知识元的外文专利文献知识描述框架
  17. 研发管理系列课程--2022年深圳产品平台与CBB技术管理
  18. 启元世界内推招聘(对标阿里P6-P7)
  19. Mac全部文件夹在哪?Mac 查看全部文件夹
  20. unable to qualify my own domain name

热门文章

  1. 微信开发之开发主要步骤
  2. 浅谈草根站长要怎么在互联网奋斗
  3. python怎么分块,python分块读文件
  4. 紫薯总览——AC代码+小题解
  5. 内存数据库、磁盘数据库、分布式数据库区别
  6. 【C++】模板template
  7. 使用 2to3 将代码移植到 Python 3
  8. ubuntu下刻录光盘
  9. 想从事运维岗位应该学习什么技能?谁能告诉一下?
  10. CPU 偏高,和linux常用命令