FFmpeg

视音频基础格式

封装格式:(mp4,RMVB,TS,FLV,AVI):
视频码流和音频码流存储在一个文件中;
封装格式又称为容器;
MPEG-TS:不包含文件头,数据大小固定的TS Packet构成;
FLV:包含文件头,数据由大小不固定的Tag构成(文件头丢了视频就废了);
视频编码数据:(H.264 VC-1,MPEG2)
将视频像素数据(RGB,YUV)压缩成为视频码流,从而降低视频数据量
H.264格式简介:
    数据由大小不固定的NALU构成;
    最迟常见情况下,1个NALU存储了1帧画面的压缩编码后的数据;
H.264压缩方法:
    1.比较复杂,包含了帧内预测,帧间预测,熵编码、环路滤波等环节;
    2.可以将图像数据压缩100倍以上;
音频编码数据:(AAC,MP3,AC-3);
将音频采样数据压缩成为音频码流,从而降低音频数据量;
数据由大小不固定的ADTS构成;
压缩方法复杂,可将音频数据压缩10倍以上
视频像素数据(YUV420p,RGB);
作用:保存屏幕上每个像素点的像素值;
格式:常见的像素数据如RGB24,RGB32,YUV22p,YUV44p等。压缩编码中一般
使用的是YUV格式的像素数据,常用数据格式为YUV420p;
特点:视频像素数据体积很大,一般一小时高清RGB24
格式数据体积为
3600*25*1920*1080=559.9G;假设帧25hz,取样精度8bit;
RGB格式
RGB24依次存储了每个像素点的R、G、B信息;
PS:BMP文件中存储的就是RGB格式的像素数据
YUV
人眼对亮度敏感,对色度不敏感;将亮度和色度信息分离,并对色度信息采用更狠一点的压缩方案,从而提高压缩效率;
音频采样数据(PCM)

保存了音频中每个采样点的值;
单声道按照顺序播放;
双声道按照左右左右顺序存储

1.FFmpeg:视频解码器

实现:H.264->YUV
目的:掌握FFmpeg解码视频函数

2.视频显示(SDL)

目的:掌握SDL显示视频函数
内容:实现:YUV->电脑屏幕

3.视频播放器(FFmpeg+SDL)

目的:整合FFmpeg和SDL的函数,实现一个简单的播放器
内容:实现:H.264->YUV->电脑屏幕

4.视频播放器-图像界面版

目的:学习MFC函数
内容:实现包含界面的视频播放器视频播放器
将视频和音频打包成一个文件,解封装格式->音频压缩数据->音频解码->音频采样数据;
解封装格式->视频压缩数据->视频解码->视频像素数据
音视频同步

  • 工具
  • 常用播放器:
  • 跨平台(非DirectShow框架):
    VLC;Mplayer,ffplay…
    Windows系列(DirectShow框架):
    完美解码,中级解码,暴风影音。。。
  • 信息查看工具:
  • 综合信息查看:
    MediaInfo
    二进制信息查看:
    UltraEdit
  • 单项详细分析
  • 封装格式:Elecard Format Analyzer
    视频编码数据:Elecard Stream Eye
    视频像素数据:YUV PLAYER
    音频像素数据:Adobe Audition

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值