FFmpeg开发笔记搭建Windows系统的开发环境

Posted aqi00的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FFmpeg开发笔记搭建Windows系统的开发环境相关的知识,希望对你有一定的参考价值。

由于Linux系统比较专业,个人电脑很少安装Linux,反而大都安装Windows系统,因此提高了FFmpeg的学习门槛,毕竟在Windows系统搭建FFmpeg的开发环境还是比较麻烦的。
不过若有已经编译好的Windows版本FFmpeg开发包,那就免去了繁琐的Windows编译过程,所以直接安装已编译的FFmpeg开发包,还是相对容易的。在Windows系统安装FFmpeg之前,要先安装MSYS2。
一、安装MSYS2​
MSYS2允许在Windows系统模拟Linux环境,它的命令行界面可以很好地仿真Linux终端,所以在Windows系统上编译和执行FFmpeg程序都要通过MSYS2的控制台操作。以下是在Windows系统安装MSYS2的步骤说明。
1、到这个网址下载MSYS2的安装包 https://github.com/msys2/msys2-installer/releases/,打开该页面后单击Assets文字以便展开安装包列表,接着单击MSYS2的Windows安装包链接,比如msys2-x86_64-20230318.exe,浏览器就开始下载Windows版本的安装文件。
2、双击下载好的msys2-x86_64-20230318.exe,根据安装向导的指引一步一步完成安装Windows版本的MSYS2。
3、MSYS2安装完毕,打开安装目录下的msys2_shell.cmd,去掉该文件第17行代码的注释,也就是删除关键字rem,修改之后的代码如下所示:

set MSYS2_PATH_TYPE=inherit

 

之所以把该行代码去掉注释,是因为要让MSYS2继承Windows系统的Path环境变量,否则后面编译会报错。
4、依次选择Windows开始菜单的“Windows系统”——“命令提示符”,打开Windows的命令行界面。接着先进入msys64目录,再打开MSYS2的命令行窗口,也就是依次执行以下命令:

cd E:\\msys64
msys2_shell.cmd -mingw64

 

之所以要在msys2_shell.cmd后面添加“ -mingw64”,是为了让MinGW运行于64位模式,而非默认的32位模式。MinGW允许在Windows系统执行Linux的编译命令。如果说MSYS2相当于Windows环境的Linux模拟器,那么MinGW给MSYS2准备了32位和64位两套编译器,而我们的目标是在Windows系统模拟64位的Linux开发环境。
5、虽然安装完了MSYS2,可是一开始里面只支持cd和ls等基本命令,竟然连gcc和make这些编译命令都没有,因此要先给它安装常用的编译工具。在MSYS2的命令行输入以下命令安装几个编译工具:

pacman -S gcc make nasm pkg-config diffutils zlib vim

 

pacman在安装过程中会提示[Y/n]确认是否继续安装,此时输入Y确定安装即可。等待pacman将编译工具安装完毕,会在mingw64\\bin下面找到相应的可执行程序了。如果在打开MSYS2窗口时,msys2_shell.cmd命令后面没加“ -mingw64”,那么编译工具会默认装到mingw32\\bin目录;只有在msys2_shell.cmd命令后面加上“ -mingw64”,编译工具才会装到mingw64\\bin目录。
二、安装FFmpeg
安装好了MSYS2,再来安装FFmpeg,具体的安装步骤说明如下:
1、到这个网址下载Windows环境编译好的FFmpeg安装包https://github.com/BtbN/FFmpeg-Builds/releases,比如ffmpeg-master-latest-win64-gpl-shared.zip。
2、把ffmpeg-master-latest-win64-gpl-shared.zip解压到指定目录,并将解压后的目录改名为ffmpeg,比如E:\\Program Files\\ffmpeg。
3、编辑Windows系统变量列表里的Path变量,给它添加两个目录,第一个是FFmpeg的可执行程序及其动态库目录,比如E:\\Program Files\\ffmpeg\\bin;第二个是MSYS2的可执行程序目录,比如E:\\msys64\\usr\\bin。之所以给Path变量添加这两个目录,是为了在命令行输入相关命令时,Windows能够自动找到对应的可执行程序。
4、在MSYS2的控制台执行以下命令查看FFmpeg的版本信息:

ffmpeg -version

 

发现控制台回显如下所示的FFmpeg版本与编译器版本信息,说明FFmpeg程序成功跑起来了。

ffmpeg version 5.1.2 Copyright (c) 2000-2022 the FFmpeg developers
Built with gcc 12.2.0 (Rev4, Built by MSYS2 project)

 

​三、编写测试程序
关于C语言的代码验证,可采用上一篇文章介绍的测试代码及其编译命令,这里不再赘述了。

FFMpeg在Windows下搭建开发环境

本文转载自:http://blog.csdn.net/wootengxjj/article/details/51758621

FFmpeg 是一个优秀的程序库,开源、跨平台并且使用者众多,可以使用在 Windows 和 Linux 等平台下,本文将简单讲解 Windows 平台下 FFmpeg 开发环境的简单搭建过程。

开发环境:Windows10+Visual Studio 2013

1. 打开FFMpeg官网下载页面,点击上面的Download下载源码并解压;

2. 点击官网下面的Windows图标下的Windows Builds,下载最新的32-bit Shared 和 32-bit Dev 包并解压(也可以根据目标环境的不同选择64位),个人建议将两个压缩包解压后合并到一个文件夹中,如下图所示。由于FFmpeg不同的版本升级时,有些函数是被抛弃了,导致现有的网上例子无法运行,最好到下面地址中选取一个较早的版本下载。开发版本下载地址:https://ffmpeg.zeranoe.com/builds/win32/dev/,win32运行库下载地址:https://ffmpeg.zeranoe.com/builds/win32/shared/。本文选取的版本为:2015-09-16 Git-cbbd906。

技术分享

 

在系统环境变量添加:

技术分享

 

这样在开发的时候就不需要在每个文件夹下拷贝运行库了。

3. 打开 Visual Studio 2013,新建项目,选择 Visual C++ 中的 Win32 控制台应用程序,确定,完成。

技术分享

 

4. 进入 FFmpeg 源码文件夹下的doc/examples 文件夹,找到 metadata.c 文件,该文件是一个独立 demo,运行结果为打印音视频媒体文件基本信息。打开将其中的内容复制并粘贴到 FFmpeg第一个程序.cpp 中,稍微修改如下。

技术分享

 

5. 在 Visual Studio 中的项目名上右击,打开属性,分别设置 配置属性 ->C/C++ -> 附加包含目录和6 配置属性 -> 链接器 -> 附加库目录为第二步解压好的 32-bit Dev 文件夹下的 include 文件夹和 lib 文件夹,同时在配置属性 -> 链接器 -> 输入 -> 附加依赖项添加 avformat.lib 和 avutil.lib。

技术分享

 

6、编译执行。

技术分享

以上是关于FFmpeg开发笔记搭建Windows系统的开发环境的主要内容,如果未能解决你的问题,请参考以下文章

一Windows 音视频开发环境搭建

一Windows 音视频开发环境搭建

FFmpeg windows软件开发环境搭建

FFMpeg在Windows下搭建开发环境

麒麟系统开发笔记:国产麒麟系统搭建开发环境之虚拟机安装

麒麟系统开发笔记:国产麒麟系统搭建Qt开发环境安装Qt5.12