一、关于FFmpeg
FFmpeg是领先的多媒体框架,能够解码,编码,转码,复用,解复用,流,过滤和播放人类和机器创造的任何东西。它支持最多种类的编码格式。无论他们是由某个标准委员会,社区或公司设计的。它也非常便于携带:FFmpeg在各种构建环境,机器体系结构和配置下编译,运行并通过Linux,Mac OS X,Microsoft Windows,BSD,Solaris等测试基础架构FATE。
· 它包含可供应用程序使用的libavcodec,libavutil,libavformat,libavfilter,libavdevice,libswscale和libswresample支持类库。以及ffmpeg,ffplay和ffprobe应用程序可供最终用户用于转码和播放。
FFmpeg项目试图为应用程序和最终用户的开发人员提供最好的技术上可行的解决方案。为了实现这一点,我们结合了最好的免费软件选项。我们注重我们的代码能够保持对其他库的较低的依赖性,并在FFmpeg的各部分之间保持最大的代码共享。对于以上两方面我们
不能用最好去回答,因此我们为用户提供选择。
· 对于FFmpeg每个人都是受欢迎的并且欢迎做出贡献。我们很欢迎接收修补程序,拉取请求,bug反馈,捐赠和其他任何形式的贡献。
安全是重中之重,代码审查总是以安全为中心。尽管由于大量的代码涉及不可信的数据安全问题是不可避免的,因此当发现新的安全问题时,我们尽可能快地提供最新稳定版本的更新。
1.FFmpeg Tools
· ffmpeg用于在不同格式之间转换多媒体文件的命令行工具;
· ffplay 基于SDL和FFmpeg库的简单媒体播放器;
· ffprobe个简单的多媒体流分析器;
2.FFmpeg Libraries for developers:
· libavutil是一个包含简化编程功能的库,包括随机数生成器,数据结构,数学例程,核心多媒体实用程序等等。
· libavcodec是一个包含音频/视频编解码器解码器和编码器的库。
· libavformatis a library containing demuxers and muxers for multimedia container formats.
· libavdevice是一个包含输入和输出设备的库,用于抓取并渲染许多常见的多媒体输入/输出软件框架,包括Video4Linux,Video4Linux2,VfW和ALSA。
· libavfilter是一个包含媒体过滤器的库。
· libswscale是一个执行高度优化的图像缩放和色彩空间/像素格式转换操作的库。
· libswresample是一个库,用于执行高度优化的音频重采样,重新矩阵化和采样格式转换操作。
二、可执行程序及简单操作
对于Static版本和Shared版本中的组件,我们按照基本功能进行介绍:
1.Static版本FFmpeg的组成:
在bin文件夹下,
2.Shared版本FFmpeg的组成:
在bin文件夹下,
3.那么我们在这里主要介绍一下3个主要的可执行文件(.exe):
· ffmpeg.exe音视频转换工具:
例如:将一个MP4格式的视频转换为AVI格式
使用命令:ffmpeg-i input.mp4 -r 24 output.avi
详细文档参阅:https://ffmpeg.org/ffmpeg.html
· ffplay.exe:使用SDL库和ffmpeg库的播放程序
例如:播放一个多媒体资料
使用命令:ffplayinput.avi
详细文档参阅:https://ffmpeg.org/ffplay.html
· ffprobe.exe :用于获取多媒体的相关信息的分析器
详细文档参阅:https://ffmpeg.org/ffprobe.html