FFmpeg源码编译

news2024/9/21 7:37:11

msys2 依赖环境安装

    • 依赖环境安装
    • 编译X264
    • 编译 fdk-aac
    • 文件处理
    • 编译x265
    • 编译FFmpeg

依赖环境安装

要安装的依赖的说明

增加数据源

编译X264

用于h264 AVC视频格式编码

CC=cl ./configure --enable-shared  #指定使用cl,编译成动态链接库
make -j32  #使用32线程进行编码
make install
  1. 命令一

关于第一条命令执行之后出现的错误:(我的F盘是exFAT文件格式的移动硬盘,所以会报错)
在这里插入图片描述

在这里插入图片描述

2.命令三
在这里插入图片描述

在这里插入图片描述

安装完成后,下面的目录里有了内容:

在这里插入图片描述

对于其中描述 x264 库的编译和链接信息见.pc文件

在这里插入图片描述
在这里插入图片描述

编译 fdk-aac

由于提供了 .vc的makefile文件,直接make就好了。

nmake -f Makefile.vc # 编译过程
nmake -f Makefile.vc prefix=.\install install # 安装过程

1.关于命令一、二
在VS 命令行窗口中输入:
在这里插入图片描述
命令描述
在这里插入图片描述

文件处理

将生成的文件
在这里插入图片描述
都复制到
在这里插入图片描述
之后,fdk-aac的文件与x264的文件都放在了一起
在这里插入图片描述
但是,pkgconfig里没有fdk-aac的配置文件,需要手动添加
在这里插入图片描述
找到
在这里插入图片描述
复制到此,并重命名为fdk-aac.pc
在这里插入图片描述

进入fdk-aac.pc文件改写为:

prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: Fraunhofer FDK AAC Codec Library
Description: AAC codec library
Version: 
Libs: -L${libdir} -lfdk-aac
Libs.private: 
Cflags: -I${includedir}

编译x265

将解压出的x265文件放在下面的目录下:在这里插入图片描述

make-Makefiles.sh
nmake install 

