跟着雷神学FFmpeg(一)

引言

在网上看到很多的资料,都没有雷神讲的好,下面以一个初学者的角度,去总结FFmpeg,对音视频没有任何基础的做一些基础知识的扫盲。
并且做一些C++的demo,以供学习

目录

  • 封装格式(MP4,rmvb)
  • 视频编码数据(H.246)
  • 音频编码数据(AAC)
  • 视频像素数据(显卡显示,RGB)
  • 音频采样数据(PCM)

视频播放器原理

跟着雷神学FFmpeg(一)_第1张图片

  • 蓝色表示解码操作
  • 当我们打开视频文件,就要分析有哪些视频流(压缩数据,体积小),音频流。所以要解分装格式
  • 视频像素数据-YUV
  • 音频采样数据-PCM
  • 视音频同步

常用的播放器

  • VLC,Mplayer,ffmplay

信息查看工具

  • 综合信息查看:MediaInfo
  • 二进制信息查看:ULtraEdit

封装格式

跟着雷神学FFmpeg(一)_第2张图片

  • 封装格式分析工具:ELecard Format Analyzer

跟着雷神学FFmpeg(一)_第3张图片

  • MPEF2-TS 数字电视用到的格式,分割是188Byte大小,没有文件头,文件部分损坏,可以继续播放
  • FLV格式:如果头坏掉,就废了。

视频编码数据

跟着雷神学FFmpeg(一)_第4张图片

  • 把能看的数据,压缩成视频码流,高清视频码流非常的大
  • 视频编码分析工具:Elecard Stream Eye
    现在一般接触的视频。90%H.264, 现在比较普及

跟着雷神学FFmpeg(一)_第5张图片

  • H.264格式:一个画面就是NALU,作为单元存储起来。
  • H.264压缩方法:比较复杂,
    Elecard Stream Eye 的使用
    跟着雷神学FFmpeg(一)_第6张图片
  • 红色的帧: I 帧 , 蓝色的帧:P帧 ,绿色的帧:B帧
  • I 帧的体积特别大,
  • P帧,当运动矢量不是特别大的时候,不会太大
  • B帧参考前后帧

音频解码数据

跟着雷神学FFmpeg(一)_第7张图片

  • CD导出和WAV音频是基本上没有压缩的
  • AC-3 支持的声道比较多,电影中
  • 大部分都是使用AAC的编码格式
  • wav是一种无损的音频文件格式,pcm是没有压缩的编码方式

跟着雷神学FFmpeg(一)_第8张图片

  • AAC音频压缩10几倍,数字信号处理

视频像素数据

跟着雷神学FFmpeg(一)_第9张图片

  • YUV420P 是常用的格式,编程中也是常用的,一小时占用500多个G
    跟着雷神学FFmpeg(一)_第10张图片

音频采样数据

跟着雷神学FFmpeg(一)_第11张图片

  • 播放器对连续的波进行采样,然后保存下来
  • 4604410022=42.3MByte ,采样率44100Hz,采样率16bit,两个字节:秒x采样率 x两个声道x16位两个字节
  • 查看工具 Adobe Audition
    跟着雷神学FFmpeg(一)_第12张图片

PCM

跟着雷神学FFmpeg(一)_第13张图片

你可能感兴趣的:(FFmpeg)