用了ffmpeg这么多年,感觉其就是一个开源库的集合体。ffmpeg包含的八个库:

1、libswscale(视频像素数据格式转换)

2、libswresample(音频采样数据格式转换)

3、libpostproc(后加工)

4、libavutil(工具库)

5、libavformat(封装格式处理)

6、libavfilter(滤波特效处理)

7、libavdevice(各种设备的输入和输出)

但是这些库依赖于其他许多开源库,感觉就是一个开源库大杂烩:

1、bzip2

bzip2 是一个基于Burrows-Wheeler 变换的无损压缩软件,压缩效果比传统的LZ77/LZ78压缩算法来得好。

2、enca

'Enca'基于对其语言的了解来检测文本文件的编码。 它还可以将它们转换为其他编码,让您在不知道当前编码的情况下重新编码文件。 它支持大多数中欧和东欧语言,以及一些独立于语言的Unicode变体。

3、expat

Expat是一个用C语言开发的、用来解析XML文档的开发库,它最初是开源的、Mozilla 项目下的一个XML解析器。

4、fdk-aac

fdk-aac软件包提供Fraunhofer FDK AAC库,据称是高质量的高级音频编解码实现。

5、Fontconfig

Fontconfig是一个用于配置和自定义字体访问的库。

6、freetype2

FreeType是一个免费提供的软件库,用于渲染字体。

7、FriBidi

FriBidi是Unicode双向(BiDi)算法的免费实现。 它还提供实用程序功能,以帮助开发实现BiDi功能的交互式编辑器和小部件。 BiDi算法是支持从右到左脚本的先决条件,例如希伯来语,阿拉伯语,叙利亚语和Thaana。

8、game-music-emu

game-music-emu是各种视频游戏控制台硬件的音频模拟器集合。 它最初由Blargg开发,在转换为库之前用作其他几个软件产品的基础。 然后将其修复为在其他平台上构建,并用于支持其他库的音频插件,例如GStreamer和FFmpeg。

9、gmb

GMP是一个免费的库,用于任意精度算术,对有符号整数,有理数和浮点数进行操作。 精度没有实际限制,除了机器GMP中可用内存所暗示的那些限制。 GMP具有丰富的功能,并且功能具有常规接口。

10、gnutls

GnuTLS是一个安全的通信库,实现了围绕它们的SSL,TLS和DTLS协议和技术。 它提供了一个简单的C语言应用程序编程接口(API)来访问安全通信协议以及用于解析和编写X.509,PKCS#12和其他所需结构的API。

11、harfbuzz

HarfBuzz是一个文本整形引擎。 它主要支持OpenType,还支持[Apple Advanced Typography | https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6AATIntro.html]]。 HarfBuzz用于Android,Chrome,ChromeOS,Firefox,GNOME,GTK +,KDE,LibreOffice,OpenJDK,PlayStation,Qt,XeTeX等场所。

12、lame

LAME是LGPL许可的高质量MPEG Audio Layer III(MP3)编码器。

13、libaacs

libaacs是一个实现高级访问内容系统规范的研究项目。

14、libass

libass是ASS / SSA(高级变电站Alpha / Substation Alpha)字幕格式的便携式字幕渲染器,允许比传统SRT和类似格式更高级的字幕。

15、libbdplus

libbdplus是一个实施BD +系统规范的研究项目。

16、libbluray

libbluray是一个开源库,专为播放媒体播放器(如VLC或MPlayer)的蓝光光盘而设计。

17、libcdio

GNU光盘输入和控制库(libcdio)包含一个用于CD-ROM和CD映像访问的库。 希望忽略CD-ROM的OS和设备相关属性或各种CD图像格式的特定细节的应用程序可能会受益于使用此库。

18、libcdio-paranoia

GNU光盘输入和控制库(libcdio)包含一个用于CD-ROM和CD映像访问的库。 希望忽略CD-ROM的OS和设备相关属性或各种CD图像格式的特定细节的应用程序可能会受益于使用此库。

19、libdvdcss

