FFmpeg学习笔记(一)

视频播放器原理

步骤:

解封装格式,  音频解码 + 视频解码 ,音视频同步 ;

码流这些数据是不能直接显示的,必须解码成显示器可以显示的格式。YUV数据和PCM数据分别是视频和音频数据。

封装格式

mp4、rmvb、flv、avi、ts  。

MPEG-4是一套音频、视频信息的压缩编码标准。

AVI 压缩标准可以任意选择,现在用的少了,都向mp4和mov转。

FLV   流媒体格式,看视频时常用到

 

作用

视频码流和音频码流按照一定的格式存储在一个文件中。封装格式是容器。

 

视频编码格式

H.264  ,  MPEG2   ,   VC-1,

H.264  当前主流最好的,压缩大,跳帧seek需要关键帧。

wmv,有运动补偿

mjpeg,压缩率低,每一帧都是完整的图像,好多录像机的原始视频是这个格式。

视频都是有损压缩因为太大了。

作用

将视频像素数据压缩成视频码流,从而降低视频的数据量。工具:Elecard Stream Eye。

主流是H.264。是视频的核心,直接影响清晰,带宽,存储。

NALU,

I帧,P帧,B帧  ,体积依次增大, P帧,B帧有运动矢量。

I帧全部信息,P帧前参考,B帧 前后参考。

音频编码格式

MP3   ,    AAC    ,   这两个都是有损压缩

ape  是无损压缩的格式,

这里提一下无损压缩,zip,rar压缩文件格式都是无损压缩,因为还原回来要是完全能用的文件。

 

 AC-3

 

作用

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

在音视频里作用不是很大,因为它占用空间小。

wav格式是未经压缩的音频。数据量也不大30M一首歌。

AAC    是最先进的视频编码,声道特别多一半用于电影。压缩的小,取代mp3。

视频像素数据

YUV420P   ,  RGB 

作用

保存了屏幕每个像素的像素值。体积特别大。

 

音频采样数据

PCM

作用

保存了音频中每个采样点的值。

采样率为44.1千赫兹。

 

FFmpeg

使用FFmpeg作为内核的视频播放器。

FFmpeg.exe

ffplay.exe

FFmpeg基于命令行,无界面操作复杂,但更灵活,方便批处理。开源。

视频编解码知识

解码

VC开发

拷贝FFmpeg开发文件

头文件  *.h  拷贝到项目文件夹的include子文件夹下。

导入库文件   *.lib  拷贝到项目文件夹的lib子文件夹下

动态库文件  *.dll  拷贝纸项目文件夹下。

 

 

 

 

 

ffmpeg八大类库

avcodec  :编解码,最重要的库。

avformat : 封装格式处理。

avfilter :  滤镜特效处理。

avdevice : 各种设备的输入输出。

avutil  :  工具库,其他库都需要这个库的支持。

postproc : 后加工

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

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

 

播放过程

视频文件 --->   YUV  ---->  屏幕

使用ffmpeg把视频文件转化为YUV,使用SDL把YUV渲染到屏幕。  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值