Windows系统下FFmpeg4.4的环境搭建(二)

一、FFmpeg是什么

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证,它提供了录制、转换以及流化音视频的完整方案。FFmpeg在linux平台下开发,但是它同样也可以在其它操作系统环境中编译运行,包括Windows、Mac OX等。项目的名称来自MPEG视频编码标准,前面的"FF"代表"FastForward"。

二、FFmpeg的组成

构成FFmpeg主要有三个部分:

第一部分是四个作用不同的工具软件,分别是:ffmpeg.exe,ffplay.exe,ffserver.exe和ffprobe.exe

  • ffmpeg.exe:音视频转码、转换器
  • ffplay.exe:简单的音视频播放器
  • ffserver.exe:流媒体服务器
  • ffprobe.exe:简单的多媒体码流分析器

第二部分是可以提供开发者使用的SDK,为各个不同平台编译完成的库,我们可以根据自己的需求使用这些库开发自己的应用程序。这些库有:

  • libavcodec:包含音视频编码器和解码器
  • libavutil:包含多媒体应用常用的简化编程的工具,如随机数生成器、数据结构、数学函数等功能
  • libavformat:包含多种多媒体容器格式的封装、解封装工具
  • libavfilter:包含多媒体处理常用的滤镜功能
  • libavdevice:用于音视频数据采集和渲染等功能的设备相关
  • libswscale:用于图像缩放和色彩空间和像素格式转换功能
  • libswresample:用于音频重采样和格式转换等功能

第三部分是整个工程的源代码,无论是编译出来的可执行程序还是SDK,都是由这些源代码编译出来的。

三、FFmpeg的主要功能

多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。

  • 视频采集功能:ffmpeg视频采集功能非常强大,不仅可以采集视频采集卡或USB摄像头的图像,还可以进行屏幕录制,同时还支持以RTP方式将视频流传送给支持RTSP的流媒体服务器,支持直播应用。
  • 视频格式转换功能:ffmpeg视频转换功能。视频格式转换,比如可以将多种视频格式转换为flv格式,可不是视频信号转换。ffmpeg可以轻易地实现多种视频格式之间的相互转换(wma,rm,avi,mode等),例如可以将摄录下的视频avi等转换成视频网站所采用的flv格式。
  • 视频截图功能:对于选定的视频,截取指定时间的缩略图。视频抓图,获取静态图和动态图,不提倡抓git文件;因为抓出的git文件大而播放不流畅。
  • 给视频加水印功能:使用ffmpeg给视频添加水印。

四、下载官方已编译的FFmpeg版本

下载编译好的Windows版本:Download FFmpeg

点击进入后:

如果只是想要编译好的工具软件,可以选择gpl或者lgpl下载:

如果还想要编译好的库文件,可以选择gpl_shared或者lgpl_shared下载:

五、搭建VS2019工程,并引入FFmpeg开发库

上面是FFmpeg依赖库的目录结构,dll文件夹用来存放dll文件,include文件夹用来存放头文件,lib文件夹用来存放lib文件。

1.将include目录引入到项目中:

右键点击项目->属性->C/C++->常规,弹出如下界面:

选择附加包含目录之后将include的路径添加进去:

2.配置lib文件的路径,点击链接器->常规,选择附加库目录,将lib的路径添加进去:

3.把lib文件加载进来,这个简单,点击链接器->输入之后,将库文件输入进去即可,如下图所示:

4.最后需要把dll文件拷贝到运行工作目录中,即exe运行文件所在目录,可以在生成事件->后期生成事件中添加拷贝命令,如下所示:

六、测试代码

|----------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include <iostream> extern "C" { #include <libavcodec/avcodec.h> #include <libavformat/avformat.h> #include <libswscale/swscale.h> #include <libavdevice/avdevice.h> #include <libavformat/version.h> #include <libavutil/time.h> #include <libavutil/mathematics.h> } int main() { ``const char``* pstrFFmpegConfig = avcodec_configuration(); ``std::cout << ``"config:" << pstrFFmpegConfig << std::endl; ``return 0; } |

测试结果如下:

相关推荐
modest —YBW1 小时前
Ollama+OpenWebUI+docker完整版部署,附带软件下载链接,配置+中文汉化+docker源,适合内网部署,可以局域网使用
人工智能·windows·docker·语言模型·llama
code在飞2 小时前
windows 部署 Kafka3.x KRaft 模式 不依赖 ZooKeeper
windows·分布式·zookeeper·kafka
不会飞的鲨鱼3 小时前
Windows系统下使用Kafka和Zookeeper,Python运行kafka(二)
windows·zookeeper·kafka
2501_9153738813 小时前
Electron 打包与发布指南:让你的应用运行在 Windows、macOS、Linux
windows·macos·electron
田辛 | 田豆芽1 天前
【ASP.net】在Windows 11上安装IIS并测试C# Web项目的踩坑实录
windows·c#·asp.net
6v6-博客1 天前
闲鱼智能客服机器人-实现闲鱼平台7×24小时自动化值守
windows
哞哞不熬夜1 天前
JavaEE--文件操作和IO
java·开发语言·windows·学习·java-ee·intellij-idea·idea
奋斗鱼1 天前
如何清除windows 远程桌面连接的IP记录
windows
对 酒 当 歌 人 生 几 何1 天前
sui在windows虚拟化子系统Ubuntu和纯windows下的安装和使用
linux·windows·ubuntu
qq_393828221 天前
Windows ABBYY FineReader 16 Corporate 文档转换、PDF编辑和文档比较
windows·microsoft·电脑·开源软件·软件需求