ffmpeg介绍

介绍

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


原文出处:/show_1EF6A0sxMSuu.html