首页 > 系统相关 >FFmpeg开发笔记(二)搭建Windows系统的开发环境

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

时间:2023-04-29 11:33:24浏览次数:46  
标签:MSYS2 FFmpeg Windows 编译 开发 安装 msys2

由于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语言的代码验证,可采用上一篇文章介绍的测试代码及其编译命令,这里不再赘述了。

标签:MSYS2,FFmpeg,Windows,编译,开发,安装,msys2
From: https://www.cnblogs.com/aqi00/p/17363751.html

相关文章

  • Windows安装Python3
    1、Python安装Python是跨平台的编程语言,它可以运行在windowS、Mac和各种Linux/Unix系统上。也就是说,假设在windows系统下编写的Python程序,在Mac或Linux系统下也是可以运行的。目前,Python的版本主要分为两大类,即Python3.X版和Python2.x版,这两个版本是不兼容的。由于Python3.x......
  • XMake学习笔记(1):Windows(MSYS2)下MinGW-w64环境搭建和XMake安装
    以前写的C++基本都是CwithSTL,大多是面向过程的算法题,或者比较小的项目,然后经常报各种编译错误(对编译原理不熟),经常把人搞到崩溃,搞不懂构建、链接之类的东西。现在开始记录一下XMake的学习笔记,记录一些学习过程中踩的坑,在这篇文章,你将学习到Windows下利用MSYS2进行Mingw-w64环境......
  • Django4全栈进阶之路20 项目实战(三种方式开发部门管理):方式一:FBV
    1、模型fromdjango.dbimportmodelsfromdjango.contrib.auth.modelsimportUser#Createyourmodelshere.classDepartment(models.Model):name=models.CharField(max_length=255,verbose_name='部门名称')parent=models.ForeignKey('sel......
  • Qt音视频开发42-网络推流(视频推流/本地摄像头推流/桌面推流/网络摄像头转发推流等)
    一、前言上次实现的文件推流,尽管优点很多,但是只能对现在存在的生成好的音视频文件推流,而现在更多的场景是需要将实时的视频流重新推流分发,用户在很多设备比如手机/平板/网页/电脑/服务器上观看,这样就可以很方便的将分散的视频流统一集中的流媒体服务器上,然后统一对外分发视频,而不......
  • 开发和项目经理又撕逼了,奉劝大家惜命吧……
    关注公众号“Java后端技术全栈”回复“000”获取程序员必备电子书一位就职于【上海**保险科技的】小伙伴,上周星球六,微信电话跟我聊了很久。全程激动得不行:“wocao,我们公司的开发和产品经理打起来了,旁边桌上的很多东西也都被打翻在地……”小伙描述得绘声绘色,看得出来,对于这种事情,他......
  • 使用VSCode取代Keil实现STM32和51单片机的开发
    使用VisualStudioCode开发STM32和51单片机,VSCode作为编辑器来开发嵌入式程序。视频教程:https://www.bilibili.com/video/BV18e4y1H7xX/VSCode简介VisualStudioCode是是由微软研发的一个轻量级但功能强大的源代码编辑器,这个软件是免费开源的,可在您的桌面上运行,并且可用于Windo......
  • Windows下配置vscode和gcc开发环境
    vscode下载安装下载地址vscode官网,直接点击下载可能会比较慢,可以在开始下载之后复制下载地址,然后用vscode.cdn.azure.cn替换下载地址开头,用国内镜像加速下载下载安装完成后打开,安装简体中文插件和C++插件,重启MinGW-w64下载安装由于MinGW-w64的官方二进制版本已经很久没更新了,......
  • windows server加固(密码策略)
    密码策略设置启用密码复杂度,最短密码长度为8,密码的最小长度为7,最长为30使用win建+R,打开运行输入gpedit.msc回车进入本地策略组编辑器设置允许5次登录错误,账户锁定时间为30分钟,重置账户锁定时间30分钟设置sale用户只能在周一至周五8:00到20:00登录......
  • 搭建Cordova开发环境
    Cordova是什么ApacheCordova是一套设备API,允许移动应用的开发者使用JavaScript来访问本地设备的功能,比如摄像头、加速计。它可以与UI框架(如jQueryMobile、angularjs或SenchaTouch)等相结合使用,这些UI框架可以使用HTML、CSS和JavaScript开发智能手机应用。通过Cordova开发的应用,可......
  • Linux kernel 模块开发&构建学习
    主要是学习下kernel模块的玩法,代码来自社区简单kernel代码hello_world.c#include<linux/init.h>#include<linux/module.h>MODULE_LICENSE("DualBSD/GPL");staticinthello_init(void){printk(KERN_ALERT"Hello,world\n");......