《FFmpeg+SDL的视频播放器的制作》学习记录(1):视音频基础知识

雷神博客:雷霄骅(leixiaohua1020)的专栏_雷霄骅_CSDN博客-FFMPEG,FFmpeg,视频质量评价领域博主

视频:基于FFmpeg+SDL的视频播放器的制作——雷霄骅


一、视频播放器原理

大多数播放器的处理流程:

封装格式:将视频和音频打包起来的格式,打包后得到相应后缀的视频文件。

解封装格式:把音频流和视频流分开,得到码流(视频码流、音频码流),码流不能直接显示/播放。

视频解码:得到YUV数据,YUV数据保存了每个像素点的取值。

最后将YUV(视频)送到显示器、PCM(音频)送到音频设备播放。

二、两种典型的视频格式

把数据封装到固定大小的包,然后将包发送到有线电视网络中。没有头,所以如果前面的数据损坏不影响后面数据的播放。 

数据封装到不固定大小的 tag(帧)中,数据有损坏则整个视频无法播放。 

三、H.264编码格式

目前绝大多数(超过90%)视频采用的是 H.264 格式编码的。

一帧画面作为一个 NALU 储存起来。 

3.1、使用 Elecard StreamEye Tools 工具查看 .h264 文件

如上图,编码分成几种帧:

  • 红色的:I帧
  • 蓝色的:P帧
  • 绿色的:B帧

I帧:直接压缩图片,不和其他的帧关联,如上图第一帧。

P帧:依赖于前面的帧。

上图红线为运动矢量。P帧只存储与红色帧不一样的地方。

即I帧(红色)把一帧图像完整存储下来,下一帧蓝色的P帧则对比I帧只存储与I帧不一样的地方。所以静止的视频只需要很小的容量就可以保存很长的内容。

B帧:的原理和P帧一样,但参考了前面和后面的帧,即只存储和前面帧、后面帧都不同的内容,所以能达到更高的压缩率。见下图B帧有两种运动矢量(红线和绿线)。

四、音频编码

音频本身占用的数据不是特别大,就是不压缩的音乐储存容量也不大,所以音频压缩不如视频压缩重要。

五、视频像素数据

六、音频采用数据

使用 Adobe Audition 打开一段音频采用数据(.pcm文件):

看起来是连续的,将它缩放到最大:

可见是由点组成的离散数据,点的个数和采用率相等(采用率为 44100HZ 则每秒44100个点。) 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值