libdvdcss是一个简单的库,用于访问像块设备这样的DVD而不必担心解密。

20、libdvdnav&libdvdread

libdvdnav是一个面向多媒体应用程序开发人员的库。 它可以轻松使用复杂的DVD导航功能,如DVD菜单,多角度播放甚至交互式DVD游戏。 所有这些功能都是通过一个简单的API提供的,该API将DVD播放作为单个逻辑块流提供,由特殊的dvdnav事件中断以报告某些条件。 libdvdnav的主要用法是定期调用函数来获取下一个块的循环,包含额外的调用以告诉库用户交互。 整个DVD虚拟机和内部播放状态都是完全封装的。

21、libgcrypt

Libgcrypt是一个通用的加密库,最初基于GnuPG的代码。 它为所有加密构建块提供功能:对称密码算法(AES,Arcfour,Blowfish,Camellia,CAST5,ChaCha20 DES,GOST28147,Salsa20,SEED,Serpent,Twofish)和模式(ECB,CFB,CBC,OFB,CTR,CCM) ,GCM,OCB,POLY1305,AESWRAP),哈希算法(MD2,MD4,MD5,GOST R 34.11,RIPE-MD160,SHA-1,SHA2-224,SHA2-256,SHA2-384,SHA2-512,SHA3-224) ,SHA3-256,SHA3-384,SHA3-512,SHAKE-128,SHAKE-256,TIGER-192,Whirlpool),MAC(所有哈希算法的HMAC,所有密码算法的CMAC,GMAC-AES,GMAC-CAMELLIA, GMAC-TWOFISH,GMAC-SERPENT,GMAC-SEED,Poly1305,Poly1305-AES,Poly1305-CAMELLIA,Poly1305-TWOFISH,Poly1305-SERPENT,Poly1305-SEED),公钥算法(RSA,Elgamal,DSA,ECDSA,EdDSA,ECDH) ),大整数函数,随机数和许多支持函数。

22、libgpg-error

libgpg-error包中包含一个库,用于定义所有GnuPG组件的常见错误值。

23、libiconv

国际文本大多以Unicode编码。 但是,由于历史原因,它有时仍使用语言或国家/地区相关的字符编码进行编码。 随着互联网的出现以及各国之间频繁的文本交换 - 即使从外国查看网页也是这种情况下的“文本交换” - 这些编码之间的转换已成为必需。

24、libilbc

iLBC是一种专为包交换网络通信设计的编解码,优于目前流行的G.729、G.723.1,对丢包进行了特有处理,即使在丢包率相当高的网络环境下,仍可获得非常清晰的语音效果。

25、liblzma

LZMA,(Lempel-Ziv-Markov chain-Algorithm的缩写),是一个Deflate和LZ77算法改良和优化后的压缩算法,开发者是Igor Pavlov,2001年被首次应用于7-Zip压缩工具中,是 2001年以来得到发展的一个数据压缩算法。它使用类似于 LZ77 的字典编码机制,在一般的情况下压缩率比 bzip2 为高,用于压缩的可变字典最大可达4GB。

26、libmfx

效果器。

27、libmodplug

用于加载和呈现音乐模块文件的库。

28、libmp3lame

LAME是一个开源的MP3解码编码工具

29、libnettle

Nettle是一个加密库,旨在轻松适应或多或少的任何环境:面向对象语言(C ++,Python,Pike,...)的加密工具包,LSH或GNUPG等应用程序,甚至内核空间。 在大多数情况下,您需要的不仅仅是基本的加密算法,还需要一些方法来跟踪可用的算法,它们的属性和变体。 您经常会有一些算法选择过程,通常由您想要实现的协议决定。

30、libogg

Ogg全称是OGGVobis(oggVorbis)是一种音频压缩格式,类似于MP3等的音乐格式。Ogg是完全免费、开放和没有专利限制的。OggVorbis文件的扩展名是".ogg"。Ogg文件格式可以不断地进行大小和音质的改良,而不影响旧有的编码器或播放器。

31、libopus

opus是一种声音编码格式,Opus的前身是celt编码器。是由IETF开发,适用于网络上的实时声音传输,标准格式为RFC6716。

