封装:从文件中把音视频读出来
解码:将音视频解压出来
重采样:将音视频转换成声卡显卡支持的格式,视频需要做像素格式的转换MPEG(或叫MPEG-4)是一套用于音频﹑视频信息压缩的编码标准。
MPEG-4 Part 14 MPEG-4文件格式   Part 15 AVC文件格式
压缩算法:H264(AVC Part10)常用封装格式:AVI(当中可以存放任意压缩标准的音视频文件,甚至不压缩)FLV ts(电视) 等流媒体格式ASF(微软支持的点播格式)mp4常见编码格式:视频 H264(AVC Part10), wmv(H264与wmv编码有上下帧的关系,有关键帧), XviD(Part2), mjpeg(摄像机,每一帧都是独立的,seek时不用算关键帧,很快,坏处就是压缩比例低) 几乎都是有损压缩音频 aac MP3(aac与mp3都是有损压缩) ape(无损压缩) flac

解封和解码过程:
NAL:网络提取层,包含信息比如是否为关键帧﹑SPS﹑PPS,视频帧包含 I帧(关键帧) B帧(是相对于前一帧于后一帧的变化) P帧(是相对于前一关键帧的变化),使用 AVFrame->pict_type 判断其类型,使用 (AVPacket->flags & AV_PKT_FLAG_KEY)==1 判断是否关键帧
VCL:视频编码层

硬解码速度比软解快,但硬解的帧率都是固定的比如60帧,软解码可以控制帧率,在性能好的CPU上甚至能解200帧每秒,但软解的缺陷就是很耗电。

像素格式:BGRARGBA        在内存中一般以B G R的顺序存放,需要注意的是:计算机为了对齐,分配的内存长度一般都是4的倍数ARGB32RBG32        一个颜色用10bit表示,能表示的真彩色空间更大YUV420       所有视频的压缩算法都是在YUV基础上的,一个像素值只需要12bit。Y表示明亮度(灰度),U和V表示色度R = Y + 1.4075*(V-128);G = Y - 0.3455*(U-128) - 0.7169*(V-128);    GPU的浮点运算速度远远快于CPU的,但压解缩速度一般B = Y + 1.779*(U-128);RGB与YUV互转的公式由很多种YUV420P       P表示YUV平面方式存放,即内存中先把所有的Y存下来,再把所有的UV存下来RGB的平面存放方式就是内存中先存所有R,再存所有G,再存所有B。  音频也存在平面存放方式

PCM音频参数:(无损音频数据)采样率:sample_rate 44100 (CD,DVD是48000) 表示1秒采集44100次声音(44100是人耳1秒中能听到的最大的声音次数),最后化成一个音存下来,大小可以16、24、32bit等通道:channels (左右声道,模拟的两个人耳,每个通道采样率都是44100)样本大小(格式):sample_size- AV_SAMPLE_FMT_S16 (两个字节存放一次音)- AV_SAMPLE_FMT_FLTP (float存放,32位,aac重采样时,基于浮点运算的)样本类型:planarAV_SAMPLE_FMT_S16 在内存中的格式为:c1,c2,c1,c2...AV_SAMPLE_FMT_S16P    即平面存放方式,在内存中的格式为:c1,c1,c1,...,c2,c2,c2,...

MP4格式分析:(可以去看MPEG-4说明文档)

H.264/AVC视频编码标准:视频编码层面:VCL- 存放视频数据的内容网络抽象层面:NAL- 格式化数据并提供头信息NAL单元:平时的每帧数据就是一个NAL单元(SPS与PPS除外)。在实际的H264数据帧中,往往帧前面带有 00 00 00 01 或 00 00 01 分隔符,一般来说编码器编出的首帧数据为PPS与SPS,接着为I帧。

GOP:一组数据(可以独立播放的),即表示说这组数据有一个关键帧,其他所有的帧数据都可以由这关键帧开始推出来。
I帧(关键帧) 存放的是一帧视频的完整数据。

dts(Decoding Time Stamp):即解码时间戳,这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据。
pts(Presentation Time Stamp):即显示时间戳,这个时间戳用来告诉播放器该在什么时候显示这一帧的数据。
在视频中PTS与DTS可能不一样,但是在音频中PTS与DTS是一样的。

常见封装格式:

浏览器自带了Adobe的Flash插件,所以很多网页上的直播用的格式都是FLV。

常见视频编码算法:

h264压缩算法比较复杂,包含了帧内检测、帧间检测、熵编码、环路滤波等环节构成,可将图像数据压缩100倍以上。

常见音频封装格式:

aac压缩算法可以将音频数据压缩10倍以上。

人眼对亮度敏感,对色度不敏感。

