FFmpeg库简介

FFmpeg库简介

一、FFmpeg

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。 采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。项目的名称来自MPEG视频编码标准,前面的"FF"代表"Fast Forward"。所以正确的念法是“F”“F”“mpeg”。

二、FFmpeg下载与安装

非常easy
官网链接: FFmpeg.
FFmpeg库简介_第1张图片

三、FFmpeg库

打开安装好的FFmpeg目录,进入bin文件夹:
FFmpeg库简介_第2张图片
这些文件分别代表什么,又有着什么联系呢?我们可以看出,bin文件夹中包含了FFmpeg的8个常用库文件可三个可执行文件。我用下图来划分FFmpeg的整体结构:
FFmpeg库简介_第3张图片

  • AVUtil核心工具库,下面的许多其他模块都会依赖该库做一些基本的音
    视频处理操作。

  • AVFormat文件格式和协议库,该模块是最重要的模块之一,封装了Protocol层和Demuxer、Muxer层,使得协议和格式对于开发者来说是透明的。

  • AVCodec编解码库,封装了Codec层,但是有一些Codec是具备自己的License的,FFmpeg是不会默认添加像libx264、FDK-AAC等库的,但是FFmpeg就像一个平台一样,可以将其他的第三方的Codec以插件的方式添加进来,然后为开发者提供统一的接口。

  • AVFilter音视频滤镜库,该模块提供了包括音频特效和视频特效的处理,在使用FFmpeg的API进行编解码的过程中,直接使用该模块为音视频数据做特效处理是非常方便同时也非常高效的一种方式。

  • AVDevice输入输出设备库,比如,需要编译出播放声音或者视
    频的工具ffplay,就需要确保该模块是打开的,同时也需要SDL的
    预先编译,因为该设备模块播放声音与播放视频使用的都是SDL库。

  • SwrResample:该模块可用于音频重采样,可以对数字音频进行
    声道数、数据格式、采样率等多种基本信息的转换。

  • SWScale:该模块是将图像进行格式转换的模块,比如,可以将
    YUV的数据转换为RGB的数据,缩放尺寸由1280* 720变为800 *480。

  • PostProc:该模块可用于进行后期处理,当我们使用AVFilter的时
    候需要打开该模块的开关,因为Filter中会使用到该模块的一些基
    础函数。

你可能感兴趣的:(音视频技术,ffmpeg)