(一) 音视频基础_Mpeg4封装格式音视频编码格式_解封装解码_像素格式_PCM音频-采样率-通道-planar_MP4标准和h264格式的NAL的GOP分析
封装:从文件中把音视频读出来
解码:将音视频解压出来
重采样:将音视频转换成声卡显卡支持的格式,视频需要做像素格式的转换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分析相关推荐
- 【Android FFMPEG 开发】音视频基础 和 FFMPEG 编译 ( 音视频基础 | MPEG-4 标准 | Android 开发环境 | FFMPEG 交叉编译 | 安卓项目导入配置 )
本篇博客代码及资源下载 : https://download.csdn.net/download/han1202012/10382762 文章目录 一. 音视频基础 1. 音频基础 (1) 声音要素 ...
- 音视频基础(1)音视频处理流程
文章目录 音视频基础(1)音视频处理流程 1. 概要 2. 音频处理流程 3. 视频处理流程 4. 直播客户端处理流程 5. 音频数据流转 音视频基础(1)音视频处理流程 理解音频处理流程对我们做音视 ...
- 音视频基础概念(1)——视频
目录 1.1 动画书 1.2 视频 1.3 视频帧 1.4 帧率 1.5 色彩空间 RGB与YUV YUV优势 RGB与YUV的换算 日常生活中,音视频随处可见,包括视频.音频.编解码.封装容器.音视 ...
- 【音视频零基础入门 1】视频播放器原理、流媒体协议、封装格式、视频编码、音频编码
[音视频零基础入门 1]视频播放器原理.流媒体协议.封装格式.视频编码 一.视频播放器原理 1.1 解协议 1.2 解封装 1.3 解码 1.4 视音频同步 二.流媒体协议 三.封装格式 四.封装格式 ...
- 音视频基础知识---像素格式RGB
音视频基础知识汇总: 音视频基础知识---协议相关RTSP RTMP HLS 音视频基础知识---封装格式 音视频基础知识---视频编码格式 音视频基础知识---音频编码格式 音视频基础知识---像素 ...
- 音视频基础知识---音频编码格式
音视频基础知识汇总: 音视频基础知识---协议相关RTSP RTMP HLS 音视频基础知识---封装格式 音视频基础知识---视频编码格式 音视频基础知识---音频编码格式 音视频基础知识---像素 ...
- 音视频解封装:MP4核心Box详解及H264AAC打包方案
问题背景: 上一篇文章<音视频封装:MP4结构概述和分析工具>让大家看了下MP4的主要结构和推荐了一些分析工具,如果你对MP4没有任何了解,还是先看上文,了解MP4的基本结构,其中还有许 ...
- C++实战手把手教您用ffmpeg和QT开发播放器--01音视频基础知识
笔记:https://blog.csdn.net/tainjau/article/category/9272757 音视频基础知识 封装.解码.重采样.像素格式 1.MPEG-4 MPEG-4标准将众 ...
- 音视频基础知识(流媒体、多媒体),视频文件等
Video Render: Media Codec,OpenGL ES: Audio Render: OpenSL ES,AudioTrack: 视频的编辑处理.上传和播放. 音视频流程:视频采 ...
最新文章
- 网络摄像机如何与路由器连接方法
- VirtualBox快照(Snapshot)功能使用及注意事项
- 用Qt写软件系列六:博客园客户端的设计与实现(1)
- 微信获取位置 转化为 高德地图 位置 地址
- 安装VISTA我们应该选择哪种
- java图片特效轮播代码_JQuery实现图片轮播效果
- 子集生成-增量构造法||位向量法
- [csu/coj 1632]LCP
- bzoj3714 [PA2014]Kuglarz
- [禅悟人生]不自律的品性如堕落的瓷瓶
- Hibernate 验证版本不兼容问题
- 逻辑回归算法原理及python实现
- Descriptive Essay文章内容怎么写?
- 使用maven为web工程引入jstl包时报错
- ueditor 前后端分离+图片上传
- win10无法登录(调用的对象已与其客户端断开连接)
- 樊登读书赋能读后感_樊登读书会本周末视频解读新书:《赋能》拉开你与别人的差距,决定你人生的高度...
- Zotero BookxNote
- opencv图像对齐与图像相减python
- JZOJ__Day 10:【普及模拟】【USACO】贝茜的晨练计划