音视频相关

1.音视频相关

1.一些基本数据格式

  • 封装格式:MP4,RMVB,TS,FLV,AVI
  • 视频编码数据:H.264,MPEG2,VC-1
  • 音频编码数据:AAC,MP3,AC-3
  • 视频像素数据:YUV420P,RGB
  • 音频采样数据:PCM

2.播放视频文件的流程

 

 3.编码格式及工具

1)封装格式:视频码流和音频码流按照一定的格式存储在一个文件中     分析工具:Elecard Format Analyzer

举例:

MPEG2-TS:

*不含文件头,由数据大小固定(188Byte)的TS Packet构成

 FLV格式:

*包含文件头,数据由大小不固定的Tag构成

 2)视频编码数据

视频编码作用:将视频像素数据(RGB,YUV等)压缩为视频码流,从而降低视频的数据量。 工具:Elecard Stream Rye

举例:
H.264格式:

*数据由大小不固定的NALU构成

*最常见,1个NALU存储了1帧画面的压缩编码后的数据

*H.264压缩方式特点:

  -比较复杂。

  -可以将图象数据压缩一百倍以上

3)音频编码数据

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

举例:
AAC格式:

*数据由大小不固定的ADTS构成

*特点

  -比较复杂

  -音频数据压缩10倍以上

4)视频像素数据
  *作用:保存了屏幕上每个像素点的像素值

  *特点:视频像素数据体积很大

举例:

*RGB格式

存储每个像素点的RGB信息,BMP文件存储的就是RGB格式的像素数据。

*YUV信息

Y只包含亮度信息,UV包含色度信息,uv各占Y的四分之一

 5)音频采样数据:

 *保存了音频中每个采样点的值,体积很大, 工具:Adobe Audition

举例:
PCM格式:

*单声道按顺序存储每个采样点的数据

*双声道按照“左右,左右。。”的顺寻存储每个采样点的两个声道的数据。

 2.FFmpeg

*背景

使用广泛:

*视频播放器和转码器的内核

特点:

*基于命令行

*开源

命令行工具

1.ffmpeg.exe

用于视频的转码

ffmpeg -i {输入文件路径} -b :v {输出视频码率} {输出文件路径}

举个例子: ffmpeg -i input.avi -b:v 640k output.ts

2.ffplay.exe的使用

用于视频的播放

ffplay [文件路径]

q/esc 退出  p/空格暂停  f 全屏 鼠标点击屏幕:跳转到指定位置

3.视频解码

解码:

*压缩解码数据-> 像素数据

举例:H.264===>   "H.264码流-> YUV"

一般解码流程:

封装格式---------->提取视频码流------> 解码

举例:MKV =====> "MKV-> H.264码流_> YUV"

4.类库

avcodec:编解码(最重要)

avformat:封装格式处理

avfilter:滤镜特效处理

avdevice:各种设备的输入输出

avutil:工具库(大部分库都需要这个库的支持)

postproc:后加工

swresample:音频采样数据格式转换

swscale:视频像素数据格式转换

4.1 FFmpeg解码流程

 

4.1 FFmpeg解码核心数据结构

 

posted @ 2024-08-03 02:25  肆空界  阅读(6)  评论(0编辑  收藏  举报