介绍
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。
FFmpeg在Linux平台下开发,支持Windows、Mac OS X等
官网地址:http://ffmpeg.org/download.html
下载地址:https://github.com/BtbN/FFmpeg-Builds/releases
版本
构成FFmpeg主要有三个版本
static 版本
静态库版本
四个工具软件,分别是:ffmpeg.exe,ffplay.exe,ffprobe.exe 和 ffserver.exe(可能没有)
- ffmpeg.exe:音视频转码、转换器
- ffplay.exe:简单的音视频播放器
- ffserver.exe:流媒体服务器
- ffprobe.exe:简单的多媒体码流分析器
每个exe体积很大,因为相关的dll已经被编译到exe 里面去了。作为工具而言此版本就可以满足我们的需求。
shared 版本
动态库版本,里面有3个exe:ffmpeg.exe,ffplay.exe , ffprobe.exe ,还有一些dll
shared 里面的exe体积很小,因为他们在运行的时候,到相应的dll中调用功能。程序运行过程必须依赖于提供的dll文件
可以供开发者使用的SDK,可以根据自己的需求使用这些库开发自己的应用程序。这些库有:
- libavcodec:包含音视频编码器和解码器
- libavutil:包含多媒体应用常用的简化编程的工具,如随机数生成器、数据结构、数学函数等功能
- libavformat:包含多种多媒体容器格式的封装、解封装工具
- libavfilter:包含多媒体处理常用的滤镜功能
- libavdevice:用于音视频数据采集和渲染等功能的设备相关
- libswscale:用于图像缩放和色彩空间和像素格式转换功能
- libswresample:用于音频重采样和格式转换等功能
dev 版本
开发者版本,是用于开发的。整个工程的源代码,无论是编译出来的可执行程序还是SDK,都是由这些源代码编译出来的。
FFmpeg的源代码由C语言实现,主要在Linux平台上进行开发。FFmpeg不是一个孤立的工程,它还存在多个依赖的第三方工程来增强它自身的功能。
开源协议版本
- gpl包括所有依赖项,甚至包括那些需要完整 GPL 而不仅仅是 LGPL 的依赖项。
- lgpl缺少纯 GPL 的库。最突出的是 libx264 和 libx265。
- nonfree除了 gpl 变体的所有依赖项外,还包括 fdk-aac。
- gpl-shared与 gpl 相同,但附带
libav*系列共享库,而不是纯静态可执行文件。 - lgpl-shared再次相同,但使用 lgpl 依赖项集。
- nonfree-shared同样,但使用 nonfree 的依赖项集。
参考:
https://blog.csdn.net/ustc_sse_shenzhang/article/details/102546753