首先查看,/usr/bin下含有cmake的文件,发现有两个 cmake.exe与ccmake.exe
这里对cmake.exe重命名 `mv cmake.exe myrename.exe
在这里插入图片描述
然后进行编译 make-Makefiles.sh

编译成功
在这里插入图片描述
然后,切换管理员模式执行nmake install以便文件有写入权限。
具体地:首先以管理员模式打开命令行窗口
在这里插入图片描述
接着:正常输入命令msys2_shell.cmd -mingw32即可进入管理员模式的msys2
在这里插入图片描述
可以看到用户标志变成了 #
在这里插入图片描述
然后,转到下载好文件的路径,
在这里插入图片描述

将文件拷贝复制到

在这里插入图片描述
接着,找到
在这里插入图片描述
将其头文件稍加修改:具体地将第一行,路径改一下,以防msys2不认识C盘的路径

prefix=/usr/local

编译FFmpeg

CC=cl.exe ./configure --prefix=./install --toolchain=msvc --enable-shared --disable-programs --disable-ffplay --disable-ffmpeg --disable-ffprobe --enable-libx264 --enable-gpl --enable-libfdk-aac --enable-nonfree --enable-libx265
make -j16
make install

切到ffmpeg-4.3路径下,执行命令,报错:
在这里插入图片描述
在这里插入图片描述

考虑,将 pkgconfig剪切
在这里插入图片描述
粘贴到
在这里插入图片描述
再重新编译:
继续报错
在这里插入图片描述
去到 x264的配置文件中查看lib文件在哪里
在这里插入图片描述
发现 libx264.lib 文件不存在,需要将 libx264.dll.lib重命名为lbx264.lib
在这里插入图片描述
再次重新编译,继续报错:
在这里插入图片描述
在这里插入图片描述
然后,依然先查看 x265.lib的位置:

将 libx265.lib重命名为 x265.lib
在这里插入图片描述
在这里插入图片描述
最后生成成功
在这里插入图片描述
接着进行编译
在这里插入图片描述
然后进行安装
在这里插入图片描述
最后FFmpeg源码就编译完成了,此时有下面的文件 后面会将 .lib文件和 .dll文件进行分开
在这里插入图片描述

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

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

相关文章

专注 APT 攻击与防御—工具介绍—Sqlmap

sqlmap参数详解: 由于Sqlmap 是常用工具之一,所以本篇的篇幅较长,详解一次所有参数。 1、Options(选项) Usage: python sqlmap.py [options]Options(选项):-h, --help Show basic help messa…

Ultralytics YOLOv8 英伟达™ Jetson®处理器部署

系列文章目录 前言 本综合指南提供了在英伟达 Jetson设备上部署Ultralytics YOLOv8 的详细攻略。此外,它还展示了性能基准,以证明YOLOv8 在这些小巧而功能强大的设备上的性能。 备注 本指南使用Seeed Studio reComputer J4012进行测试,它基于…

金融风控信用评分卡建模(Kaggle give me credit数据集)

1 数据预处理数据 数据来源于Kaggle的Give Me Some Credit,包括25万条个人财务情况的样本数据 1.1 导包读数据 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.ensemble import RandomForestRegressor import seaborn as …

备考2024年上海初中生古诗文大会:单选题真题示例和独家解析

上海市中小学生的初中生古诗文大会——即上海中学生古诗文大会(初中组)和小学生古诗文大会(比赛)相比,除了题型更丰富之外,最主要的是考察的内容深度和广度不同。初中的题目中对于文言文的考察大幅增加&…

树莓派驱动RGB灯-rpi-ws281x库安装

1 树莓派的操作系统安装 1.1 操作系统选择 这个选择64位的操作的系统来驱动,一定不要选择32位的操作系统。笔者在这个地方浪费不少时间,具体原因不是很清楚。如果32位的操作系统,后面在rpi-ws281x的库时候会有报错。 1.2 操作系统链接如下…

嵌入式Linux八股(二)——Linux

二、Linux 01.Linux系统编程 01.Linux系统文件类型: 7/8 种 普通文件:- 目录文件:d 字符设备文件:c 块设备文件:b 软连接:l 管道文件:p 套接字:s 未知文件 文件权限说明 …

虚拟机中安装的CentOS7的桌面右上角没有网络图标解决方案

问题描述 今天在打开CentOS7后,发现右上角的网络图标不见了,然后命令行访问百度也不通。然后上网查了一些解决方法。 原因分析及解决方案: 上网查了许多解决方法,其中一种成功解决了我的问题;我的是配置文件的问题。…

探索 去中心化的Web3.0

随着区块链技术的日益成熟和普及,Web3(Web 3.0)已经成为一个无法忽视的趋势。Web3不仅仅是一个技术概念,更是一个去中心化、透明、用户数据拥有权归还给用户的互联网新时代。在这篇文章中,我们将深入探讨Web3技术的核心…

漏洞发生时,企业应该怎么做?

2021年,相关法律法规的完善极大促进了中国网络安全行业的发展,基于企业稳定运营、安全运营的原则,越来越多的领域投入到企业安全合规的建设中来。但现状是,随着安全建设的不断深入,各项出台的法规、政策并不一定能充分…

nodejs切换

1.卸载nodejs 2.下载nvm工具 3.检查nvm安装情况 nvm -v3.nvm 安装命令 nvm install 10.16.34.查询nodejs版本 nvm list5.切换nodejs版本 nvm use 10.16.3

【Node.js】03 —— HTTP 模块探索

🌟Node.js之HTTP模块探索✨ 🌟引言 在网络编程中,HTTP协议无处不在。在Node.js的世界里,我们可以通过内置的http模块来轻松创建HTTP服务器和客户端,实现数据的接收和发送。今天就让我们一起打开这扇门,探索…

Redis入门到通关之Redis数据结构-ZSet篇

文章目录 欢迎来到 请回答1024 的博客 🍓🍓🍓欢迎来到 请回答1024的博客 关于博主: 我是 请回答1024,一个追求数学与计算的边界、时间与空间的平衡,0与1的延伸的后端开发者。 博客特色: 在我的…

Springboot+Vue项目-基于Java+MySQL的海滨体育馆管理系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

WebGL绘制和变换三角形

1、绘制多个点 构建三维模型的基本单位是三角形。不管三维模型的形状多么复杂,其基本组成部分都是三角形,只不过复杂的模型由更多的三角形构成而已。 gl.vertexAttrib3f()一次只能向顶点着色器传入一个顶点,而绘制三角形、矩形和立方体等&am…

UTONMOS:用区块链技术拓展商业边界在哪里?

引言 大约从 2021 年Web 3 这个新概念开始受到风险基金和科技圈的普遍关注。但如果你对过去几年区块链的发展历史足够了解,就应该已经意识到现在的 Web 3 并不是什么新技术,甚至不是旧技术的进步,它只是一个基于区块链技术的宏大构想。 我是…

总结一期Jvm

Jvm 数据结构 内存/结构 JVM内存结构主要有三大块:堆内存、方法区和栈。堆内存是JVM中最大的一块内存地址,它主要由年轻代和老年代还有持久代组成,所有new出来的对象都存储在该区域. 栈就是暂存数据的地方,每个线程包含一个栈区,栈存放在一级缓存中&a…

软考 - 系统架构设计师 - 架构风格例题

问题一: 什么是软件架构风格? 软件架构风格指特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式。惯用模式反映了众多系统所共有的结构和语义。 集成开发环境与用户的交互方式 (实际上询问在交互方面&am…

Qt gsl库配置踩坑记录

想求解非线性方程组,之前使用拟牛顿法写过相关的matlab代码,这次想移植到C代码,网上说gsl库挺好用的,于是我也想试一下。相关参考: 【C】GSL(GNU Scientific Library) 的安装及在 Visual Studio 2017 中的使用 QT5使用…

在matplotlib中控制colorbar的长度

在matplotlib中控制colorbar的长度 使用matplotlib绘制带颜色的箭头图,有时想直接把颜色条拿来当比例尺条,就需要控制颜色条的长度。 1. pyplot.colorbar()参数说明 pyplot.colorbar(mappable, ax, cax, **kwargs) mappable是一个ScalarMappble类型的…

C# 图像旋转一定角度后,对应坐标怎么计算?

原理分析 要计算图像内坐标在旋转一定角度后的新坐标,可以使用二维空间中的点旋转公式。假设图像的中心点(即旋转中心)为 (Cx, Cy),通常对于正方形图像而言,中心点坐标为 (Width / 2, Height / 2)。给定原坐标点 (X, …