FFmpeg三种版本(static、shared、dev)和实际操作举例

0. 概述

FFmpeg 全名是Fast Forward MPEG(Moving Picture Experts Group),是一个集成了各种编解码器的库,也就是一堆程序文件,可以实现图像信息的编码、解码,也就是从视频采集、视频编码到视频传输,都可以调用FFmpeg这个库中的代码来完成。并且这个库还有一个牛逼的地方是,他的代码无视平台,Windows和LinuxAndroid、IOS都可以使用。

1. FFmpeg三种版本

static 版本

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

shared 版本

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

dev 版本

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

  1. libavcodec: 用于各种类型声音、图像编解码
  2. libavdevice: 用于音视频数据采集和渲染等功能的设备相关;
  3. libavfileter:包含多媒体处理常用的滤镜功能;
  4. libavformat:包含多种多媒体容器格式的封装、解封装工具;
  5. libavutil:包含一些公共的工具函数
  6. libpostproc: 用于后期效果处理
  7. libswresample: 用于音频充采用和格式转换等功能;
  8. 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. 实际操作举例

  1. 既然是库,那就应该能够直接使用,或者说调用,我们可以在程序中调用,也可以在控制台直接调用。我们将static版本文件的路径添加到环境变量。然后就可以直接在控制台调用其功能了。
  2. 此处举的例子是将一个MP4格式的视频文件提取出它的音频来,也就是:输入是一个mp4视频文件,输入是一个acc音频文件。下面看怎么使用ffmpeg的这个功能。

添加环境变量

在这里插入图片描述
我就是上面的路径。具体添加环境变量的方法不再赘述。
添加完后,在控制台输入

ffmpeg -version

在这里插入图片描述
就表示正确无误。

在控制台调用ffmpeg的功能

  1. 首先找到一个视频。
    在这里插入图片描述
  2. 控制台输入
ffmpeg -i E:\catarc\yubo\ffmpeg-4.1.3-win32-static\ffmpeg-4.1.3-win32-static\bin\video.mp4 -acodec copy -vn E:\catarc\yubo\toAudio.aac

在这里插入图片描述
其中红框分别为源视频文件和输出音频文件的绝对路径。回车即可。
在这里插入图片描述
可以看到目标位置已经有了一个aac音频文件,点击可以播放。

小结

  以上可以看出ffmpeg就是一个库,我们可以调用其中的功能,可以在控制台直接调用,当然也应该可以在程序中调用。其中的功能特别多,我们可以直接使用,我们可以不学习ffmpeg库内部是如何实现这些功能的,但是如何使用这些功能是我们需要学习了解的。

  换句话说,ffmpeg中一个功能就是一个函数,我们要使用这些函数,起码要知道这些函数的参数有哪些吧,每个参数的取值有哪些吧。这些是我们要学习的。以后再慢慢总结记忆。

参考文章

https://blog.csdn.net/Wu_qz/article/details/80807517
https://www.jianshu.com/p/ddafe46827b7

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值