windows 11编译安装ffmpeg(包含ffplay)

news/2024/11/15 1:17:01/

一、源码及安装包下载

1.1,ffmpeg源码包下载

    下载地址:Download FFmpeg

1.2,mysys下载

    下载地址:MSYS2

1.3,libx264源码包下载

    下载地址:x264, the best H.264/AVC encoder - VideoLAN

二、软件安装

2.1,mysys安装

2.1.1,安装

    双击运行msys2-x86_64-20240727.exe安装文件,一步一步安装软件,安装完成如图(本人安装目录为D:\developerSoft\mysys64):

2.1.2,配置

    修改D:\developerSoft\msys64\msys2_shell.cmd文件,将 rem set MSYS2_PATH_TYPE=inherit 修改成 set MSYS2_PATH_TYPE=inherit

2.1.3,修改源

    1,进入D:\developerSoft\msys64\etc\pacman.d目录,修改如下三个配置文件:

    2,在mirrorlist.mingw32文件的最上方加入如下源:

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686/
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/

    3,在mirrorlist.mingw64文件的最上方加入如下源:

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/

    4,在mirrorlist.msys文件的最上方加入如下源:

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch/
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/

2.1.4,安装依赖组件

     启动mysys mingw64

    在打开的mysys mingw64命令行中安装相应组件(为实现ffplay,需要安装SDL2):

pacman -Syu
pacman -S mingw-w64-x86_64-toolchain
pacman -S git
pacman -S make
pacman -S automake
pacman -S autoconf
pacman -S perl
pacman -S libtool
pacman -S mingw-w64-i686-cmake
pacman -S pkg-config
pacman -S mingw-w64-x86_64-SDL2

2.2,libx264安装

2.2.1,源码包解压放置

    解压libx264的源码包,并将安装包放在mysys安装目录下面(我放在D:\developerSoft\msys64目录下):

2.2.2,编译安装

./configure  --prefix=/usr/local/libx264 --enable-static --enable-shared --extra-ldflags=-Wl,--output-def=libx264.def
make -j8
make install

2.2.3,配置

    根据安装生成的libx264.def文件进行lib库的生成(cp /x264-master/libx264.def /usr/local/libx264/lib/)。在windows中lib命令需要安装msvc,我本地安装目录为:D:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\bin\Hostx64\x64

    cmd命令窗口执行:

cd D:\developerSoft\msys64\usr\local\libx264\lib
"D:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\bin\Hostx64\x64\lib.exe" /machine:x64 /def:libx264.def

    执行完后,目录下面新增文件如下:

2.2.4,添加环境变量

    打开mysys目录下面的etc/profile文件,添加环境变量:

2.3,ffmpeg安装

2.3.1,源码包解压放置

    解压ffmpeg的源码包,并将安装包放在mysys安装目录下面(我放在D:\developerSoft\msys64目录下):

2.3.2,编译安装

./configure --prefix=/usr/local/ffmpeg --arch=x86_64 --enable-shared --enable-gpl --enable-debug --disable-static --enable-sdl2 --enable-ffplay --enable-ffprobe --enable-ffmpeg --enable-libx264 --disable-vulkan --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --extra-cflags="-I/usr/local/libx264/include" --extra-ldflags="-L/usr/local/libx264/lib"
make -j8
make install

2.3.3,环境变量添加

    编辑 /etc/profile

    source /etc/profile

三、播放测试

    安装完成后,在mysys目录下的/usr/local/ffmpeg/bin目录下将存在对应的执行文件:

    我们拷贝一个视频文件ffxxz35.mp4到该目录下,通过mysys mingw64命令行窗口执行命令,结果如下:

    至此,整个ffmpeg源码编译安装完成。


http://www.ppmy.cn/news/1547086.html

相关文章

unity3d————协程练习题

1.计秒器: void Start(){StartCoroutine(MyCoroutine());}IEnumerator MyCoroutine(){int time 0;while(true){print(time "秒");time;yield return new WaitForSeconds(1);}} 结果: 2.生成多个cude (不卡顿)&#x…

Qt 使用QTreeView显示并动态的增删改查JSON文件数据

文章目录 效果图概述部分代码总结 效果图 概述 本案例在此开源项目QJsonModel的基础上实现,动态的生成并操作JSON数据,QJsonModel是一个基于QAbstractItemModel的JSON数据模型,它提供了一种简单的方式来将JSON数据可视化,功能简单…

JSON-RPC-CXX深度解析:C++中的远程调用利器

一、引言 1. JSON-RPC 简介及其在 C 开发中的重要性 JSON-RPC(JavaScript Object Notation - Remote Procedure Call)是一种基于 JSON 格式的远程过程调用协议。在 C 开发中,它扮演着至关重要的角色。随着软件系统的日益复杂和分布式架构的…

PHP中小学优校管理系统小程序源码

🏫 中小学优校管理系统:打造教育新生态,赋能智慧校园 🏫 🏷️ 开篇:为什么我们需要中小学优校管理系统? 在教育日新月异的今天,传统的管理模式已难以满足现代学校的需求。面对庞大…

Hadoop学习--第一章 Hello大数据分布式

第一章 Hello大数据分布式 数据导论 什么是数据? 数据:一种可以被鉴别的对客观事件进行记录的符号。 简单来说就是:对人类的行为及产生的事件的一种记录。 数据的价值 对数据的内容进行深入分析,可以更好的帮助了解事和物在现实世界的运…

(蓝桥杯C/C++)——基础算法(下)

目录 一、时空复杂度 1.时间复杂度 2.空间复杂度 3.分析技巧 4.代码示例 二、递归 1.递归的介绍 2.递归如何实现 3.递归和循环的比较 4.代码示例 三、差分 1.差分的原理和特点 2.差分的实现 3.例题讲解 四、枚举 1.枚举算法介绍 2.解空间的类型 3. 循环枚举解…

vue2和vue3的区别详解

vue2 VS vue3 对比vue2vue3配置脚手架cmd命令行可视化方式创建脚⼿架组件通信props、$emit、provide、$arrts、EventBus等props、$emit、provide、inject、arrts等数据监听watch,computedwatch,watchEffect,computed双向绑定Object.definePropertyProxyAPI⽣命周期四个阶段befo…

如何运营Github Org

目录 前言 正文 关于分支保护 特别说明 如何在Windows环境下配置GitHub Desktop GPG签名? 推荐分支保护选择 关于good first issue 如何设置good first issue? 关于Project 尾声 🔭 Hi,I’m Pleasure1234🌱 I’m currently learni…