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

windows下编译ffmpeg4.4版本

最近在做一个利用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.kler.cn/a/404589.html

相关文章:

  • Nacos实现IP动态黑白名单过滤
  • 掌握移动端性能测试利器:深入JMeter手机录制功能
  • Kafka 工作流程解析:从 Broker 工作原理、节点的服役、退役、副本的生成到数据存储与读写优化
  • Java list
  • 推荐几个 VSCode 流程图工具
  • AWTK 最新动态:支持鸿蒙系统(HarmonyOS Next)
  • Redis分布式锁的原理与Redisson实现
  • Python解析视频FPS(帧率)、分辨率信息
  • Qt桌面应用开发 第六天(鼠标事件 定时器事件 定时器类 事件分发器 事件过滤器)
  • p2p网络介绍
  • 编程语言的前后端分离:可用JavaScript运行时作为后端的语言及与传统编程语言的对比 -Typescript、Nim、Moonbit
  • HarmonyOS鸿蒙系统上File文件常用操作
  • 【vue】项目迭代部署后 自动清除浏览器缓存
  • NVR接入录像回放平台EasyCVR视频融合平台加油站监控应用场景与实际功能
  • 前端css 实现 背景渐变,边框渐变
  • 常用并发设计模式
  • 如何在 Microsoft Edge 中设置代理: 快速而简单的方法
  • 学习路之PHP--使用GROUP BY 发生错误 SELECT list is not in GROUP BY clause .......... 解决
  • 【图像检测】深度学习与传统算法的区别(识别逻辑、学习能力、泛化能力)
  • JS学习 - 函数与作用域
  • Redis作为分布式锁,得会避坑
  • SpringBoot与MongoDB深度整合及应用案例
  • Docker1:认识docker、在Linux中安装docker
  • linux之调度管理(8)-SMP cpu 的 psci启动
  • linux之调度管理(11)-cpu动态调频总体架构
  • 华为流程L1-L6业务流程深度细化到可执行