IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> FFmpeg Windows编译调试 -> 正文阅读

[开发工具]FFmpeg Windows编译调试

为何要在Windows上编译FFmpeg

FFmpeg是一个Linux环境的MakeFile工程。

而在Windows上

1 如果仅仅是使用,最方便的就是下载别人编译好的FFmpeg.exe直接在cmd命令行里使用。

2 如果是想自己编译使用,最方便的就是在WSL里面编译使用。

3 在Windows上用MSYS2编译ffmpeg.exe ffmpeg.pdb,直接创建项目调试。

需求

为了了解FFmpeg原理,阅读理解探索其源代码实现,需要在Windows环境下调试FFmpeg。

FFmpeg源码 官方下载

?Index of /releases??Download FFmpeg

Windows上的Linux编译环境

Compile ffmpeg libs on Windows with Visual Studio compiler (pracucci.com)

msys2

清华镜像下载最新版msys2 :?msys2 | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

默认路径安装即可:C:\msys64

安装完,桌面有个快捷方式,打开

?

这个窗口意味着msys实际上是一个Linux子系统。实际上这个控制台是:

其实还有其他几个版本:

在这个子系统中安装工具:

$ pacman -S make gcc diffutils

?

?上图是先执行下面指令执行完之后的截图。安装了make gcc diffutils这三个软件到msys2中。

使用vs2022的命令行打开msys2的MinGW

msys2_shell.cmd  -mingw64

上图显示,虽然从vs2022的命令行打开了msys2,但依然找不到cl.exe 和link.exe?

确保你的vs2022的某个版本的cl.exe link.exe能找到:

export PATH=${PATH}:/C/'Program Files'/'Microsoft Visual Studio'/2022/Community/VC/Tools/MSVC/14.32.31326/bin/Hostx64/x64

再尝试which cl ; which link;

用msys2 切换到FFmpeg代码目录,执行配置:?

 ./configure --toolchain=msvc --arch=x86 --enable-asm --enable-shared  --disable-static  --disable-x86asm

make

?FFmpeg在Windows下使用VisualStudio调试 - 爱码网 (likecs.com)

上面的所有流程走完,会生成FFmpeg.exe ffmpeg_g.exe 以及对应的pdb文件。

?

?

有了pdb文件我们就可以调试FFmpeg了。

具体操作如下:

配置VisualStudio工程,调试ffmpeg

(1)创建一个新的空工程,设置工程属性如下

其中命令参数-i C:\testinput.mp4 -y c:\output.mp4代表将c盘下的testinput.mp4文件转换为c盘下的output.mp4文件,所以你需要自己准备一个testinput.mp4文件放到c盘根目录下

(2)将fftools/ffmpeg.c文件添加到本工程中,在main函数里面添加断点:

?

(3)点击F5运行调试,会提示编译出错,是否在上次编译成功结果上继续运行,选择“是”。然后就可以在断点处断下。

剩下的过程,大家自己去享受吧。

下载x264?x264, the best H.264/AVC encoder - VideoLAN

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:25:54  更:2022-05-24 18:28:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 11:44:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码