ffmpeg学习笔记-初识ffmpeg

本文介绍了FFmpeg的基础知识,包括音视频播放原理、封装格式、视频编码数据和音频编码数据。同时,文章详细阐述了在Windows环境下如何使用FFmpeg,包括FFmpeg解码数据结构和如何利用SDL显示视频。此外,还探讨了FFmpeg与SDL整合实现视频播放器的基本步骤,以及在MFC中应用FFmpeg的可能性。
摘要由CSDN通过智能技术生成

ffmpeg用来对音视频进行处理,那么在使用ffmpeg前就需要ffmpeg有一个大概的了解,这里使用雷神的ppt素材进行整理,以便于复习

音视频基础知识

视频播放器的原理

  • 播放视频的流程大致如下:
  • 常用播放器
    • 跨平台
      • VLC,Mplayer,ffplay等

    • Windows平台
      • 完美解码,终极解码,暴风影音

信息查看工具

综合信息查看:MediaInfo

二进制信息查看:UltraEdit

单项详细信息分析

封装格式:Elecard Format Analyzer

视频编码数据:Elecard Stream Eye

视频像素数据:YUV Player

音频采样数据:Adobe Audition

封装格式

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

MPEG2-TS格式简介

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

FLV格式简介

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

视频编码数据

  • 视频编码的作用:将视频像素数据(RGBYUV等)压缩成为视频码流,从而降低视频的数据量
  • 视频编码分析工具:Elecard Stream Eye

H.264格式简介

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

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

H.264压缩方法
比较复杂。包含了帧内预测、帧间预测、熵编码、环路滤波等环节构成
可以将图像数据压缩100倍以上

音频编码数据

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

AAC格式简介

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

AAC压缩方法
比较复杂
可以将音频数据压缩10倍以上

视频像素数据

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

格式:

常见的像素数据格式有RGB24,RGB32,YUV420P,YUV422P,YUV444P等

压缩编码中一般使用的是YUV格式的像素数据,最为常见的格式为YUV420P

特点

频像素数据体积很大,一般情况下1小时高清视频的RGB24格式的数据体积为:

3600*25*1920*1080*3=559.9GByte

PS:这里假定帧率为25Hz,取样精度8bit

YUV格式像素数据查看工具:YUV Player

RGB格式简介

Red、Green、Blue三种颜色,可以混合成世界上所有的颜色

彩色图像中每个点,由R、G、B三个分量组成

以RGB24为例,图像像素数据的存储方式如下:

从图中可以看出,RGB24依次存储了每个像素点的R、G、B信息

PS:BMP文件中存储的就是RGB格式的像素数据

YUV格式简介

相关实验表明,人眼对亮度敏感而对色度不敏感。因而可以将亮度信息和色度信息分离,并对色度信息采用更“狠”一点的压缩方案,从而提高压缩效率

YUV格式中,Y只包含亮度信息࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值