1.FFmpeg基础

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ucsheep/article/details/90207573

在使用FFmpeg之前,我们需要首先了解一下这个工具,本文将介绍FFmpeg的用途,处理原理和过程,以及介绍FFmpeg的常用的三个工具

1.什么是FFmpeg

FFmpeg既是一款音视频编解码工具,同时也是一组音视频编解码开发套件。–《FFmpeg从入门到精通》

这里的FFmpeg区别于我们经常使用的命令 ffmpeg ,FFmpeg是一个套件,ffmpeg 作为它提供的一个工具。FFmpeg作为编解码开发套件,对开发者提供了丰富的音视频处理接口。

FFmpeg : Fast Forward Moving Picture Experts Group

2.FFmpeg 的7个基本模块

  1. AVFormat
    提供封装或者解封装的功能(第3节将会讲解关于封装和解封装),支持绝大多数的封装格式,如MP4、FLV、KV、TS等文件封装格式,RTMP、RTSP、MMS、HLS等网络协议封装格式。
  2. AVCodec
    提供编解码功能(第3节下文将会讲解关于编解码),实现了多媒体领域绝大多数的编解码格式。
    支持MPEG4、AAC、MJPEG等自带的媒体编解码格式,也支持H.264(AVC)编码–使用x264编码器、H.265(HEVC)编码–使用x265编码器、MP3(mp3lame)编码–使用libmp3lame编码器。
  3. AVFilter
    提供滤镜处理功能,滤镜可以有多个输入和多个输出,我们可以很方便的处理音视频、字幕、以及一些特殊效果
  4. AVDevice
    设备模块,可以方便地调用本设备的相关硬件,比如摄像头等。
  5. AVUtil
    相关工具
  6. swresample
    音频转换计算模块、提供高级音频重采样API。允许操作音频采样、音频通道布局转换与布局调整。
  7. swscale
    视频图像转换计算模块、提供高级图像转换API。允许进行图像缩放和像素格式转换。

3.现在我们不得不了解的两个概念

编码、解码

封装、解封装

在了解这两个概念之前,先来了解一下ffmpeg处理视频的流程
ffmpeg处理视频流程
可以看到,视频文件是先进行解封装,再进行解码,然后进行计算的。我们直到,视频简单意义上讲,其实就是一系列的图像按照时序进行排列。那么,上图中的处理流程其实就是针对每一个画面进行处理。也就是说,视频需要将图像信息先编码、然后进行封装,再写入到文件中。
视频编码,解码实际上就是采用不同的数据结构对图像信息进行压缩和存储,不同的编解码方式意味着不同情景下的不同的质量和效率。
而封装呢,就是一个盛放已编码信息的容器,MP4,AVI,FLV等都是。为了形象了解编码和封装,下面举几个例子。
3.1 MP4格式 AVC编码,转换成MP4格式,HEVC编码流程示意图
3.1
3.2 MP4格式 AVC编码,转换成AVI格式,AVC编码流程示意图
3.2
3.3 MP4格式 AVC编码,转换成AVI格式,HEVC编码流程示意图
3.3
未完待续…

猜你喜欢

转载自blog.csdn.net/ucsheep/article/details/90207573