首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ffplay调试环境搭建

前言

ffplay是基于FFmpeg的最简单的官方播放器。麻雀虽小,五脏俱全,虽说ffplay简单,但是各种播放器应有的功能一一俱全,说它简单或许仅仅是因为它只有一个点c文件而已吧。

想要开发一个优秀的播放器,参考是必不可少的,毕竟control c和control v是程序员天生的本能。以前遇到播放的问题向人请教的时,经常听到的一句话就是去看看ffplay是怎么处理的就知道怎么过解决了呀,可见ffplay在播放领域的地位不一般。。。

而且想要学好FFmpeg,在了解了FFmpeg的基本知识和相关API之后,再结合项目实战是非常有必要的。但是光是跑马观花式的看看ffplay的源码可能收获甚微,要想深入去了解ffplay内部的大致细节,集成源码断点调试是必可少的。后续笔者将用几篇文章介绍ffplay的一些主要的功能点,但是想要了解ffplay单靠几篇文章肯定是不够的,笔者更加希望的是这几篇博客能起到抛砖引玉的作用,引导大家更加深入地学习了解。。。

所谓兵马未动,粮草先行,今天我们就先搭建好ffplay的调试环境,方便大家后续的学习调试。

环境搭建

笔者所使用的环境是:Mac系统和Clion开发工具。笔者集成的FFmpeg的版本是使用Homebrew安装的ffmpeg5.0

1、编译集成FFmpeg库

ffplay的调试环境搭建是建立在笔者之前的文章《FFmpeg连载1-开发环境搭建》之上,首先需要集成FFmpeg的相关库,这一步大家参考笔者之前的文章即可。

2、新建Clion工程

新建好CLion工程后(注意是C工程,不是C++工程),我们就需要下载FFmpeg的源码了,注意这个源码的版本最好和前面集成FFmpeg的版本好一样,即使不一样版本呢之间也不要相差太远,不然可能会因为版本的原因导致一些功能或头文件对应不上。

3、生成config.h头文件

下载好FFmpeg的源码后,我们需要进入到源码目录执行一下命令行,这一步的目的是生成头文件。然后找到文件并拷贝到我们新建CLion工程中去。

4、拷贝fftools目录下的相关文件

我们将源码目录下的三个文件拷贝进去我们的CLion工程,这三个文件分别是、、 。

5、拷贝va_copy.h头文件

将源码目录下的头文件也拷贝进去我们新建的CLion目录,到这里我们所需的源文件是算是准备完成了。

6、修改CMakeLists.txt

修改CMakeLists.txt如下,主要相关库的路径要替换成自己的FFmpeg库和SDL库的真实路径。

7、debug测试

然后就可以愉快地进行断点调试了,找到的main函数,打一个断点,然后debug运行一下。

调试成功如图

同理,如果童鞋们想要调试一下ffprobe.c或ffmpeg.c也可以使用同样的方式集成即可。

可能遇到的问题

1、SDL2没有安装

ffplay是需要依赖SDL进行画面的展示和声音的播放的。所以集成的前提是需要安装好SDL2。

2、文件"cmdutils.c"找不到头文件"libavutil/libm.h"

笔者集成的时候就遇到了这个问题,解决方案就是直接注释掉即可。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20220423A01IQS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券