(Windows环境)FFMPEG编译,包含编译x264以及x265

本文使用 MSYS2 来编译 ffmpeg 

一、安装MSYS2

MSYS2 是 Windows 下的一组编译套件,它可以在 Windows 系统中模拟 Linux 下的编译环境,如使用 shell 运行命令、使用 pacman 安装软件包、使用 gcc (MinGW) 编译代码等。

MSYS2 的安装也非常省心,只需要到 MSYS2 官网 下载.exe安装包,管理员身份运行安装即可。

安装完毕后,开始菜单里就会有下面的程序:

点击它们就会启动一个 shell 窗口,Just like on Linux ! 这个 shell 程序默认是 Mintty,类似 Linux 系统中的 bash shell。MSYS2 支持多个编译器工具链,它们的环境是独立的(可以去安装文件夹查看),这里选择启动 MINGW64 (如果你也是64位系统的话)。

 国内可以将下载镜像替换为中科大

sed -i "s#mirror.msys2.org/#mirrors.ustc.edu.cn/msys2/#g" /etc/pacman.d/mirrorlist*
pacman -Sy

二、安装MINGW

然后安装mingw64编译链和基本的依赖:全部都按照默认安装即可,安装时会询问,输入y即可

pacman -S mingw-w64-x86_64-toolchain  # mingw64编译工具链,win下的gcc
pacman -S base-devel    # 一些基本的编译工具
pacman -S yasm nasm     # 汇编器

安装完毕后,可以输入gcc -v查看 gcc 版本:

最后需要添加环境变量。右击此电脑 -> 属性 -> 高级系统设置 -> 环境变量 -> 选择 Path (用户变量和系统变量都要)-> 编辑 -> 新建,添加编译工具链的路径:msys2下载的mingw64一般就在你安装的msys2目录里面

三、下载源码

ffmpeg
官网 http://ffmpeg.org/
下载地址 https://ffmpeg.org/releases/ffmpeg-4.2.3.tar.bz2

x265
官网 https://www.videolan.org/
下载地址 http://ftp.videolan.org/pub/videolan/x265/x265_3.2.1.tar.gz

x264
下载地址 http://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20191217-2245.tar.bz2

 全部解压到你安装的msys2目录里的home目录下,然后分别创建install目录

 

四、编译 

1、编译x264

切换到x264的解压目录下,执行下列命令

cd /home/x264-master/
./configure  --prefix=/home/x264_install/ --enable-shared
make -j8
make install

生成的windows库文件在E:\msys64\home\x264_install\bin目录里,不是lib目录

2、编译x265

切换到x265的解压目录下,执行下列命令(x265在windows下是使用ninja编译,与make稍有不同)

 cd  /home/x265_3.2.1/
cmake -DCMAKE_INSTALL_PREFIX=/home/x265_install/ ./source/

cmake执行完后,会在当前目录生成build.ninja等文件

然后执行以下命令

ninja
ninja install

生成库文件如下:

3、编译ffmpeg 

 切换到ffmpeg目录

cd /home/ffmpeg-5.1.5/

指定x264与x265的配置文件目录

 export PKG_CONFIG_PATH=/home/x265_install/lib/pkgconfig/:/home/x264_install/lib/pkgconfig/ 

 echo ${PKG_CONFIG_PATH}          可以看到输出  

 然后运行以下命令

./configure  --prefix=/home/ffmpeg_install/ --enable-gpl --enable-libx264 --enable-libx265 --disable-static --enable-shared --extra-cflags=-l/home/x264_intall/include --extra-ldflags=-L/home/x264_install/lib --extra-cflags=-l/home/x265_intall/include --extra-ldflags=-L/home/x265_install/lib
执行过后会生成MakeFile,然后执行如下

make -j8
make install

生成库文件如下

五、使用库文件 

在使用时必须将x264、x265、ffmpeg同时链接才能使用,不能只链接ffmpeg。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/44624.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RAG技术知识笔记

