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

原文链接:https://www.cnblogs.com/aqi00/p/17363751.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:FFmpeg开发笔记(二)搭建Windows系统的开发环境 - Python技术站

(0)
上一篇 2023年4月30日
下一篇 2023年5月5日

相关文章

  • C语言中main函数与命令行参数详细讲解

    C语言中main函数与命令行参数详细讲解 简介 在C语言中,我们通常将所有的程序逻辑写在main函数中。main函数是C语言程序的入口函数,程序从main函数开始执行,当main函数执行完成返回时,整个程序也就结束了。 在本文中,我们将主要讲解C语言中main函数的基本语法以及如何使用命令行参数。 main函数语法 在C语言中的main函数基本语法如下: i…

    C 2023年5月23日
    00
  • C语言中%c与%s的区别与划分详解

    C语言中%c与%s的区别与划分详解 在C语言中,%c和%s是格式化输出的常见控制字符,这两个字符在使用时有所不同。 %c的用法 %c表示输出一个字符,一般和变量类型char搭配使用。在使用%c输出时,必须提供一个字符型参数。 以下是一个示例: #include <stdio.h> int main() { char letter = ‘a’; p…

    C 2023年5月22日
    00
  • linux多线程编程(四)

    Linux多线程编程(四)攻略 前言 本文将讲解在Linux环境下进行多线程编程的基本概念、操作方法和注意事项,通过示例代码演示实现多线程的一些常见用法。 基础知识 线程的创建和销毁 线程是轻量级的进程,一个进程可以包含多个线程。线程的创建和销毁都是通过pthread库中的函数来完成的: #include <pthread.h> int pthr…

    C 2023年5月22日
    00
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#操作本地文件及保存文件到数据库的基本方法总结 操作本地文件是开发中经常需要处理的事情,而保存文件到数据库则会更加复杂,因此本文总结了C#操作本地文件及保存文件到数据库的基本方法。 操作本地文件 在C#中,我们可以使用System.IO命名空间下的类来操作本地文件。下面是一些常见的操作示例: 创建一个新文件 string filePath = @&quot…

    C 2023年5月22日
    00
  • php快速排序原理与实现方法分析

    PHP快速排序原理与实现方法分析 快速排序是一种常见的排序算法,它的核心思想是分治策略,递归地将一个数组分成两个子数组,然后对子数组进行排序。在实际应用中,快速排序通常是最优的(时间复杂度为O(nlogn)),特别是对于大量数据的排序。 基本原理 快速排序基于分治的思想,把数组分成两个子数组,并对每个子数组进行排序。分治的具体过程如下: 首先选择一个基准元素…

    C 2023年5月22日
    00
  • C++使用回溯法解决黄金矿工问题

    C++使用回溯法解决黄金矿工问题的完整攻略如下: 问题描述 黄金矿工是一款经典的游戏,游戏中,玩家控制一个矿工,通过挖掘矿洞,收集尽可能多的金块。每个关卡都有一个矿洞地图,地图上有几块金块和障碍物,矿工只能沿着路径走到每个金块的位置,把它挖掘出来。矿工可以向左、右、上、下四个方向移动,但不能移动到地图外或障碍物上。 现在,我们需要使用回溯法来解决这个问题,并…

    C 2023年5月23日
    00
  • 利用Jackson解析JSON的详细实现教程

    下面我将为你详细讲解利用Jackson解析JSON的实现教程。 一、Jackson解析库 Jackson是一个高效的JSON解析库,它可以快速方便地将JSON解析成Java对象,也可以将Java对象转换成JSON格式的字符串。Jackson支持多种数据格式,包括:JSON、XML、YAML等。但在本文中,重点介绍其JSON解析的应用。 Jackson主要由以…

    C 2023年5月23日
    00
  • 关于python中逆序的三位数

    关于Python中逆序的三位数,你可以按照以下步骤进行处理: 第一步:输入数字 首先,你可以通过input()函数来从用户那里获取一个三位数。具体代码如下: num = input("请输入一个三位数:") 在该代码中,input()函数会弹出一个提示框,要求用户输入一个三位数,然后将用户输入的内容存储到num变量中。 第二步:判断输入是…

    C 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部