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

Windows FFmpeg 开发环境搭建

FFmpeg 开发环境搭建

  • FFmpeg命令行环境搭建
  • 使用FFmpeg官方编译的库
  • Windows编译FFmpeg
    • 1. 下载[msys2](https://www.msys2.org/#installation)
    • 2. 安装完成之后,将安装⽬录下的msys2_shell.cmd中注释掉的 rem set
    • 3. 修改pacman 镜像源并安装依赖
    • 4. 下载并编译源码

FFmpeg命令行环境搭建

  1. 下载编译好的ffmpeg
    在这里插入图片描述
    在搭建命令行环境时,下载ffmpeg-master-latest-win64-gpl.zip,将其解压后bin文件夹下得到3个可执行文件。在这里插入图片描述
    拷⻉可执⾏⽂件到C:\Windows(系统可执行文件搜索路径),在cmd中输入ffmpeg -version进行检查。
    在这里插入图片描述
  2. 使用FFmpeg官方编译的库(也可以)
  • 使用静态库版本
    在这里插入图片描述
  • 使用动态库版本
    在这里插入图片描述
    ffmpeg-master-latest-win64-gpl-shared.zip版本运行时链接动态库使用,将可执行文件放到C:\Windows(系统可执行文件搜索路径),并将动态库拷贝到C:\Windows\SysWOW64(注:(WoW64 (Windows On Windows64 )是⼀个Windows操作系统的⼦系统,被设计⽤来处理许多在32-bit Windows和64-bit Windows之间的不同的问题,使得可以在64-bit Windows中运⾏32-bit程序。))
    在这里插入图片描述
    同样的,进行检查,那么这就是开发者版本。
    在这里插入图片描述

使用FFmpeg官方编译的库

在上一part中得到的shared版本(dev版本),包含开发所需要的头文件和库文件,开发时引入include并链接lib即可。
在这里插入图片描述
使用C++开发时需注意,引入头文件时,声明extern,这是由于ffmpeg对C的支持性导致的。

extern "C" {// your ffmpeg header file
}

Windows编译FFmpeg

之所以需要编译,是因为想要客制化FFmpeg。

1. 下载msys2

2. 安装完成之后,将安装⽬录下的msys2_shell.cmd中注释掉的 rem set

MSYS2_PATH_TYPE=inherit取消(rem 为注释符号,去掉rem即可),这是为了将vs的环境继承给MSYS2。

3. 修改pacman 镜像源并安装依赖

  1. 修改pacman 镜像源
    进入msys2安装目录
  • 编辑 /etc/pacman.d/mirrorlist.mingw32 ,在⽂件开头添加:
    Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686/
    Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/
    
  • 编辑 /etc/pacman.d/mirrorlist.mingw64 ,在⽂件开头添加:
    Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/
    Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
    
  • 编辑 /etc/pacman.d/mirrorlist.msys ,在⽂件开头添加:
    Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch/
    Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/
    
  1. 安装依赖
    我选择的是mingw64 进行编译

    在这里插入图片描述
    打开mingw64

    在这里插入图片描述
    安装依赖

    pacman -S mingw-w64-x86_64-toolchain
    pacman -S git
    pacman -S make
    pacman -S automake
    pacman -S autoconf
    pacman -S perl
    pacman -S libtool
    pacman -S mingw-w64-i686-cmake
    pacman -S pkg-config
    pacman -S mingw-w64-x86_64-SDL2
    pacman -S yasm
    

4. 下载并编译源码

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 将iPad 作为Windows电脑副屏的几种方法(二)
  • 《从C/C++到Java入门指南》- 15. Arrays.sort() JDK接口的使用
  • cmake configure_package_config_file指令详解
  • 【Django】网上蛋糕商城后台-商品管理
  • Linux C++ 058-设计模式之解释器模式
  • Perl 语言的特点
  • MyBatis中的优点和缺点?
  • Linux开发板上拷贝文件
  • ES6 数组的扩展(十六)
  • Python面试宝典第15题:岛屿数量
  • CentOS6minimal安装nginx-1.26.1.tar.gz 笔记240718
  • 使用Docker 实现 MySQL 循环复制(三)
  • 持续集成08--Jenkins邮箱发送构建信息及测试报告
  • js vue axios post 数组请求参数获取转换, 后端go参数解析(gin框架)全流程示例
  • Docker-compose单机容器集群编排
  • 【面试系列】之二:关于js原型
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Elasticsearch 参考指南(升级前重新索引)
  • Fabric架构演变之路
  • Leetcode 27 Remove Element
  • nodejs实现webservice问题总结
  • Odoo domain写法及运用
  • Python十分钟制作属于你自己的个性logo
  • Sass Day-01
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • vue2.0项目引入element-ui
  • 编写高质量JavaScript代码之并发
  • 动态魔术使用DBMS_SQL
  • 基于web的全景—— Pannellum小试
  • 基于组件的设计工作流与界面抽象
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 如何解决微信端直接跳WAP端
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 双管齐下,VMware的容器新战略
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 我的面试准备过程--容器(更新中)
  • 运行时添加log4j2的appender
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 阿里云ACE认证学习知识点梳理
  • # wps必须要登录激活才能使用吗?
  • # 利刃出鞘_Tomcat 核心原理解析(七)
  • ######## golang各章节终篇索引 ########
  • #控制台大学课堂点名问题_课堂随机点名
  • $ git push -u origin master 推送到远程库出错
  • (2)空速传感器
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (day18) leetcode 204.计数质数
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)ssm高校实验室 毕业设计 800008
  • (接口封装)
  • (十三)MipMap