音视频入门知识(四):封装篇

[复制链接]
发表于 2025-11-19 02:26:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
⭐四、封装篇

H264封装成mp4、flv等格式,那为什么必要封装?
​        h264也能播放,但是按照帧率举行播放,大概禁绝
★FLV

**FLV(Flash Video)**是一种用于传输和播放视频的容器文件格式。FLV 格式广泛应用于流媒体和网页视频播放,尤其在 Flash 技能盛行时期,是视频流媒体的尺度格式之一。FLV 格式布局简朴、文件体积小,恰当网络传输。
特点:

  • FLV 作为容器格式,可以封装视频、音频和元数据。通常情况下,FLV 中的视频流编码为 H.264,音频流编码为 AAC 或 MP3。
  • FLV 文件体积较小,数据流封装服从高,恰当网络视频播放,可以大概淘汰耽误,便于在带宽较低的情况卑鄙畅播放。
  • 计划用于流媒体,FLV 文件支持按时间戳分块封装,便于播放时随时从恣意位置读取和加载数据,增强了网络流媒体传输的稳固性。
  • FLV 可支持渐进式下载(Progressive Download),边下载边播放
播放过程:在流媒体播放过程中,FLV 文件按照上述标签次序依次传输。播放器读取并分析文件头,然后根据标签中的时间戳同步音频和视频。脚本标签包罗的元数据会在播放条件供干系信息,而每个标签的范例和数据巨细字段用于分析和播放音视频内容。
封装格式

文件头(Header) + 前一个标签巨细(Previous Tag Size)+ 标签(Tag)
文件头(9B)
用于标识文件格式和版本信息

  • Signature:固定的三个字节 FLV,用于标识这是一个 FLV 文件。
  • Version:表现 FLV 的版本,通常为 0x01。
  • Type Flags:指示文件中是否包罗音频(Audio)和视频(Video)数据。
  • Data Offset:表现 FLV 文件头的长度。

FLV Body = Previous Tag Size + Tag
Previous Tag Size : 4 字节字段,表现前一个标签的巨细。这一字段的作用是便于分析器快速跳到下一个标签的位置。
Tag = Tag Header + Tag Data

  • Tag Type:表现标签范例(0x08 表现音频标签,0x09 表现视频标签,0x12 表现脚本/元数据标签)。
  • Data Size:表现该标签的数据部门的巨细。
  • Timestamp:用于同步音视频的时间戳。对于视频文件,这个时间戳决定了标签在播放中的位置。
  • Stream ID:流标识,一样寻常设置为 0,保存供将来利用。
  • Tag Data:实际的数据部门,包罗音频、视频或元数据。

★TS

一种流媒体传输格式,全称为 MPEG-TS(MPEG Transport Stream),广泛用于数字视频和音频的传输。计划目标在于有用传输视频和音频数据,同时包管在差异网络情况下的传输稳固性。
特点:
封装布局:TS 是一种容器格式。每个流在 TS 中都作为一个独立的“包”(packet)传输,通常每个包的巨细为 188 字节,便于同步和处置处罚。
高容错性:TS 包罗冗余数据和错误校验信息,使其可以大概在传输中发现和改正错误,恰当在不稳固的网络情况下利用
实时流传输:TS 具有实时传输的特点,通过参加时间戳来包管音视频同步(PTS/DTS),可以大概支持音视频的实时流式播放。
机动性:可以封装多种格式的音频(如 AAC、MP3)和视频(如 H.264、H.265),恰当多路流媒体传输,也支持动态切换多个音视频流。*
分层布局

