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

news2024/11/15 17:44:35

本文使用 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.coloradmin.cn/o/1914675.html

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

相关文章

视频共享交换平台LntonCVS视频监控平台智慧加油站安全管理方案

加油站作为危化品行业的一部分,日常的加油和卸油作业安全至关重要。目前国内加油站的管理主要依赖于人为管控、监控摄像头和人工巡检,这些方法存在效率低下和反应滞后的问题。为了有效应对安全风险,急需引入人工智能、物联网和大数据技术&…

Android14系统应用统一裁剪方案

Android14系统应用统一裁剪方案 背景 当前移除集成到系统里的应用,一般都是根据应用名,到各个mk文件里逐个在PRODUCT_PACKAGES中删除;这种方法,耗时而且不易管理集成到系统里的应用;需要有一个统一管理删除不需要应用的方案。 方案 参考PRODUCT_PACKAGES变量,添加PRO…

NVIDIA良心给显卡免费升级,只为挨更多的骂

起猛了,还真的以为 NVIDIA 良心发现了。 众所周知,英伟达对于咱们普通游戏玩家向来不屑一顾。只因为游戏业务在 NVIDIA 收入中占比较少。 在最新的 40 系显卡 RTX 4070 Ti Super 显卡中,NVIDIA悄悄给它来了一次核心「升级」,将原…

开发问卷微信小程序:从零到部署

开发问卷小程序:从零到部署 引言 微信小程序作为一种轻量级的应用形式,以其便捷性和广泛的用户基础,成为开发者的新宠。本博客将详细介绍如何使用HBuilderX编辑器和uView UI框架,开发一款问卷小程序。 环境准备 HBuilderX下载与…

快速拿下GIS开发的正确方式→定制属于自己的gis学习路线图

随着技术融合,人工智能、大数据、物联网与GIS的结合应用,以及移动GIS和云GIS解决方案的兴起,GIS行业的市场规模和应用深度持续增长,为智慧城市、环境保护、自然资源规划、智能交通、商业分析与研究、应急管理等多个领域带来革新。…

【ajax+node.js+webpack+git】学习笔记---ajax01

一、学习资料 1.学习课程 黑马程序员前端AJAX入门到实战全套教程,包含学前端框架必会的(ajaxnode.jswebpackgit),一套全覆盖_哔哩哔哩_bilibili 2.学习框架 二、AJAX 1.定义 使用XMLHttpRequest对象与服务器通信。具有异步特性…

react 组件通信 —— 父子传值 【 函数式/类式 】

1、函数式组件通信 父子间通信 —— 父传子 父组件 export default function father() {return (<div style{{width:400px,height:200px,background:pink,marginLeft:500px}}>我是父组件<hr /><Son name{"韩小刀"}/></div>) } 子组件 ex…

【CUDA】 Trust基本特性介绍及性能分析

Trust简介 Thrust 是一个实现了众多基本并行算法的 C 模板库,类似于 C 的标准模板库(standard template library, STL)。该库自动包含在 CUDA 工具箱中。这是一个模板库,仅仅由一些头文件组成。在使用该库的某个功能时,包含需要的头文件即可。该库中的所有类型与函数都在命名空…

【C++】C++11(三)

我们在C11&#xff08;2&#xff09;中已经很好的解释了右值引用&#xff0c;这次来看看右值引用剩余的一些话题&#xff1a;可变参数包与emplace_back。 目录 可变参数模板&#xff1a;可变参数的sizeof&#xff1a;可变参数的展开&#xff1a;递归函数方式展开参数包&#x…

前端JS特效第27波:jQuery商品放大镜预览代码

jQuery商品放大镜预览代码&#xff0c;先来看看效果&#xff1a; 部分核心的代码如下&#xff1a; <!doctype html> <html lang"zh"> <head> <meta charset"UTF-8"> <meta http-equiv"X-UA-Compatible" content&quo…

【数智化案例展】厦门市信息中心——爱数助力厦门政务云构建两地三中心多级数据灾备体系...

