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; } |

测试结果如下:

相关推荐
qq_393828223 小时前
电脑休眠设置
windows·电脑·软件需求
网安小白的进阶之路6 小时前
A模块 系统与网络安全 第三门课 网络通信原理-3
网络·windows·安全·web安全·系统安全
芳草萋萋鹦鹉洲哦13 小时前
【vue3+tauri+rust】如何实现下载文件mac+windows
windows·macos·rust
李洋-蛟龙腾飞公司13 小时前
HarmonyOS NEXT应用元服务常见列表操作多类型列表项场景
windows
new_zhou18 小时前
Windows qt打包编译好的程序
开发语言·windows·qt·打包程序
Rocket MAN18 小时前
Rovo Dev CLI Windows 安装与使用指南
windows
fzyz1231 天前
Windows系统下WSL从C盘迁移方案
人工智能·windows·深度学习·wsl
csdn_aspnet1 天前
在 Windows 机器上安装和配置 RabbitMQ
windows·rabbitmq
csdn_aspnet1 天前
Windows Server 上的 RabbitMQ 安装和配置
windows·rabbitmq
热爱生活的猴子1 天前
Poetry 在 Linux 和 Windows 系统中的安装步骤
linux·运维·windows