美文网首页
MPEG-4格式和H.264(ISO14496)入门--Appl

MPEG-4格式和H.264(ISO14496)入门--Appl

作者: applecai | 来源:发表于2020-06-27 20:25 被阅读0次

    怎么说我也算是做协议开发的,14229,15765是我的专业内容。但是关于解码和文件格式一般都是有协议的,网上搜索了下spec名称为ISO14496,有一系列的白皮书呢!

    快速入门了下MPEG4标准中的文件格式,box是一个主要概念。网上有ISO协议下载,也有现成的解析分析工具。我了解一个大概,比如moov box只有一个,包括了音频和视频的总信息。trak box至少有一个,一般为2个,一个为音频一个为视频信息。utda box保存的是帧的数据。

    image.png

    一,MPEG-4媒体文件主要信息

    1. MPEG-4标准为ISO14496系列,MP4格式在-12文件中可以看到。
    2. offset
      moov box中记录的每帧音视频数据位置信息,实际上都在mdat box中,通过解析moov box来获取到每帧音视频数据具体位置后,使得播放器能方便的拖拉进度条。
    3. DTS和PTS
      avcC box指定了该流的编码类型为H264
      stsc stsz stco三个box用于保存每帧视频或音频数据在文件中的保存位置。
      stts stss ctts三个box用于保存媒体数据和时间戳的对应关系。
    4. IPB帧的概念
      I帧表示关键帧,P帧为向前引用,B帧为双向(前后)引用。

    二,MPEG-4媒体文件参考网址

    1.MPEG-4标准
    2.mp4文件格式解析
    3.MP4格式解析二 ftyp/mvhd
    4.mp4封装格式各box类型讲解及IBP帧计算
    5.MP4格式分析之我见
    6.IBP帧的定义

    三,H.264协议

    其实就是14496-10。H264功能分为两层,VCL(视频编码层)和 NAL(网络提取层)
    SODB 数据比特串 ---->最原始的编码数据,即VCL数据
    RBSP  原始字节序列载荷
    EBSP  扩展字节序列载荷 (会填充0x30)


    image.png

    H264的码流分6层,其中宏块和IPB相关
    1帧 = 1个或n个片
    1片 = n个宏块
    1宏块 = 16x16yuv数据


    image.png

    宏块结构


    image.png

    mb_type 确定该 MB 是帧内或帧间(P 或 B)编码模式,确定该 MB 分割的尺寸,mb_pred 确定帧内预测模式


    image.png

    解码顺序,由于B依赖前后帧,所以要先把后面的P帧先解码。若是网络直播,一般B帧出现的比较少,需要保证实时性。

    运动补偿,帧内预测,残差补偿等算法还不太清楚,之后慢慢了解,慢慢看paper。今天先入门。

    四,H.264解码工具

    H.264 Visa 和StreamEye我都用了下。

    五,参考网址

    如何学习H264协议
    H264基础简介
    H264格式 详细介绍

    相关文章

      网友评论

          本文标题:MPEG-4格式和H.264(ISO14496)入门--Appl

          本文链接:https://www.haomeiwen.com/subject/tndvfktx.html