windows下编译ffmpeg4.4版本

devtools/2024/11/22 20:49:32/

最近在做一个利用ffmpeg库播放rtsp流的一个项目,需要自己编译ffmpeg源码;记录一下编译源码的过程,仅供参考;

目标:

开发环境:windows10系统;

ffmpeg:ffmpeg4.4版本,https://download.csdn.net/download/gz9456/90016803

目标:windows环境下,编译ffmpeg源码,生成对应的动态、静态库;

步骤:

1.安装MSYS2环境,并安装编译所需依赖;

2.将ffmpeg源码放到MSYS2能访问到的文件夹下,比如放到MSYS2的安装目录下的home文件夹;安装目录的home路径,对应的就是终端里的cd /home/, 路径最好不要包含中文,防止编码问题;

3.通过MSYS2终端,cd到ffmpeg的文件夹下;然后输入命令

./configure --prefix=../FFmpeg_install --enable-static --enable-shared

说明: --prefix=../FFmpeg_install这个是指定编译库的目标路径;

特别说明: 这句命令执行时间有点长,大概一分钟左右;

4.执行make,输入指令make -j8

5.执行make install,输入指令make install

编译完成;

具体方法:

1.安装MSYS2:

前提条件:1.windows下需要安装MSYS2,并配置MSYS2环境,

                  2.了解基本的linux系统操作;

 MSYS2作用:相当于在windows环境下,提供一个linux系统;并可以打开对应的终端,在这个终端页面,我们可以输入各种linux命令,例如make,ls,cd等;进入MSYS2的安装目录之后,里面的文件结构也类似于linux系统的文件结构;

配置MSYS2环境:

(备注)MSYS2安装之后,需要更新对应的软件包,类似于linux安装gcc或g++一样;

windows系统下,打开MSYS2终端,需要选择需要的终端,每个终端编译器不一样;根据个人需要,这里选择的是MINGW64的终端;

打开MSYS2终端,输入pacman -Syu 即可以更新软件包;国内网络可能需要更换源,换源方法可以上网找一下;

2.创建ffmpeg编译文件夹

进入MSYS2安装路径下的home文件夹,然后创建一个srccode文件夹,将下载好的ffmpeg源码,拷贝到srccode文件夹下;然后MSYS2终端cd到对应的路径,即cd /home/srccode/ffmpeg-4.4,这个文件夹路径,根据个人配置不同;

3.配置ffmpeg

终端中输入./configure --prefix=../FFmpeg_install --enable-static --enable-shared ,可以根据自己的需要,打开不同的配置;

4.编译、安装ffmpeg

终端中输入make -j8

终端中输入make install

完成编译;

验证:

编译出来的ffmpeg.exe,执行之前,需要添加环境变量。右击此电脑 -> 属性 -> 高级系统设置 -> 环境变量 -> 选择 Path (用户变量和系统变量都要)-> 编辑 -> 新建,添加编译工具链的路径:即将C:/msys64/mingw64/bin添加到path中。

以上;

原创,转载请注明出处;


http://www.ppmy.cn/devtools/136118.html

相关文章

图解 TCP 四次挥手|深度解析|为什么是四次|为什么要等2MSL

写在前面 今天我们来图解一下TCP的四次挥手、深度解析为什么是四次? 上一片文章我们已经介绍了TCP的三次握手 解析四次挥手 数据传输完毕之后,通信的双方都可释放连接。现在客户端A和服务端B都处于ESTABLISHED状态。 第一次挥手 客户端A的应用进…

17. Linux下在虚拟环境中安装CUDA和CUDNN

这个专栏记录我学习/科研过程中遇到的一些小问题以及解决方案,一些问题可能比较蠢请见谅。自用,仅供参考。 ------------------------------------------------------------------------------------ Linux下在虚拟环境中安装CUDA和CUDNN 目标&#xf…

【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段

文章目录 一、MyBatis-Plus简介二、快速入门1、环境准备2、将mybatis项目改造成mybatis-plus项目(1)引入MybatisPlus依赖,代替MyBatis依赖(2)配置Mapper包扫描路径(3)定义Mapper接口并继承BaseM…

React渲染流程与更新diff算法

React 的渲染流程从虚拟 DOM 树的生成到真实 DOM 的挂载和更新是一个层层递进的过程。以下是详细的解析: 渲染流程概述 React 的渲染流程可以分为两个阶段: 初次渲染(Mounting): 将虚拟 DOM 树转换为真实 DOM&#x…

「Chromeg谷歌浏览器/Edge浏览器」篡改猴Tempermongkey插件的安装与使用

1. 谷歌浏览器安装及使用流程 1.1 准备篡改猴扩展程序包。 因为谷歌浏览器的扩展商城打不开,所以需要准备一个篡改猴压缩包。 其他浏览器只需打开扩展商城搜索篡改猴即可。 没有压缩包的可以进我主页下载。 也可直接点击下载:Chrome浏览器篡改猴(油猴…

应用系统开发(12) Zync中实现数字相敏检波

在 Xilinx Zynq 系列(如 Zynq-7000 或 Zynq UltraScale+)中实现数字相敏检波(DSP,Digital Synchronous Detection)可以通过硬件(PL部分,FPGA逻辑)和软件(PS部分,ARM Cortex-A 处理器)的协同工作来实现。以下是一个详细的设计方法,包括基本原理和 Zynq 的实现步骤。…

html兼容性问题处理

文章目录 HTML5兼容性问题及解决方法1. 标签支持问题2. 兼容性检测3. 属性值支持问题4. 媒体支持问题5. Web API支持问题6. CSS兼容性问题7. 特定浏览器问题的解决方法 HTML5兼容性问题及解决方法 HTML5作为一种新的标记语言,虽然带来了许多新特性和改进&#xff0…

典型的 SOME/IP 多绑定用例总结

SOME/IP 部署中 AP SWC 不自行打开套接字连接的原因 在典型的 SOME/IP 网络协议部署场景里,AP SWC 不太可能自己打开套接字连接与远程服务通信,因为 SOME/IP 被设计为尽可能少用端口。这一需求源于低功耗 / 低资源的嵌入式 ECU,并行管理大量…