32、libsdl

SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。

33、libsoxr

SoX重采样器库libsoxr执行快速,高质量的一维采样率转换。

34、libspeex

Speex是一种开源/免费软件专利的音频压缩格式,专为语音而设计。 Speex项目旨在通过提供昂贵的专有语音编解码器的免费替代方案来降低语音应用的进入门槛。 此外,Speex非常适合Internet应用程序,并提供大多数其他编解码器中不存在的有用功能。 最后,Speex是GNU项目的一部分,可以通过修订后的BSD许可证获得。

35、libssh

libssh是一个用C语言编写的库,它实现了SSH协议。 它可用于实现客户端和服务器应用程序。 它可以扩展到数千个用户。

36、libtheora

Theora是Xiph.org Foundation提供的免费开放视频压缩格式。 与我们所有的多媒体技术一样,它可用于在线和光盘上分发电影和视频,而无需许可和版税费用或与其他格式相关的供应商锁定。

Theora从邮票扩展到HD分辨率,在低比特率下被认为特别具有竞争力。 它与MPEG-4 / DiVX属于同一类,与Vorbis音频编解码器一样,随着编码器技术的发展,它还有很大的改进空间。

37、libvorbis

Ogg Vorbis是一种完全开放,非专有,专利和免版税的通用压缩音频格式,适用于固定和可变比特率的中高质量(8kHz-48.0kHz,16 + bit,和弦)音频和音乐 从16到128 kbps /通道。 这使得Vorbis在与MPEG-4(AAC)等音频表示相同的竞争级别中,与MPEG-1/2音频第3层,MPEG-4音频(TwinVQ),WMA和PAC相似,但性能更高。

38、libvpx

Vp8,vp9的编解码器

39、libx264

x264是一个免费软件库和应用程序,用于将视频流编码为H.264 / MPEG-4 AVC压缩格式,并根据GNU GPL条款发布。

40、libx265

x265是一个免费软件库和应用程序,用于将视频流编码为H.265 / MPEG-H HEVC压缩格式,并根据GNU GPL条款发布。

41、libxml2

Libxml2是为Gnome项目开发的XML C解析器和工具包(但可以在Gnome平台之外使用),它是MIT License下的免费软件。 XML本身是设计标记语言的元语言,即使用括在尖括号之间的额外“标记”信息将语义和结构添加到内容的文本语言。 HTML是最着名的标记语言。 尽管该库是用C语言编写的,但各种语言绑定使其可以在其他环境中使用。

已知Libxml2非常便携,该库应该在各种系统(Linux,Unix,Windows,CygWin,MacOS,MacOS X,RISC Os,OS / 2,VMS,QNX,MVS,VxWorks)上构建和工作而不会出现严重问题

42、libxvidcore

免费的视频编解码器,压缩和质量很强。

43、libzlib

zlib是提供数据压缩用的函式库,由Jean-loup Gailly与Mark Adler所开发,初版0.9版在1995年5月1日发表。zlib使用DEFLATE算法,最初是为libpng函式库所写的,后来普遍为许多软件所使用。此函式库为自由软件,使用zlib授权。截至2007年3月,zlib是包含在Coverity的美国国土安全部赞助者选择继续审查的开源项目。

我所能知道的就是以上43个开源库,也许还有其他的.........