‍ 爱数案例 本项目案例由爱数投递并参与数据猿与上海大数据联盟联合推出的《2024中国数智化转型升级创新服务企业》榜单/奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 厦门市信息中心是厦门市电子政务专门机构&#xff0c;加挂厦门市电子政务中心、厦门市大数…

拆分盘究竟是什么?一篇文章带你了解!

拆分盘是一种特殊的理财产品或投资模式&#xff0c;它通常被描述为“只涨不跌”的投资方式&#xff0c;多指股票&#xff0c;但实质上与传统股市中的股票有本质区别。以下是对拆分盘的详细解析&#xff1a; 一、拆分盘的定义 拆分盘可以理解为一种只涨不跌的理财股票。其特点在…

1996-2023年各省农村居民人均消费支出数据(无缺失)

1996-2023年各省农村居民人均消费支出数据&#xff08;无缺失&#xff09; 1、时间&#xff1a;1996-2023年 2、来源&#xff1a;国家统计局、统计年鉴 3、指标&#xff1a;农村居民人均消费支出 4、范围&#xff1a;31省 5、缺失情况&#xff1a;无缺失 6、指标解释&…

HTTP中常见的状态码有哪些?

常用的包括以下几个&#xff1a; 200&#xff1a;表示客户端请求成功 201&#xff1a;请求成功,服务器创建了新资源。 204&#xff1a;无内容&#xff0c;服务器成功处理请求&#xff0c;但未返回任何内容。 206: 表示“部分内容”,当客户端请求一个资源的一部分时&#xff0c;…

如何利用AI自动生成绘画?5款AI绘画的六大神器!

以下是五款专业级别的AI绘画工具&#xff0c;它们能够帮助用户迅速生成高质量的AI艺术作品&#xff1a; 1.AI先行者&#xff1a; 这是一款流行的 AI 绘画平台&#xff0c;它利用深度学习技术将你的照片或图像转换成艺术风格的绘画作品。你可以在线使用上上传图片并选择喜欢的艺…

微信定时推送LeetCode每日一题,再也不怕没人喊你刷题了

前段时间发过一篇关于微信机器人开发的文章&#xff0c;讲述了如何快速开发一个微信机器人&#xff0c;本篇文章就来实现一个最近开发的一个功能案例&#xff0c;在这个案例中会遇到了各种问题&#xff0c;可以帮助大家减少自己去踩坑的时间。通过此案例也可以帮助你去扩想一些…

OpenCV中使用Canny算法在图像中查找边缘

操作系统&#xff1a;ubuntu22.04OpenCV版本&#xff1a;OpenCV4.9IDE:Visual Studio Code编程语言&#xff1a;C11 算法描述 Canny算法是一种广泛应用于计算机视觉和图像处理领域中的边缘检测算法。它由John F. Canny在1986年提出&#xff0c;旨在寻找给定噪声条件下的最佳边…

storybook中剔除chakra-ui的影响,或者剔除其他ui包的影响

介绍 经过一系列初始化完成后&#xff0c;storybook项目启动出来发现多余了一个ui框架的内容。如下图 因为项目中仅仅使用chakraUI的一些功能&#xff0c;并没有使用整体组件功能&#xff0c;所以说完全没必要把它留着这里。经过排查可以使用storybook中的refs功能剔除掉不需要…

1996-2023年各省农业总产值数据(无缺失)

1996-2023年各省农业总产值数据&#xff08;无缺失&#xff09; 1、时间&#xff1a;1996-2023年 2、来源&#xff1a;国家统计局、各省年鉴 3、指标&#xff1a;农业总产值 4、范围&#xff1a;31省 5、缺失情况&#xff1a;无缺失 6、指标解释&#xff1a;农业总产值是…

多协议网关设计架构与实现,支持 RS485/232、CAN、M-Bus、MQTT、TCP 等工业协议接入(附代码示例)

一、项目概述 1.1 背景 随着物联网技术的快速发展&#xff0c;越来越多的设备需要接入网络进行数据交互。然而&#xff0c;不同设备往往采用不同的通信协议&#xff0c;例如工业现场常用的Modbus、CAN、电力载波等&#xff0c;以及物联网领域常用的MQTT、TCP/IP等&#xff0c…