Windows下vs2013编译ffmpeg源码

2023-11-15

在搜罗网上各种资源以及网上请教各位大声终于在今天晚上编译成功,经测试编译出来的库可正常使用,故可证明编译正确。在此特感谢群里大神的帮助。感谢雷神

现将具体步骤记录如下;

本人编译用的是vs2013,在win7系统下,对ffmpeg-3.0进行编译,其他版本尚未测试,后续若有问题会补充。

1、下载ffmpeg源码,可自行到ffmpeg官网上下载个版本的源码;

2、下载安装器MinGW,然后安装,安装过程会有选择,我直接用的默认的;

3、下载yasm,改名为yasm.exe拷贝至C:\MinGW\msys\1.0\bin目录下;

4、配置C:\MinGW\msys\1.0\bin\msys.bat,用编辑模式打开,在文件最前面也就是@echo off之后,加上下面一句(各位路径按自己的来)

call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat"

5、重命名C:\MinGW\msys\1.0\bin\link.exe,防止与VC发生冲突,编译完后可改回来;

6、开始配置,双击C:\MinGW\msys\1.0\msys.bat,调到ffmpeg源码所在位置,我使用的配置选项为:

./configure --enable-shared --disable-static --prefix=./vs2013_build --enable-debug --toolchain=msvc,耐心等待配置完成;

7,、接下来就是make all 和make install,完工。

此时可以查看在源码目录下生成了一vs_2013bulid的目录,里面包含include、lib等文件夹。

下面继续介绍如何利用编译出来的库来运行example中的小程序。

1、vs2013新建一个win32应用程序;将example中的一个程序代码粘进去;

2、配置vs2013属性,在 vc++目录->包含目录 行内填入编译出来的include所在路径,在vc++目录->库目录 行内填入编译出来的.lib所在文件路径,这里注意,将.dll链接库放到工程Debug目录下。我编译出来的.lib库文件和.dll文件都在vs2013_bulid\bin目录下,而不再lib目录下,lib目录下都是.def文件和pkgconfig文件夹,有大神可以解释一下为什么吗?pkgconfig和.def在这儿有用吗?

3、在include文件夹里加上_mingw.h、inttypes.h和stdint.h三个文件,到此属性配置完毕;

4、将所有#include都放到extern “C”中,原因是ffmpeg为C语言编写,在其下面写

#pragma comment(lib,"avcodec.lib")
#pragma comment(lib,"avformat.lib")
#pragma comment(lib,"avutil.lib")

大家根据需要写入需要的.lib库。

代码中在最上方加入#define __STDC_CONSTANT_MACROS,为防止出现

fatal error C1189: #error :  missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS

此时编译工程,会出现各种语法错误,都可通过查找解决,如snprintf()改为_snprintf(),还有在inttypes.h中,有的变量中间多了个空格导致编译错误。总之都是些小的错误了。修改完之后就可以编译成功了。

