当前位置: 首页 > news >正文

(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。

相关文章:

  • 7.深度学习概述
  • Java毕业设计 基于SSM vue图书管理系统小程序 微信小程序
  • Armbian 1panel面板工具箱中FTP服务无法正常启动的解决方法
  • C#中的MD5摘要算法与哈希算法
  • 赛蓝企业管理系统DownloadBuilder接口任意文件读取漏洞复现 [附POC]
  • TQSDRPI开发板教程:编译openwifi工程
  • OSPF实验
  • imx6ull/linux应用编程学习(16)emqx ,mqtt创建连接mqtt.fx
  • 全网最全AI绘画 StablDiffusion系列进阶篇-ControlNet插件介绍
  • java设计模式(十五)命令模式(Command Pattern)
  • 视频减小技巧:十大顶级视频压缩软件
  • OpenGL笔记七之顶点数据绘制命令和绘制模式
  • 制造工厂环保管理的痛点与智慧环保的解决之道
  • cuda安装使用问题,print(torch.cuda.is_available()),仍然输出false,如何解决?
  • AI新手指南:从小白到AI共创者的创业攻略
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • CSS3 变换
  • dva中组件的懒加载
  • JavaScript函数式编程(一)
  • Java比较器对数组,集合排序
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • nfs客户端进程变D,延伸linux的lock
  • Odoo domain写法及运用
  • overflow: hidden IE7无效
  • Redis的resp协议
  • Web设计流程优化:网页效果图设计新思路
  • 成为一名优秀的Developer的书单
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 对超线程几个不同角度的解释
  • 分享一份非常强势的Android面试题
  • 给Prometheus造假数据的方法
  • 关于List、List?、ListObject的区别
  • 前嗅ForeSpider中数据浏览界面介绍
  • 入口文件开始,分析Vue源码实现
  • 新版博客前端前瞻
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • # SpringBoot 如何让指定的Bean先加载
  • #pragma multi_compile #pragma shader_feature
  • ${ }的特别功能
  • (06)Hive——正则表达式
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (2)空速传感器
  • (过滤器)Filter和(监听器)listener
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (四)c52学习之旅-流水LED灯
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (一)Neo4j下载安装以及初次使用
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • .NET 8 跨平台高性能边缘采集网关
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET Core 中的路径问题
  • .skip() 和 .only() 的使用