【音视频基础】封装格式与编码数据

本文介绍了音视频的基础知识,重点关注封装格式的作用,分析了MPEG-TS和FLV两种格式的特点。同时,讲解了视频编码数据,以H.264为例,描述了其编码过程和数据结构。音频编码部分提到了AAC格式及其压缩方法。
摘要由CSDN通过智能技术生成

个人简介

📦个人主页:一二三o-0-O的博客
🏆技术方向:C/C++客户端(直播+音视频剪辑)
📣专栏目标:务实的掌握音视频相关专业知识
🧡如果对您有帮助的话辛苦点赞支持。👍👍👍

音视频基础专栏系列

(一)【音视频基础】音频基础理论
(二)【音视频基础】视频基础理论
(三)【音视频基础】封装格式与编码数据

ffmpeg专栏系列

(一)【ffmpeg】ffmpeg命令工具的使用
(二)【ffmpeg】视频解码器
(三)【ffmpeg】ffmpeg+SDL实现播放器

封装格式

封装格式的作用

  • 视频码流和音频码流按照一定的格式存储在一个文件中

MPEG-TS格式

  • 不包含文件头。数据大小固定(188Byte)的TS Packet构成。
    在这里插入图片描述

FLV格式

  • 包含文件头。数据由大小不固定的Tag构成。
    在这里插入图片描述
  • 可以使用FlvAnalyzer进行格式分析
    在这里插入图片描述
    如上图所示:可以清晰的看到FLV文件格式的两部分:FLV Header以及FLV Body
    • Signature:FLV(3 bytes) 签名字段占用三个字节
    • Version:1(1 byte) 文件版本占用一个字节
    • TypeFlagsReserved:0(5 bits) 0占用5位
    • TypeFlagsAudio:1(bit) 音频展示设置占用1位
    • TypeFlagsReserved:0(1 bits) 0占用1位
    • TypeFlagsVideo:1(bit) 视频展示设置占用1位
    • DataOffset(HeaderSize):9(4 bytes) 数据偏移(这个头的字节)占用4个字节

封装格式分析

  • 封装格式分析的工具:Elecard Format Analyzer
    在这里插入图片描述

视频编码数据

  • 视频编码的作用
    • 将视频像素数据(RGB,YUV等)压缩成视频码流,从而降低视频的数据量。

H.264格式

  • 格式简介
    • 数据由大小不固定的NALU构成
    • 最常见的情况下,1个NALU存储了一帧画面的压缩编码后的数据
      在这里插入图片描述
  • H.264压缩方法
    • 比较复杂。包含了帧内预测、帧间预测、熵编码、环路滤波等环节构成。
    • 可以将图像数据压缩100倍以上
    • 可以使用Elecard StreamEye来查看帧的排列信息。
      在这里插入图片描述
      如上图所示:h264数据中,红色的帧表示I帧;蓝色的帧表示P帧;绿色的帧表示B帧

音频编码数据

  • 音频编码的作用:将音频采样数据(PCM等)压缩成音频码流,从而降低音频的数据量

AAC格式

  • 格式分析
    • 数据由大小不固定的ADTS构成
      在这里插入图片描述
  • AAC压缩方法
    • 比较复杂,后续展开详细分析。
    • 可以将音频数据压缩10倍以上

【1】雷神博客
【2】《ffmpeg从入门到精通》第三章ffmpeg转封装

  • 16
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 20
    评论
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一二三o-0-O

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值