写的匆忙,有不详细和错误的地方,请各位大神朋友指出,感谢。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows下vs2013编译ffmpeg源码 的相关文章

  • 从视频或音频文件中删除人声

    有没有一种方法可以从音频 视频中删除人声 所以最终音乐就留在上面了 我想使用任何软件 如 adobe 等 或使用命令行 如 ffmpeg sox 来执行此操作 但我更喜欢命令行来轻松调整设置 我从事卡拉 OK 工作有一段时间了 没有办法可靠
  • 如何在PHP中显示上传文件后的结果

    我有一个将视频上传到服务器的脚本 一切正常 但在视频上传到服务器完成后出现问题 它以数组形式显示 uploads 文件夹中所有上传的文件 我只想要我刚刚上传的文件的结果 它不显示以前的文件 我需要 ffmpeg 来提高视频质量 索引 php
  • 如何从 youtube-dl --write-auto-sub 下载转换混乱的 .vtt 子文件?

    我的目标是在单独的文件中下载带有自动生成字幕的 YouTube 视频 例如 vtt srt etc 我目前正在努力实现这一目标youtube dl但如果需要的话 我愿意接受其他解决方案 当我运行以下命令时 它将视频下载为 mp4 这很好 和
  • FFmpeg 转换错误

    我正在尝试使用 FFmpeg 将视频转换为 webm 格式 我已经安装了此处列出的所有依赖项 http www videochat scripts com install ffmpeg mplayer flvtool2 yamdi x264
  • OpenCV 3.0.0 使用 FFMPEG 时出错

    我使用 OpenCV 一段时间了 但是 我最近将系统更改为没有任何管理员权限的集群 问题是这样的 在我的主文件夹中 我安装了 FFMPEG ffmpeg 网站上提供的最新稳定版本 我将它安装在 HOME 中 因此在 HOME lib 中安装
  • pictureBox 图片处理异常

    我最近想尝试一下锻造网 http www aforgenet com framework 因为我发现它非常简单 所以我决定使用 Video FFMPEG 命名空间进行一些简单的视频播放 这样我就可以将每个帧直接放在 pictureBox 上
  • 在 R 中导入 png 文件并转换为动画(.mp4)

    我正在尝试用 R 中的几个 png 文件创建一个简短的动画 我尝试了 packagemagick但只有当我将它们保存为 gif 时它才有效 当我尝试另存为 mp4 时 它将生成一个 mp4 文件 但一旦打开它 只会显示第一张图像 我的代码是
  • YUV420p 上的大量绿色 --> iOS 上 OpenGL 2.0 着色器中的 RGB

    我想使用 ffmpeg 和 OpenGL ES 2 0 为 iOS 制作一个电影播放器 但我有一些问题 输出 RGB 图像有很多绿色 这是代码和图像 480x320 宽度和高度 512x512 纹理宽度和高度 我从 ffmpeg AVFra
  • 如何使用ffmpeg从avi生成gif? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试使用以下命令将视频的一部分提取到动画 gif 中 ffmpeg i video avi t 5 out gif 它会生成一个 g
  • 如何在 PHP 中运行 ffmpeg 命令

    我需要在 PHP 中运行 ffmpeg 命令 但是 php ffmpeg 不再支持最新版本并且已经过时 我可以知道在网络文件中运行 ffmpeg 命令的替代方法吗 PHP Javascript jQuery 我尝试exec and shel
  • FFmpeg - H264 编码器找不到有效设备并且无法配置编码器

    我尝试使用 H264 编码器进行编码 但是当我这样做时 出现以下错误 h264 v4l2m2m 0x55682d2416c0 Could not find a valid device h264 v4l2m2m 0x55682d2416c0
  • 使用 ffmpeg 从 unix 命令批量将 wav 文件转换为 16 位

    我有一个由许多子文件夹组成的文件夹 每个子文件夹都有其他子文件夹 其中包含 wav 文件 我想像这样转换所有文件 ffmpeg i BmBmGG BmBmBmBm wav acodec pcm s16le ar 44100 BmBmGG B
  • 访问 AVFrame 的每个像素

    我需要访问 FFMPEG 的 AVFrame 对象的每个像素信息 如果是 RGB 则每个像素的每种颜色 R G 和 B 我怎样才能做到这一点 如果您已经前进到正确的框架 类似于 img convert ctx ffmpeg sws getC
  • 消除 ffmpeg 和 image-magic 命令中的慢速因素

    这些命令的基本思想是创建一个比较 比较定义了过去的一张 jpeg 和现在的一张 jpeg 组合起来 例如它们将相互滑动并显示前后图像 e g https media evercam io v1 cameras 1lowe scnoe com
  • 无法在 Windows 7 机器中使用 OpenCV 2.4.3、Python 2.7 打开“.mp4”视频文件

    我目前正在进行一个涉及读取 mp4 视频文件的项目 我遇到的问题是它在Windows 7机器上使用Python 2 7 32位 OpenCV 2 4 3 cv2 pyd 代码片段如下 try video cv2 VideoCapture v
  • 如何使用android ndk r9b为Android编译FFMPEG

    我想设计一个Android应用程序 可以通过FFMPEG命令播放和编辑视频 但我不知道如何在Android上使用FFMPEG 我尝试过从Google搜索到的许多方法 但它们太旧了 无法实现 现在 FFMPEG的最新版本是2 1 1 Andr
  • H264 字节流到图像文件

    第一次来这里所以要温柔 我已经在给定的 H 264 字节流上工作了几个星期 一般注意事项 字节流不是来自文件 它是从外部源实时提供给我的 字节流使用 Android 的媒体编解码器进行编码 当将流写入扩展名为 H264的文件时 VLC能够正
  • ffmpeg AVFrame 到 opencv Mat 转换

    我目前正在开发一个使用 ffmpeg 解码接收到的帧的项目 解码后 我想将 AVFrame 转换为 opencv Mat 帧 以便我可以在 imShow 函数上播放它 我拥有的是字节流 我将其读入缓冲区 解码为 AVFrame f fope
  • ffmpeg concat:“不安全的文件名”

    尝试将一堆 mts 文件转换为一个大 mp4 文件 stephan rechenmonster mnt backupsystem archive2 Videos 20151222 PRIVATE AVCHD BDMV bin ffmpeg
  • 使用FFMpeg确定视频类型,然后进行转换?

    我正在尝试以编程方式确定文件的真实类型 看来我必须使用 FFMPeg 来实现这一点 我想确定上传的文件实际上是否是 MP4 或 FLV 对于 Flash 视频 或 WebM 对于 HTML5 我知道 FFMPeg 中的 i 运算符 但我不知

