美文网首页
12期_视频封装格式MP4(1)

12期_视频封装格式MP4(1)

作者: 萧修 | 来源:发表于2023-09-20 01:05 被阅读0次

MP4由许多Box/FullBox组成,每个box包含了Header和Data。

FullBox是Box的扩展,其包含的Header增加了version(1byte)和flags(3byte)。

Header

Header包含size(4byte)和type(4byte)。

size用来描述整个box的长度,如果size为1,则表示box长度需要更多bits位来描述,在后面会有一个8字节的largesize用来描述box的长度,如果size为0,表示box为文件的最后一个box

type描述box的类型,通常为4个ASCII码的字符如“fytp”,“moov”等,这些box type都是已经预定义好的,表示固定的含义,如果是“udid",表示该box为用户自定义扩展类型,如果box type是未定义的,应该将其忽略。

1byte=bit

Data

负载数据

Box数据定义

Box数据格式定义

aligned(8) class Box (unsigned int(32) boxtype optional unsigned[8][16] extended_type) {
     unsigned int (32) size;
     unsigned int (32) type = boxtype;
     if (size == 1) {
         unsigned int(64) = largsize;
     } else if (size == 0) {
         //box extends to end of file box的最后一个
     }
     
     if (boxtype == "udid") {
         unsigned int[8][16] = usertype = extended_type;
     }
 }

FullBox数据格式定义

aligned(8) class FullBox (unsigned int(32) boxtype ,
                          unsigned int(8) v,bit(32)f) extends Box(xoxtype) {
    unsigned int (8) version = v;
    bit(64) flags = f;
}

Box有不同的类型

File Type Box解析

ftyp即File Type Box,包含文件的类型、版本、兼容信息等,在一个MP4文件中,该Box有且只有一个,并且需要尽可能放在文件最开始的位置

ftyp数据格式定义如下

aligned(8) class FileTypeBox extends Box('ftyp') {
    unsigned int(32) major_brand;
    unsigned int(32) minor_version;
    unsigned int(32) compatible_brands[];//
}

以一段MP4文件分析ftyp的数据定义,ftyp是Box的扩展,前面会占据8个字节的头部,往下连续的4个字节是major_brand,以此类推

MP4文件从上向下排序为ftyp、moov、

相关文章

  • iOS-多媒体-视频的一些基础信息

    1、视频的大小2、视频时长3、视频的格式 :MP4、MOV、AVI、RMVB、FLV这些播放格式其实都是封装格式,...

  • part03_牛刀小试_视频解码原理-使用ffmpeg将MP4转

    一、视频基础知识 1.封装格式mp4 rmvb avi ...等我们常见的视频播放格式他同时封装了视频和音频数据我...

  • ffmpeg处理流程

    [1] 输入文件:(mp4,flv封装格式文件)demuxer:打开封装格式文件 [2] 编码数据包 (音视频,字...

  • 视频播放流程

    1.拿到封装格式数据(MP4、MKV、FLV...)2.解封装格式数据3.得到压缩数据(音频压缩数据和视频压缩数据...

  • 视频格式

    视频:视频编码数据+音频编码数据 视频格式:视频封装格式(flv、mov、MP4) 视频编码格式:h264、h26...

  • 直播知识点

    一、封装格式 1、因为来源的不同,视频会有不同的格式,分别用不同的后缀表示,avi/rmvb/mp4等,这些格式代...

  • FFmpeg音视频解封装格式

    一、什么是封装格式 封装格式也称为容器,用于打包音频、视频以及字幕等等,比如常见的容器有 MP4、MOV、WMV、...

  • 如何转换视频格式?方法教给你!

    如何转换视频格式?视频的封装格式有很多,RMVB、MKV、AVI、MP4、FLV、TS 等等,所以网上下载的...

  • 28_FFmpeg音视频解封装格式

    一、什么是封装格式 封装格式也称为容器,用于打包音频、视频以及字幕等等,比如常见的容器有MP4、MOV、WMV、F...

  • 视频与FFMPEG那些事

    1. 基本概念 1.1 容器(Container) 容器也就是封装格式,例如MP4。容器中主要包含以下内容: 视频...

网友评论

      本文标题:12期_视频封装格式MP4(1)

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