分层布局是分层布局是基于 ISO/OSI 模子,专为高效、多路传输计划。它分为三层布局,以支持多路音视频和数据流的实时、可靠传输:,专为高效、多路传输计划。它分为三层布局,以支持多路音视频和数据流的实时、可靠传输:

  • ES层
    内容:最底层的数据流,包罗压缩编码后的原始音视频数据,如 H.264 编码的图像数据或 AAC 编码的音频数据。
    作用:不包罗任何时间戳或辨认信息,重要专注于原始的音视频内容编码
    一个 ES 流中只包罗一种范例的数据(视频,或音频,或字幕)。
  • PES层
    内容:PES 层在 ES 层的根本上增长了时间戳(PTS/DTS)等信息,确保音视频同步。
    作用:将原始的 ES 数据打包成更小的片断,便于在传输流中处置处罚;PES 包头还包罗信息以区分视频、音频或其他数据。
    ES数据包比力大,参加PES头时需将ES举行分割,只在第一个分割的ES上加PES头(类似于传输层的做法)
  • TS层
    内容:在 PES 层的根本上参加了数据流的辨认信息(PID)和传输干系的控制信息。
    作用:TS 层是传输的终极封装格式,将 PES 包切分成 188 字节的 TS 包,每个包中包罗同步字、PID、错误校验等信息,确保在网络传输中可以大概规复数据,便于多路流的管理与传输。
    ts包巨细固定为188字节,ts层分为三个部门:ts header、adaptation field、payload。

    • TS Header:控制和辨认,确保吸收端辨认数据包范例温次序。
      包罗的字节内容:

      • 同步字节(Sync Byte):固定为 0x47,用于包头辨认和数据同步。
      • 传输错误指示(TEI):用于标识传输错误。
      • 有用负载单位起始指示(Payload Unit Start Indicator, PUSI):指示是否为新的 PES 包的起始。
      • ★PID(Packet Identifier):辨认和区分差异范例的数据流,如音频、视频或信令数据(PAT/PMT 等)。

        • pid 决定了负载内容的范例,重要包罗:PAT表,PMT表,视频流,音频流。常用的PID值:

          • PAT 0x0000
            作用:PAT 是节目关联表,包罗 TS 流中全部节目标 PID 信息。
            用途:资助吸收端找到每个节目标 PMT(Program Map Table)位置,明确流中有哪些节目以及各节目对应的 PMT PID。
          • PMT:PMT 是节目映射表,通过 PAT 表找到 PMT PID 后,可以分析某个节目具体的音视频流的 PID。
          • 视频流 PID:音视频的 PID 在 PMT 中界说,通常为一个特定节目中的视频数据流。吸收端通过 PMT 获取特定节目标视频 PID。
          • 音频流 PID:与视频流类似,PMT 还界说了音频流的 PID,吸收端通过 PMT 找到并解码音频流。


      • 控制字段:包罗优先级、加扰控制和连续计数器等,用于数据流的管理和加密。

    • Adaptation Field:用于同步和增补,确保数据流的时间精确性。
    • Payload:实际的音视频数据或信令信息,是 TS 包中最焦点的内容。


★MP4

常用的多媒体容器格式,广泛用于存储音频、视频、字幕以及元数据
特点:

  • 容器格式:MP4 自己不是编码格式,而是一个封装格式,可以包罗多种编码格式的音视频内容(比方 H.264、AAC)。
    高兼容性:MP4 格式在各种装备(如手机、电脑、电视)宁静台上都有很高的兼容性,广泛支持。
    流媒体支持:MP4 支持流式传输,可以用于网络情况中按需播放音视频。
    机动的内容组合:MP4 容器可以同时包罗视频、音频、字幕和元数据,方便实现多语言字幕、章节、封面等丰富内容。
MP4的文件布局

MP4 文件布局基于 box(盒子) 的概念,每个box包罗差异的信息,这些box以树形布局的方式构成。每个 Box 都包罗一个 Header(头部) 和 Payload(有用载荷)。
box 由 header 和 body 构成,header 指明 box 的 size 和 type。size 是包罗 box header 的整个 box 的巨细。

  • Header:包罗盒子的巨细和范例。

    • box type,通常是4个ASCII码的字符如“ftyp”、“moov”等

      • ftyp(File Type Box):指定 MP4 文件的格式、兼容性和品牌,位于文件开头。它形貌了文件的主品牌(Major Brand)、次要版本(Minor Version)、兼容品牌(Compatible Brands)。
      • moov(Movie Box):存储文件级的元数据,包罗有关整个媒体文件的信息。
      • mdat(Media Data Box):存储音视频实际数据的 Box。


  • Payload:存储媒体数据或控制信息,可以嵌套其他 Box
!
MP4 文件播放流程

播放器在播放 MP4 文件时通常会按以卑鄙程读取:

  • 读取 ftyp Box:判定文件格式和兼容性。
  • 读取 moov Box:获取文件的元数据和轨道信息。
  • 读取 mdat Box:加载实际的音视频数据,并根据 moov 中的索引信息解码播放。
  • 分段播放(moof/mfra):对于流媒体或按需播放的 MP4 文件,播放器可以利用 moof 和 mfra 快速访问并流式播放片断。

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表