FFmpeg的几种版本使用总结

         Fmpeg 全名是Fast Forward MPEG(Moving Picture Experts Group),是一个集成了各种编解码器的库。FFmpeg也是目前主流的多媒体框架,可以实现图像信息的编码,解码,转码,复用,解复用,流,过滤,视频采集、视频编码到视频传输,都可以调用FFmpeg这个库中的代码来完成。。它支持最多种类的编码格式。无论他们是由某个标准委员会,社区或公司设计的。它也非常便于携带:FFmpeg支持跨平台,能在各种构建环境,机器体系结构和配置下编译,运行并通过Linux,Mac OS X,Microsoft Windows,BSD,Solaris等测试基础架构FATE。

一、FFmpeg有三种版本

1、static 版本

静态库版本 里面有3个exe: ffmpeg.exe, ffplay.exe, ffprobe.exe,每个exe体积很大,因为相关的dll已经被编译到exe 里面去了。作为工具而言此版本就可以满足我们的需求。

2、shared 版本

        动态库版本,里面有3个exe:ffmpeg.exe,ffplay.exe , ffprobe.exe ,还有一些dll, 比如说avcodec-54.dll之类的。shared 里面的exe体积很小,因为他们在运行的时候,到相应的dll中调用功能。程序运行过程必须依赖于提供的dll文件。

3、dev 版本

开发者版本,是用于开发的,里面包含了库文件 xxx.lib 以及头文件 xxx.h,这个版本不包含exe文件。dev版本中include文件夹内文件用途。

libavcodec: 用于各种类型声音、图像编解码
libavdevice: 用于音视频数据采集和渲染等功能的设备相关;
libavfileter:包含多媒体处理常用的滤镜功能;
libavformat:包含多种多媒体容器格式的封装、解封装工具;
libavutil:包含一些公共的工具函数
libpostproc: 用于后期效果处理
libswresample: 用于音频充采用和格式转换等功能;
libswscale: 用于食品场景比例缩放、色彩映射转换;

2. 常用命令集
获取视频的信息
ffmpeg -i video.avi
将图片序列合成视频
ffmpeg -f image2 -i image%d.jpg video.mpg
上面的命令会把当前目录下的图片(名字如:Image1.jpg、image2.jpg等)合并成video.mpg
将视频分解成图片序列
ffmpeg -i video.mpg image%d.jpg
上面的命令会生成image1.jpg、image2.jpg …
支持的图片格式有 : pgm/ppm/pam/pgmyuv/jpeg/gif/png/tiff/sci等
3. 实际操作举例
既然是库,那就应该能够直接使用,或者说调用,我们可以在程序中调用,也可以在控制台直接调用。我们将static版本文件的路径添加到环境变量。然后就可以直接在控制台调用其功能了。
此处举的例子是将一个MP4格式的视频文件提取出它的音频来,也就是:输入是一个mp4视频文件,输入是一个acc音频文件。下面看怎么使用ffmpeg的这个功能。
添加环境变量

发布了520 篇原创文章 · 获赞 1274 · 访问量 187万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览