FFMpeg学习——1 基础知识

1 视频解码原理

在这里插入图片描述
对一个视频文件,首先解封装,获取视频流、音频流,再解码,音频流转成PCM,视频流转成YUV,最后分别送到声卡和显卡播放

2 概念

2.1 视频

(1)基本概念
帧(frame):视频由连续的图像组成,每幅图像称为一帧
帧率(frame-rate):每秒由多少帧构成,常见的帧率30fps、60fps
分辨率:图像由像素构成,一幅图由多少个像素构成,称为分辨率,例如1920×1080
码率:视频文件体积除以时间,单位一般是Kbps(Kbit/s)或者Mbps(Mbit/s)
(2)图像表示
RGB:使用红、绿、蓝三原色的亮度来定量表示颜色,一副图像,每个像素由RGB编码表示,每个原色占8bit,所以一个像素占用24bit=3字节。
YUV:人眼的视觉特点是对亮度更敏感,对位置、色彩相对来说不敏感。在视频编码系统中为了降低带宽,可以保存更多的亮度信息(luma),保存较少的色差信息(chroma)。Y表示明亮度,而U和V表示色度,如果没有UV分量,将显示黑白图像,即灰度图。
视频显示需要RGB,为了减少带宽,数据存储使用YUV。
(3)YUV格式
YUV 图像的主流采样方式有如下三种:

  • YUV 4:4:4 采样
  • YUV 4:2:2 采样
  • YUV 4:2:0 采样

以YUV420为例,每四个Y分量共用一组UV分量,在每一行扫描时,只扫描一种色度分量(U 或者 V),和 Y 分量按照 2 : 1 的方式采样。比如,第一行扫描时,YU 按照 2 : 1 的方式采样,那么第二行扫描时,YV 分量按照 2:1 的方式采样。
YUV存储格式:

  • planar 平面格式:指先连续存储所有像素点的 Y 分量,然后存储 U 分量,最后是 V 分量。
  • packed 打包模式:指每个像素点的Y、U、V 分量是连续交替存储的。

(4)H264
帧类型:I帧是关键帧,一副完整的图像, P帧前向参考帧。B帧是双向参考帧。
GOP:两个I帧之间是一个图像序列,在一个图像序列中只有一个I帧。
IDR帧:一个序列的第一个图像叫做 IDR 图像(立即刷新图像),IDR 图像都是 I 帧图像。当解码器解码到 IDR 图像时,立即将参考帧队列清空,将已解码的数据全部输出或抛弃,重新查找参数集,开始一个新的序列。

(5)PTS、DTS
DTS:解码时间戳,告诉播放器什么时候解码,基本不用
PTS:显示时间戳,告诉播放器什么时候显示数据

2.2 音频

音频的形成过程:采样——>量化——编码
采样率:每秒的采样次数,常见采样频率44.1kHZ、48kHZ、96kHZ
声道数:单声道(mono),立体音(两个或两个以上声道数, Stereophonic)
采样位宽:量化位数,常见 8bit 、16bit、32bit
比特率:每秒的传输速率, 比特率=采样率 * 单个的周期音频数据长度。如16bit 双声道 48KHz音频的比特率:48KHz * (16 * 2) = 1536kbps = 192 kbps

参考

雷霄骅 CSDN
B站:FFMpeg视频播放器的制作-雷霄骅
一文读懂 YUV 的采样与格式
图像和流媒体 – I 帧,B帧,P帧,IDR帧的区别

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值