ffmpeg 库介绍


http://www.ctolib.com/topics-96125.html

 

六、ffmpeg 为开发者准备的库

libavutil

libavutil 库是一个实用程序库,以辅助多媒体编程。 它包含安全可移植字符串函数,随机数生成器,数据结构,附加数学函数,加密和多媒体相关功能。 它不是 libavcodec 和 libavformat 所需的代码的库。

这个库的目标是:

模块化 它应该具有很少的相互依赖性和在 ./configure 期间禁用单个部件的可能性。小 源和对象都应该小。高效 它应该具有低CPU和内存使用。有用 它应该添加人们很需要的功能。

libavcodec

libavcodec 库提供通用编码/解码框架,并包含用于音频,视频和字幕流的多个解码器和编码器,以及多个比特流滤波器。

共享架构提供从比特流 i/o 到 dsp 优化的各种服务,并且使得它适合于实现健壮和快速的编解码器。

libavformat

libavformat 库为音频、视频和字幕流的复用和解复用(多路复用和解复用)提供了一个通用框架。 它包括多媒体容器格式的多个多路复用器和多路分解器。

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

libavdevice

libavdevice 库提供了一个通用框架,用于从许多常见的多媒体输入/输出设备抓取和渲染,并支持多个输入和输出设备,包括 Video4Linux2,VfW,DShow和ALSA。

libavfilter

libavfilter 库提供了一个通用的音频/视频过滤框架,包含几个过滤器,源和接收器模块。

libswscale

libswscale 库执行高度优化的图像缩放和颜色空间和像素格式转换操作。

具体来说,此库执行以下转换:

重新调整:是更改视频大小的过程。 有几个重新调整选项和算法可用。 这通常是有损耗的过程。像素格式转换:是转换图像的图像格式和颜色空间的过程,例如从平面 YUV420P 到 RGB24 转换。 它还可以处理 packed 转换,即从 packed 布局(属于在同一缓冲器中交织的不同平面的所有像素)转换为平面布局(属于存储在专用缓冲器或“平面”中的相同平面的所有样本)的转换。如果源和目标颜色空间不同,这通常是有损过程。

libswresample

libswresample 库执行高度优化的音频重采样,重新矩阵化和样本格式转换操作。

具体来说,此库执行以下转换:

重新采样:是改变音频速率的过程,例如从 44100Hz 的高采样率到 8000Hz 。从高到低采样率的音频转换是有损耗的过程。有几个重采样选项和算法可用。格式转换:是将采样类型(例如从16位有符号采样转换为无符号8位或浮点采样)的过程。当从 packed 布局(所有属于在相同缓冲器中交错的不同通道的样本)到平面布局(属于存储在专用缓冲器或“平面”中的相同通道的所有样本)时,它还处理 packed 转换。重新矩阵化:是改变通道布局的过程,例如从立体声到单声道。当输入通道不能映射到输出流时,该过程是有损的,因为它涉及不同的增益因子和混合。通过专用选项启用各种其他音频转换(例如拉伸和填充)。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM