ffmpeg库简介

ffmpeg下有7个library,分别是:

  • libavutil
  • libswscale
  • libswresample
  • libavcodec
  • libavformat
  • libavdevice
  • libavfilter

本文内容主要源于ffmpeg官网对各个库的简介
ffmeg


libavutil:(通用工具库)
libavutil十一个实用的工具库用于辅助可移植的多媒体编程。它包含安全的可移植的字符串函数,随机数生成器,数据结构,附加的数学函数,密码学和多媒体相关功能(例如像素和样本格式的枚举)。它不是 libavcodec 和 libavformat 都需要的代码库。


libswscale:(图像转换)
libswscale库执行高度优化的图像缩放以及色彩空间和像素格式转换操作。
具体来说,这个库执行以下转换:

  • Recailing:是改变视频大小的过程。 有几个重新缩放选项和算法可用。 这通常是一个有损过程。
  • Pixel format conversion:是将图像的图像格式和色彩空间转换的过程,例如从平面YUV420P 到RGB24 打包。 它还处理打包方式转换,即从Packed布局转换为Planar布局。

注意:如果源和目标颜色空间不同,这通常是一个有损过程。


libswresample:(音频处理)
libswresample库执行高度优化的音频重采样,重矩阵化和样本格式转换操作。
具体来说,这个库执行以下转换:

  • Resampling:是改变音频码率的过程,例如从一个高采样率44100Hz转化为8000Hz。音频从高采样率转换为低采样率是一个有损的过程。有几种重采样选项和算法可用。
  • Format conversion:是一个转换样本类型的过程,例如从有符号16-bit(int16_t)样本转换为无符号8-bit(uint8_t)或浮点样本。它也处理打包方式转换,如从Packed布局转换为Planar布局。
  • Rematrixing:是改变通道布局的过程,例如从立体声到单声道。当输入通道不能映射到输出流时,这个过程是有损的,因为它涉及不同的增益因子和混合。

通过专用选项启用各种其他音频转换(例如拉伸和填充)。


libavcodec:(编解码库)
libavcodec库提供了一个通用的编码/解码框架,并且包含用于音频、视频个字幕流的多个编解器和解码器

共享架构提供从比特流 I/O 到 DSP 优化的各种服务,使其适用于实现鲁棒和快速的编解码器以及实验。


libavformat:(封装与解封装,如MP4、RMVB等)
libavformat库为音频、视频和字幕流的复用和解复用(muxing and demuxing)提供了一个通用框架。它包含多个用于媒体容器格式的多个复用器和解复用器。

它还支持多种输入和输出协议来访问媒体资源。


libavdevice:(设备库、如录制、播放等)
libavdevice 库提供了一个通用框架,用于从许多常见的多媒体输入/输出设备进行抓取和渲染,并支持多种输入和输出设备,包括 Video4Linux2、VfW、DShow 和 ALSA。


libavfilter:
libavfilter 库提供了一个通用的音频/视频过滤框架,其中包含多个过滤器、源和接收器。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值