RAG(Retrieval-Augmented Generation)技术 介绍 Retrieval-Augmented Generation(RAG)是一种将信息检索(IR)与自然语言生成(NLG)相结合的技术,用于构建具有增强回答能力…

ADC分类

目录 一、模数转换器的基本组成 二、ADC基本参数 2.1 分辨率 2.2 采样速率 2.3 满摆幅输入范围 三、静态参数 2.1 微分非线性(DNL) 2.2 积分非线性(INL) 四、动态参数 五、ADC主要类型 模拟数字转换器即A/D转换器&#…

Python 3 和 VSCode:开发者的理想组合

Python 3 和 VSCode:开发者的理想组合 Python 3 和 Visual Studio Code(VSCode)是现代软件开发中的两个重要工具。Python 3 是一种高级编程语言,以其简洁明了的语法和强大的功能而闻名。VSCode 是一款由微软开发的免费、开源的代码编辑器,它以其高效的性能和丰富的扩展而…

C语言 | Leetcode C语言题解之第227题基本计算题II

题目&#xff1a; 题解&#xff1a; int calculate(char* s) {int n strlen(s);int stk[n], top 0;char preSign ;int num 0;for (int i 0; i < n; i) {if (isdigit(s[i])) {num num * 10 (int)(s[i] - 0);}if (!isdigit(s[i]) && s[i] ! || i n - 1) {s…

禁止使用存储过程

优质博文&#xff1a;IT-BLOG-CN 灵感来源 什么是存储过程 存储过程Stored Procedure是指为了完成特定功能的SQL语句集&#xff0c;经编译后存储在数据库中&#xff0c;用户可通过指定存储过程的名字并给定参数&#xff08;如果该存储过程带有参数&#xff09;来调用执行。 …

pnpm workspace使用教程【Monorepo项目】

目录 前言一、pnpm简介特点&#xff1a;对比 二、 创建项目添加文件 pnpm-workspace.yaml目录结构pnpm workspace: 协议修改配置文件执行 安装 三、命令解析执行包命令所有包操作命令 四、实例代码 前言 前面两篇&#xff0c;我们讲了 yarn workspace 和 lerna &#xff0c; …

防火墙(ensp USG6000v)---安全策略 + 用户认证综合实验

一. 题目 1&#xff09; 拓扑 2&#xff09;要求 1. DMZ区内的服务器&#xff0c;办公区仅能在办公时间内(9:00 -- 18: 00)可以访问&#xff0c;生产区的设备全天可以访问 2.生产区不允许访问互联网&#xff0c;办公区和游客区允许访问互联网 3.办公区设备10.0.2.10不充许…

请求被中止: 未能创建 SSL/TLS 安全通道

