前言
ffmpeg太强大,很多功能用命令行就解决了。以至于我们想自己编写相关代码的时候显的有点难了。这时候需要单步调试去了解它内部是如何实现的,以便完成我们自己的需求。
在开始调试步骤前,先了解下ffmpeg源码编译。理解一下什么是configure,而且还要安装哪些前置。所谓调试,也就是编译好后,对代码进行debug的过程。那么编译完成的时候,ffmpeg具备什么样的功能,完全取决于configure里的配置,而且前置是否安装完全。
调试步骤
1.环境搭建
1)参考网文在linux中安装eclipse
2) 确定eclipse工作空间,将ffmpeg源码解压后拷贝到该工作空间
3)进入ffmpeg项目目录,运行./configure (具体选项根据自己需要)
4)运行eclipse
File->New->Project->Makefile Project with Existing Code
选择项目位置,选择toolchain 为linux GCC
5) 点击确定导入后,会开始自动编译
2.进行调试
编译完成后,会跟我们在命令行中编译过程一样。然后接下来就可以调试了,调试的过程取决于你想调试的命令行
举个例子,先来个不依赖外部条件的“helloworld”:
ffmpeg -hide_banner -devices
查询设备列表,直接执行的话会打印
Devices:
D. = Demuxing supported
.E = Muxing supported
--
DE fbdev Linux framebuffer
D lavfi Libavfilter virtual input device
DE oss OSS (Open Sound System) playback
DE video4linux2,v4l2 Video4Linux2 output device
D x11grab X11 screen capture, using XCB
当我们想了解这句命令行的内部是如何执行的时候,开始单步调试,首先执行的命令是ffmpeg,对应的是ffmpeg这个可执行文件。
展开左侧项目结构
Binaries->右键ffmpeg_g->Debug As->Debug Configurations…
->左键双击C/C++Application->选择ffmpeg_g->选择Arguments
->填入命令“ ffmpeg -hide_banner -devices ”->Debug
就可以进入调试环节了。