(FFMpeg学习笔记):FFMpeg视频播放器的制作之基本概念
发布日期:2021-05-07 15:20:04 浏览次数:21 分类:精选文章

本文共 1821 字,大约阅读时间需要 6 分钟。

  • 参考视频:

目录

视频播放器原理

  • 播放一个视频文件的流程如下所示。

​​​​​​​【常用播放器】

  • 跨平台系列(非DirectShow框架)
    • VLC, Mplayer, ffplay……
  • Windows系列(DirectShow框架)
    • 完美解码,终极解码, 暴风影音……

​​​​​​​【信息查看工具】

  • 综合信息查看
    • MediaInfo
  • 二进制信息查看
    • UltraEdit
  • 单项详细分析
    • 封装格式: Elecard Format Analyzer
    • 视频编码数据: Elecard Stream Eye
    • 视频像素数据: YUV Player
    • 音频采样数据: Adobe Audition

封装格式

  • 封装格式的作用
    • 视频码流和音频码流按照一定的格式存储在一个文件中。

  • 封装格式分析工具
    • Elecard Format Analyzer

【MPEG2-TS格式简介】

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

【FLV格式简介】

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

视频编码数据

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

【H.264格式简介】

  • 数据由大小不固定的NALU构成
  • 最常见的情况下, 1个NALU存储了1帧画面的压缩编码后的数据

【H.264压缩方法】

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

【Elecard Stream Eye工具】

  • 红色的帧: I帧(直接整个图片)
  • 蓝色的帧: P帧 (参考前面的帧,记录不一样的地方)
  • 绿色的帧: B帧 (参考前面以及后面的的帧,记录不一样的地方)

音频编码数据

  • 音频编码的作用
    • 将音频采样数据(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只包含亮度信息,而UV只包含色度信息。
  • 以YUV420P为例,图像像素数据的存储方式如图所示。

  • 从图中可以看出, YUV420P首先存储了整张图像的Y信息,然后存储整张图像的U信息,最后存储了整张图像的V信息

【YUV Player】

音频采样数据

  • 音频采样数据作用
    • 保存了音频中每个采样点的值。
  • 特点:
    • 音频采样数据体积很大,一般情况下一首4分钟的PCM格式的歌曲体积为:
      • 4*60*44100*2*2=42.3MByte
    • PS:这里假定采样率为44100Hz,采样精度为16bit。
  • 音频采样数据查看工具: Adobe Audition

【PCM格式简介】

  • 单声道的情况下按照顺序存储每个采样点的数据。
  • 双声道的情况下按照“左右、左右”的顺序存储每个采样点两个声道的数据

工具总结

任意4个文件的总体信息 MediaInfo
MKV、 MP4、 AVI封装格式信息 Elecard Format Analyzer
H.264码流分析信息 Elecard Stream Eye
YUV视频像素数据 YUV Player
PCM音频采样数据 Audition
上一篇:(FFMpeg学习笔记):FFmpeg下载、ffmpeg.exe与ffplay.exe的基本使用
下一篇:(QT学习笔记):常用控件(Scoll Area、Tool Box、Tab Widget)及QLabel显示图片

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月06日 10时34分27秒