(一) 音视频基础_Mpeg4封装格式音视频编码格式_解封装解码_像素格式_PCM音频-采样率-通道-planar_MP4标准和h264格式的NAL的GOP分析相关推荐

  1. 【Android FFMPEG 开发】音视频基础 和 FFMPEG 编译 ( 音视频基础 | MPEG-4 标准 | Android 开发环境 | FFMPEG 交叉编译 | 安卓项目导入配置 )

    本篇博客代码及资源下载 : https://download.csdn.net/download/han1202012/10382762 文章目录 一. 音视频基础 1. 音频基础 (1) 声音要素 ...

  2. 音视频基础(1)音视频处理流程

    文章目录 音视频基础(1)音视频处理流程 1. 概要 2. 音频处理流程 3. 视频处理流程 4. 直播客户端处理流程 5. 音频数据流转 音视频基础(1)音视频处理流程 理解音频处理流程对我们做音视 ...

  3. 音视频基础概念(1)——视频

    目录 1.1 动画书 1.2 视频 1.3 视频帧 1.4 帧率 1.5 色彩空间 RGB与YUV YUV优势 RGB与YUV的换算 日常生活中,音视频随处可见,包括视频.音频.编解码.封装容器.音视 ...

  4. 【音视频零基础入门 1】视频播放器原理、流媒体协议、封装格式、视频编码、音频编码

    [音视频零基础入门 1]视频播放器原理.流媒体协议.封装格式.视频编码 一.视频播放器原理 1.1 解协议 1.2 解封装 1.3 解码 1.4 视音频同步 二.流媒体协议 三.封装格式 四.封装格式 ...

  5. 音视频基础知识---像素格式RGB

    音视频基础知识汇总: 音视频基础知识---协议相关RTSP RTMP HLS 音视频基础知识---封装格式 音视频基础知识---视频编码格式 音视频基础知识---音频编码格式 音视频基础知识---像素 ...

  6. 音视频基础知识---音频编码格式

    音视频基础知识汇总: 音视频基础知识---协议相关RTSP RTMP HLS 音视频基础知识---封装格式 音视频基础知识---视频编码格式 音视频基础知识---音频编码格式 音视频基础知识---像素 ...

  7. 音视频解封装:MP4核心Box详解及H264AAC打包方案

    ​问题背景: 上一篇文章<音视频封装:MP4结构概述和分析工具>让大家看了下MP4的主要结构和推荐了一些分析工具,如果你对MP4没有任何了解,还是先看上文,了解MP4的基本结构,其中还有许 ...

  8. C++实战手把手教您用ffmpeg和QT开发播放器--01音视频基础知识

    笔记:https://blog.csdn.net/tainjau/article/category/9272757 音视频基础知识 封装.解码.重采样.像素格式 1.MPEG-4 MPEG-4标准将众 ...

  9. 音视频基础知识(流媒体、多媒体),视频文件等

    Video Render: Media Codec,OpenGL ES:  Audio Render: OpenSL ES,AudioTrack:  视频的编辑处理.上传和播放.  音视频流程:视频采 ...

最新文章

  1. 网络摄像机如何与路由器连接方法
  2. VirtualBox快照(Snapshot)功能使用及注意事项
  3. 用Qt写软件系列六:博客园客户端的设计与实现(1)
  4. 微信获取位置 转化为 高德地图 位置 地址
  5. 安装VISTA我们应该选择哪种
  6. java图片特效轮播代码_JQuery实现图片轮播效果
  7. 子集生成-增量构造法||位向量法
  8. [csu/coj 1632]LCP
  9. bzoj3714 [PA2014]Kuglarz
  10. [禅悟人生]不自律的品性如堕落的瓷瓶
  11. Hibernate 验证版本不兼容问题
  12. 逻辑回归算法原理及python实现
  13. Descriptive Essay文章内容怎么写?
  14. 使用maven为web工程引入jstl包时报错
  15. ueditor 前后端分离+图片上传
  16. win10无法登录(调用的对象已与其客户端断开连接)
  17. 樊登读书赋能读后感_樊登读书会本周末视频解读新书:《赋能》拉开你与别人的差距,决定你人生的高度...
  18. Zotero BookxNote
  19. opencv图像对齐与图像相减python
  20. JZOJ__Day 10:【普及模拟】【USACO】贝茜的晨练计划

热门文章

  1. 宝塔 + SSRPanel 前端安装教程
  2. iphone游戏之旅第一周
  3. 遍历文件夹下文件名 几种方法
  4. 安装Ubuntu+gpu+tensorflow+py2+py3
  5. h3c交换机绑定ip+mac+端口以及取消绑定
  6. CIFAR-100数据集 卷积神经网络训练
  7. 神经网络训练中batch的作用(从更高角度理解)
  8. 白杨的第一篇CSDN博客
  9. centos 彻底卸载docker
  10. 蓝桥杯:栈 和 例题 :小邋遢的衣橱