FFmpeg一些感想相关推荐

  1. 某牛的QT+ffmpeg 播放器 的readme

    http://download.csdn.net/source/2802201 write by :lbwave@sina.com QT+ffmpeg 大名顶顶的QT ffmpeg 我就不用说了.看看 ...

  2. Ubuntu 安装 ffmpeg

    sudo add-apt-repository ppa:djcj/hybrid sudo apt-get update sudo apt-get install ffmpeg 在安装 ffmpeg 之 ...

  3. Linux实现ffmpeg H.265视频编码

    Linux实现ffmpeg H.265视频编码 几乎所有观看的视频,数字地面电视,电缆,卫星或互联网上的压缩.原始的,未压缩的视频太大,会浪费太多的带宽.在DVD和Blu-ray之前,有视频CD(VC ...

  4. NVIDIA FFmpeg 转码技术分析

    NVIDIA FFmpeg 转码技术分析 所有从 Kepler 一代开始的 NVIDIA GPUs 都支持完全加速的硬件视频编码,而从费米一代开始的所有 GPUs 都支持完全加速的硬件视频解码.截至 ...

  5. H265与ffmpeg改进开发

    H265与ffmpeg改进开发 Introduction KSC265是集编码.解码于一体的H.265编解码软件,完全遵循H.265协议标准.符合H.265编码规范的视频都可以通过KSC265进行解码 ...

  6. FFmpeg扩展开发

    FFmpeg扩展开发 对FFmpeg RTMP/FLV部分做了扩展,用于支持H.265. 针对<video_file_format_spec_v10_1> VIDEODATA部分扩展如下: ...

  7. ffmpeg architecture(下)

    ffmpeg architecture(下) 第3章-转码 TLDR:给我看代码和执行. $ make run_transcoding 我们将跳过一些细节,但是请放心:源代码可在github上找到. ...

  8. ffmpeg architecture(中)

    ffmpeg architecture(中) 艰苦学习FFmpeg libav 您是否不奇怪有时会发出声音和视觉? 由于FFmpeg作为命令行工具非常有用,可以对媒体文件执行基本任务,因此如何在程序中 ...

  9. ffmpeg architecture(上)

    ffmpeg architecture(上) · 视频-您看到的是什么! · 如果您有一系列图像序列,并以给定的频率(例如每秒24张图像)进行更改,则会产生运动的错觉.总之,这是视频背后的基本概念:一 ...

  10. FFmpeg集成到GPU

    FFmpeg集成到GPU GPU加速视频处理集成到最流行的开源多媒体工具中. FFmpeg是最流行的开源多媒体操作工具之一,它有一个插件库,可以应用于音频和视频处理管道的各个部分,并在世界各地得到广泛 ...

最新文章

  1. hdu 1498(二分图最小顶点覆盖)
  2. [转]为什么我们不用软件工程?软件工程能帮多大忙?
  3. PS教程第十八课:放大缩小
  4. php实时股票,php基于curl实现的股票信息查询类实例
  5. LIF模型及其变种 Training Spiking Deep Networks for Neuromorphic Hardware
  6. java 反射 框架_Java——利用反射实现框架类
  7. ecshop全套系统测试用例
  8. 软件测试之测试用例设计(一)
  9. 小程序学习:自定义组件
  10. “磁”话有理(一)——磁性元件基础理论梳理
  11. mysql表date类型长度_mysql中数据类型的长度解释
  12. mbedtls学习2.mbedtls从0使用指南
  13. 探索在原生网页中使用自定义数据属性
  14. 使用云主机进行深度学习
  15. 阿里毕玄:阿里十年,从分布式到云时代的架构演进之路
  16. 香港空间的确很坑,网站可用性只有72.37%
  17. 大数据面试演讲稿 离线数仓实时分析
  18. android底层开发工具,Android Developer Tools(开发人员工具)
  19. 《Adobe Illustrator CS6中文版经典教程(彩色版)》—第0课0.13节使用绘图模式
  20. red110播放_我播放“ Red Dead Redemption 2”以获得风景,而不是射击

热门文章

  1. 铸博皇御:黄金现货交易究竟适不适合上班族?
  2. 猜疑链,区块链,微信群有什么关系?
  3. Couch-to-5K 跑步计划
  4. no matter相关
  5. Activity 审批流简单介绍
  6. flowable审批流+集成springboot
  7. 756526-00-8,Cbz-N-amido-PEG4-acid末端羧酸可在活化剂(如EDC或HATU)存在下与伯胺基反应
  8. RabbitMQ学习笔记:mandatory、publisher-confirms、publisher-return属性区别
  9. 苍蓝誓约服务器一直维护,《苍蓝誓约》11月26日09:30停服维护公告
  10. VPC虚拟云端局域网