随机推荐

  • MySQL查看当前数据库视图-SQL语句

    引言 查询语句为 show full tables where table type 可查询当前数据库表 一 创建一个视图 创建视图 create view v stu as 视图内容 连接的一个表 select name from t s
  • Stm32待机模式的进入与唤醒

    1 基础介绍 1 1 单片机的 低功耗模式 像是手机的待机模式 不同于正常运行模式 处于一种省电省资源的状态 1 2 在运行情况下 HCLK为cpu提供时钟 cortex m3内核执行程序的代码 如果处于中断事件的等待时 可以进入低功耗模式
  • 基于R语言分析身高与体重的相关性分析

    本博文源于暨南大学的 多元数据统计分析及R语言建模 旨在讲述身高与体重相关性分析 在概率论与数理统计课程中 两个变量之间协方差的标准化 因此先要熟悉并回忆公式 套用在R语言即可 例子 分析身高 kg 与体重 cm 的相关性 gt x1 c
  • 小心情

    好久没写博客了 总结下现在的自己 还是依旧那么的 情绪控 变化那么快 有时 都受不了自己的 坏脾气 学习再也没像原来的那么卖力 有那么点的小颓废 实验室布置的任务有那么点的小懈怠 一切都没有进展 生活依旧那么平淡 却也没有自己想要的那种安逸
  • linux内核对于指令异常的处理

    1 处理流程 以arm64来介绍一下流程 如果在用户层发生指令异常时 首先进入入口el0 undef arch arm64 kernel entry s el0 undef Undefined instruction enable inte
  • Jina 3.14 版本发布!支持独立部署Executor

    Jina 是一个 MLOps 框架 赋能开发者在云上构建多模态 跨模态的应用程序 Jina 能够将 PoC 提升为生产就绪服务 基础设施的复杂性交给 Jina 开发者能够直接轻松使用高级解决方案和云原生技术 GitHub https git
  • mysql免安装版的下载与安装

    下载 打开 https www mysql com downloads 1 点击该项 2 进去后点击 3 到了真正的下载页面 选择平台 选择版本 安装版和免安装版 下载 4 我现在下载免安装版的 Windows x86 64 bit ZIP
  • Python基础-将变量的值作为变量名

    使用场景 linux unix磁盘文件系统实时使用情况动态收集 每一台机器挂载的文件系统名字有可能都不相同 就算同一台机器不同时间段挂载的文件系统也会不同 我们需要动态收集文件系统名 将变量的值作为变量 定义为文件系统的名 语法基础 gt
  • java如何将字符串存入到数组中

    方法一 public static void main String args 定义一个字符串 String str browser 定义一个字符数组 char array new char 100 for int i 0 i lt str
  • liberity 添加信赖的https证书到key.jks

    业务场景 定时任务批量推送数据到第三方接口 请求地址为https 域名 测试环境测试之后 出现证书认证问题 不能正常推送数据 定时任务部署在 websphere liberty中 出现问题之后在java的Java jdk 1 8 jre l
  • webpack 压缩图片

    问题描述 vue正常打包之后一些图片文件很大 使打包体积很大 通过image webpack loader插件可将大的图片进行压缩从而缩小打包体积 参考 点这里 解决方法 一定要用cnpm安装 cnpm i image webpack lo
  • 数据结构Java实现05----栈:顺序栈和链式堆栈

    本文转载至 http www cnblogs com smyhvae p 4789699 html 一 堆栈的基本概念 堆栈 也简称作栈 是一种特殊的线性表 堆栈的数据元素以及数据元素间的逻辑关系和线性表完全相同 其差别是线性表允许在任意位
  • 数据库的优化方案

    1 优化索引 SQL语句 分析慢查询 2 设计表的时候严格根据数据库的设计凡事来设计数据库 3 使用缓存 把经常访问到的数据且不经常变化的数据放在缓存中 节约磁盘IO 4 优化硬盘 采用SSD 使用磁盘队列技术 5 采用MySQL内部自带的
  • 软件体系结构-KWIC索引系统

    引言 KWIC作为一个早年间在ACM的Paper提出的一个问题 被全世界各个大学的软件设计课程奉为课堂讲义或者作业的经典 From Wiki FYI D L Parnas uses a KWIC Index as an example on
  • Scala递归删除某个文件夹

    check the result is already exists or not val outFilePath D doc spark out t2 val outFile new File outFilePath recursion
  • arm 使用wpa_cli连接wifi

    公司使用的是IMX6的ARM板 板子已经带了8192cu的驱动 使用 lsmod 命令可以查看已经安装的mod 使用的USB为 树莓派 Raspberry Pi 无线USB网卡 EDUP EP N8508GS 黄金版 免驱 lsmod 结果
  • Lorenz系统、简单的Rossler系统和Chua电路系统的混沌吸引子——MATLAB实现

    1 Lorenz系统 美国著名气象学家E N Lorenz在1963年提出来的用来刻画热对流不稳定性的模型 即Lorenz混沌模型 可以简单描述如下 x
  • OpenFire源码学习之十六:wildfire

    Wildfire Wildfire是一个基于xmpp的IM即时通讯和群组聊天工具 安装 Windows Windows的默认安装目录 c ProgramFiles Wildfire Linux Unix 有两种选择方法 1 选择RPM 它将
  • C++ 类模板之类外实现重载运算符和友元函数

    在同一个CPP中 使用友元函数 同时在类外实现 这里 h cpp未分离 如果分离写法不一样 一般在使用类模板时 将声明和实现放在同一文件中 可命名为 hpp后缀 即 h cpp在同一文件中 1 重载操作符 定义一个类 通过重载 lt lt
  • Windows下vs2013编译ffmpeg源码

    在搜罗网上各种资源以及网上请教各位大声终于在今天晚上编译成功 经测试编译出来的库可正常使用 故可证明编译正确 在此特感谢群里大神的帮助 感谢雷神 现将具体步骤记录如下 本人编译用的是vs2013 在win7系统下 对ffmpeg 3 0进行