if (this.RequestHeaders null) { this.RequestHeaders._Referer url.urlTxt; } Sharing.setTips("已发出请求"); text HTTP.GetUrlHtml(url.urlTxt, this.RequestHeaders, this.Timeout, this.cookie); if (text.IndexOf("#EXTM3U") < 0) { Sharing…

桥联亲和素-标记生物素法(BRAB)

桥联亲和素-标记生物素法&#xff08;BRAB&#xff09;是一种基于生物素与亲和素&#xff08;或链霉亲和素&#xff09;之间高亲和力特性的生物医学检测方法。以下是关于BRAB法的详细解释&#xff1a; 一、定义与原理 BRAB法&#xff0c;也称为桥联亲和素-标记生物素法&#xf…

【测试开发】--安全渗透测试

1. 安全渗透 1.1 分类 web数据库安全web应用服务器安全&#xff08;文件上传漏洞、文件包含漏洞&#xff09;web客户端安全&#xff08;XSS跨站攻击&#xff09; 2. sql注入 2.1 sql注入介绍 sql注入在安全问题中排行榜首sql注入攻击是输入参数未经过滤&#xff0c;然后直…

vscode c++可以找到声明却无法自动补全

这个问题折磨了我将近一个月&#xff0c;今天终于被解决了&#xff0c;特此记录 情景再现 事情的起因是我在学习华为的Ascend C算子&#xff0c;需要编写C代码。关于怎么下载库文件怎么编译之类的不是本文的重点&#xff0c;重点是自动补全。 我已经拿到库文件了&#xff0c…

机器学习笔记之监督学习

基本概念 用于训练模型的数据集称为&#xff1a;训练集 成本函数/代价函数&#xff1a;指示模型的运行情况&#xff0c;用于衡量训练数据与该直线的拟合程度。将预测值和目标值做差&#xff0c;该差值也被称为“损失值”。 例如我们需要计算平均的平方误差来衡量 成本函数/…

uniapp适配解决方法

uni-app的专属强大自适应单位upx&#xff0c;rpx&#xff0c;不能动态赋值解决办法… uni-app 使用 upx 作为默认尺寸单位&#xff0c; upx 是相对于基准宽度的单位&#xff0c;可以根据屏幕宽度进行自适应。uni-app 规定屏幕基准宽度750upx。 开发者可以通过设计稿基准宽度计…

无人机之飞行规划与管理篇

无人机飞行规划与管理是确保无人机安全、高效且符合法规的运行的关键步骤。这一过程包括了对飞行任务的详细安排、航线的设定以及风险的评估和管理。下面简述这一过程的主要环节&#xff1a; 一、飞行目的和任务确定 在规划之初&#xff0c;必须明确无人机的飞行目的&#xf…

STM32微控制器在无人机控制中的应用与实践(内附资料)

摘要 无人机技术正迅速发展&#xff0c;STM32微控制器因其高性能和灵活性&#xff0c;成为无人机控制系统的首选平台之一。本文将探讨STM32微控制器在无人机控制中的应用&#xff0c;包括飞行控制、传感器集成、数据通信等方面&#xff0c;同时提供实践代码示例。 1. 无人机控…

微软Win11 24H2七月更新补丁KB5040435发布!附下载

系统之家于7月10日发出最新报道&#xff0c;微软为Win11用户发布了24H2版本七月的最新更新补丁KB5040435。用户升级系统后&#xff0c;会发现版本号升至 26100.1150。此次更新针对远程身份验证拨入用户服务(RADIUS)协议与 MD5冲突等问题进行修复。接下来跟随小编看看此次更新的…

centos安装数据库同步工具sqoop并导入数据,导出数据,添加定时任务

目录 1.安装jdk 1.1上传jdk安装包到/opt目录下并解压 1.2解压 1.3配置环境变量 2.安装hadoop 2.1.下载hadoop 2.2.解压hadoop 2.3配置环境变量 3.安装sqoop 3.1下载 3.2解压 3.3下载依赖包并复制到指定位置 3.3.1下载commons-lang-2.6-bin.tar.gz 3.3.2将mysql-c…

如何在Spring Boot中集成Hibernate

如何在Spring Boot中集成Hibernate 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将探讨如何在Spring Boot项目中集成Hibernate。Hibernate是一个广泛…

ComfyUI+MuseV+MuseTalk图片数字人

电脑配置 GPU12G&#xff0c;如果自己电脑配置不够&#xff0c;选择云gpu&#xff0c;我就是用的这个&#xff0c;自己电脑太老配置跟不上 环境&#xff1a; Python 3.11.8 torch 2.2.1 cuda_12.1 资源提供&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1_idZbF…

Python requests爬虫

Python的requests库是一个强大且易于使用的HTTP库&#xff0c;用于发送HTTP请求和处理响应。它是Python中最受欢迎的网络爬虫框架之一&#xff0c;被广泛用于从网页中提取数据、爬取网站和进行API调用。 使用requests库&#xff0c;你可以轻松地发送各种HTTP请求&#xff0c;包…