使用Clion阅读FFmpeg源码(支持跳转)

音视频系列--CLion搭建SDL和FFmpeg环境(Window) 一、环境搭建 1.1、软件下载 最近用CLion搭建了FFmpeg和SDL的环境,方便学习下 CLion链接包含破解文件 链接:https://pan.baidu.com/s/18ZkHu9urnbSL-ssgWbjTjQ 提取码:1tun 复制这段内容后打开百度网盘手机App,操作更方便哦 编译器用的MinGW,配置如下 SDL下载地址 FFmpeg下载地址 注意, FFmpeg和SDL目录中bin,include,lib中文件都要拷贝到MinGW的对应目录中,不然编译会找不到 1.2、CM 阅读详情

首发地址,会更错

前言

本方案仅仅适用于阅读FFmpeg,配置方式及其简单,能支持方法间的跳转,但由于配置原因部分无法识别或跳转,介意者勿入!!

方案一(简单)

此方案非常简单,能阅读绝大部分源码了,但仍会缺失一些头文件,导致无法小小部分无法查阅。

步骤1

在Clion新建c++项目项目File->New Project->Create,如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l6w0Zhdv-1610869186665)(05_source/source-create1.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-scBpuL0O-1610869186667)(05_source/source-create2.jpg)]

步骤2

将FFmpeg源码复制到根目录,如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YNeqryyf-1610869186673)(05_source/source-copy.jpg)]

步骤3

编写CMakeLists.txt文件,如下:

cmake_minimum_required(VERSION 3.17)
project(SourceFFmpeg)

set(CMAKE_CXX_STANDARD 11)

file(GLOB EX_DIR ./*.cpp ./*.c ./*/*.c ./*/*/*.c ./*/*/*/*.c)
set(INCLUDE_DIR ./ ./*/ ./*/*/ ./*/*/*/ ./*/*/*/*/)

include_directories(${INCLUDE_DIR})

add_executable(SourceFFmpeg ${EX_DIR})
简单查看

到这已经完成了,这里我们查看一下源码之间的跳转,以及一些方法的被调用,可以从doc/examples例子看看源码能不能正常跳转等,我这如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9YAnQnR1-1610869186675)(05_source/source-look.jpg)]

方案二(需要编译源码)

解决方案一中一些头文件缺失问题。

步骤1(同方案一)
步骤2(同方案一)
步骤3

编译源码生成动态库/静态库,目的需要头文件,然后把生成的头文件复制到项目中,如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MzXM5fUe-1610869186676)(05_source/source-head.jpg)]

步骤4

编写CMakeLists.txt文件,如下:

cmake_minimum_required(VERSION 3.17)
project(SourceFFmpeg)

set(CMAKE_CXX_STANDARD 11)

include_directories(./include/)

file(GLOB EX_DIR ./*.cpp ./*.c ./*/*.c ./*/*/*.c ./*/*/*/*.c)

add_executable(SourceFFmpeg ${EX_DIR})

到这里方案二的也完成了,可自行查阅。



Clion 使用ffmpeg 学习1 开发环境配置 在视频处理和多媒体应用程序开发中,FFmpeg 是一个强大的开源工具,它提供了处理音频和视频的丰富功能。CLion 是一款受欢迎的跨平台集成开发环境(IDE),它提供了强大的代码编辑和调试工具。通过官方文档 : https://www.ffmpeg.org/documentation.html 可以查看更多FFmpeg的操作方法。选择合适的版本下载。我这里下载的是 ffmpeg-master-latest-win64-gpl-shared。本文章介绍在CLion下配置FFmpeg开发环境的方法。 阅读详情

相关推荐

基于FFmpeg与SDL2的C++ RM/RMVB播放器开发实战

音视频编解码是多媒体处理的核心技术,其原理涉及对压缩媒体数据的解析与重构。通过解复用从容器中分离音视频流,再经解码器还原为原始帧数据,最终实现同步渲染与播放,这一流程构成了播放器的技术基础。其技术价值在于深入理解从二进制文件到可感知音画的完整数据链路,为音视频开发、编解码优化及嵌入式系统提供底层支撑。应用场景广泛,包括处理历史遗留格式、定制化播放需求及学习多媒体架构。本文以FFmpeg和SDL2为工具,详细探讨了如何构建一个能够解码RealMedia格式的C++播放器,涵盖了从环境搭建、线程安全队列到音视频

weixin_34288121的博客 361

SAP的gui的services的端口改了不生效

背景:有可能是由于以前的错误信息存到本机,然后改了下没有效果。 问题,大services里已经修改了文件;但是提示还是不能到达; 解决方法:在以下地方找到此文件,然后把3601改成3600,保存则成功。 ...

beyond911的专栏 1498

十大C语言开源项目深度解析:从Redis到Nginx,掌握系统编程精髓

C语言作为系统编程的基石,其核心价值在于对计算机底层原理的深刻理解,包括内存管理、指针操作和并发模型等。通过研究优秀的C开源项目,开发者能够从概念层面深入技术原理,掌握高性能、高可靠性的工程实践方法。这些项目不仅展示了数据结构、网络通信和存储引擎等基础技术的实现细节,更体现了模块化设计、事件驱动和资源优化等通用架构思想。在实际应用中,无论是构建分布式缓存、Web服务器还是嵌入式系统,这些底层技术都发挥着关键作用。本文聚焦Redis、Nginx、SQLite等十个经典项目,通过分析其热词如“内存池设计”和“事

weixin_34408717的博客 340

重拾Linux(十)之服务管理

服务(service)的本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如:mysql, sshd, 防火墙等,因此我们又称为守护进程。

_修铁路的、的博客 1973

Linux C/C++进阶:从系统原理到AI Infra、音视频等核心领域实战

在计算机系统开发领域,深入理解操作系统、网络和编译器原理是构建高性能、高可靠性软件的基础。这些底层知识构成了从基础服务到前沿应用的技术支柱,其核心价值在于实现对计算资源的精细控制和极致性能优化。掌握Linux系统编程、现代C++特性及并发模型,使开发者能够应对高并发、低延迟的复杂工程挑战。这种能力在AI基础设施(AI Infra)、音视频处理、嵌入式系统等垂直场景中尤为重要,例如在大模型推理优化、实时流媒体传输等具体实践中,扎实的系统级编程功底是技术突破的关键。本文聚焦于为有一定基础的C/C++开发者规划一

weixin_34220179的博客 437

C++开源项目学习指南:从入门到精通的实战路径

C++作为一门支撑操作系统、游戏引擎、数据库等核心系统的基础编程语言,其高性能和底层控制能力是构建复杂软件系统的基石。理解其核心原理,如内存管理、编译过程和并发模型,对于掌握系统级编程至关重要。现代C++标准(C++11/14/17/20)引入了智能指针、移动语义等特性,极大地提升了开发效率和代码安全性,其技术价值在于能够构建出既高效又可靠的大型软件。在实际应用场景中,无论是开发**高性能网络服务器**、**实时图形渲染引擎**,还是构建分布式存储系统,深入学习和借鉴优秀的开源项目都是快速提升工程能力的捷径

weixin_30647065的博客 408

CentOS7 自定义开机启动service

0、设置需要启动的脚本权限(若vote没有可执行权限,则service无法正常启动,特此用第0步来标识重要性) chmod +x vote 1、编辑自定义的service,service的名称是vote.service vim /usr/lib/systemd/system/vote.service vote.service的内容如下: [Unit] Description=vot...

u010448530的博客 2314

C++校招简历实战项目精选:从HTTP服务器到游戏引擎的硬核技能提升

C++作为高性能系统编程的核心语言,其价值在于对计算机底层原理的深刻理解和工程实践能力。从内存管理、多线程并发到网络通信,掌握这些基础概念是构建复杂系统的前提。理解事件驱动模型、协议解析等原理,能够帮助开发者设计出高性能的后端服务。在技术价值层面,通过实现具体项目,可以将理论知识转化为解决实际问题的能力,例如构建高并发服务器或音视频处理工具。这些技能在后端开发、音视频处理、游戏引擎和嵌入式系统等应用场景中至关重要。本文精选了覆盖多个热门方向的C++实战项目,如基于Epoll的高性能HTTP服务器和简易RPC

cuanji3287的博客 749

C++校招实战项目指南:从零构建高含金量简历技术栈

在计算机科学领域,掌握核心编程语言与系统级开发能力是构建技术深度的基石。C++作为高性能系统开发的主流语言,其底层原理涉及内存管理、并发编程和硬件交互,是构建操作系统、游戏引擎、数据库等基础设施的关键。理解其技术价值在于能够直接操控资源,实现极致性能优化,广泛应用于后端服务、音视频处理、嵌入式系统和高性能计算等场景。对于即将参与校园招聘的开发者而言,缺乏能体现工程能力的实战项目是常见瓶颈。本文聚焦于**C++实战项目**与**校招简历**,提供一套从环境搭建、项目深度解析到性能优化的系统方法论,涵盖Web服

cuiji1279的博客 400

SiamFC++笔记

SiamFC++: Towards Robust and Accurate Visual Tracking with Target Estimation Guidelines 文章根据这些思路:引入分类和目标状态估计分支(G1),无歧义的分类得分(G2),无先验知识的跟踪(G3)和评估质量得分(G4)来设计SiamFC ++。 SiamRPN ++和SiamFC ++的比较(红色部分代表得分高的区域): guide: G1 : 分类和状态估计任务的分离:分类任务将目标从干扰物和背景中分类出来,目标状态

木木JL的博客 9432

Win10 Rational Rose 安装教程

在此教程中我们需要四个文件,点此下载[提取码:ig33] 其中第一个为2007的安装包,第二个为破解文件 前言 很多小伙伴反应说会出现几天后就到期的问题,包括我也出现了该问题,如果你已在其他地方安装好了文件且破解成功,且但几天后到期,如果可以使用更改时间的方式打开,那么可以跳过接下来的教程,直接看第三节,我们采用批处理的形式一键完成从修改时间到打开最后改回来的方法解决此问题 一、安装软件 解压缩两个安装包,进入 Rational Rose文件夹 选择setup.exe开始安装 按照图示依次点击

CoderJiang 2万+

【工具配置篇】Windows下CLion配置ffmpeg

Window下CLion配置ffmpeg 在官网下载Shared版本的ffmpeg 在CLion中配置ffmpeg

m0_51139226的博客 927

ERDAS 2022与ArcGIS共存安装教程:如何避免端口冲突(详细配置步骤)

本文提供了一份详细的ERDAS 2022与ArcGIS共存安装教程,核心在于解决两者因FlexNet许可证服务器导致的端口冲突问题。通过分步指导,包括检查现有端口占用、修改ERDAS许可证文件端口号、配置防火墙及客户端设置,确保两款专业GIS与遥感软件能在同一系统上稳定运行。

weixin_29279047的博客 253

音视频windows安装ffmpeg6.0并使用vs调试源码笔记

建立在上一步,vs已经能够正常调试qt项目,可以实现:1:qt可以使用mvsc (使用cdb)进行调试。2:vs已经可以加载qt项目,借助vs进行调试。:编译ffmpeg库,编译出对应的相关库,使用qt,vs进行调试demo,为研究源码做准备。本文编译ffmpeg6.0,使调试源码环境能正常进行。技巧:which.exe cl.exe 可以查看当前生效的执行文件。

yun6853992的博客 1643

TI Sitara系列AM64x开发板(双核ARM Cortex-A53)软硬件规格书

创龙科技TL64x-EVM是一款基于TI Sitara系列AM64x双核ARM Cortex-A53 + 单/四核Cortex-R5F + 单核Cortex-M4F多核处理器设计的高性能评估板,由核心板和评估底板组成。评估板接口资源丰富,引出5x Ethernet(两路支持TSN)、2x CAN-FD、多路UART、多路DI/DO、GPMC、PCIe、USB等接口,板载WIFI模块,支持4G/5G模块、NVME硬盘,可选配外壳直接应用于工业现场,方便用户快速进行产品方案评估与技术预研。

创龙,嵌入式一体化解决方案商 727

CAPL通过lookupSignal和DBLookup获取DBC信号的属性信息

CAPL通过lookupSignal和DBLookup获取DBC信号的属性信息以及一些相关问题

天赐好车的博客 2884

sap 修改许可服务器,与许可证服务器的连接失败[消息60070-15]

嗨,伊恩,1。 请检查端口30000和30001是否没有阻塞2。 检查是否运行任何防病毒软件3。 请删除并重新安装服务器工具。4a。 转到文件夹" C:\ Program Files \ SAP \ SAP Business One \ ServerTools \ License"(检查安全属性,如果当前用户对该文件夹具有"完全控制者"(右键单击>"安全性">"权限")b。在文件夹" ...

weixin_39926394的博客 1459

51单片机入门指南-基于STC89C52(持续更新)

一、环境介绍 编程IDE: keil5 单片机型号: STC89C51/52 开发板: 普中科技的开发板 完整PDF资源下载地址:https://download.csdn.net/download/xiaolong1126626497/19785856 二、51单片机开发手册介绍 2.1 前言 51单片机是对所有兼容Intel 8031指令系统的单片机的统称。 该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最.

8797

内部网需要开通的端口(For SAP GUI)

3200/tcp 3600/tcpsap的端口,basis都会大体了解,可以问问你们公司的basis。另外补充一下:3600是message server的端口号,3200是dispatcher的端口号。另外的一些如gateway,saprouter知道了意义也不是很大。普通SAP应用应该开放: 32XX,33XX,36XX端口就够了,其他有安全的认证的端口请咨询你公司的系统管理 员...

anmi5580的博客 875

v86.01 鸿蒙内核源码分析 (静态分配篇) | 很简单的一位小朋友 | 百篇博客分析 OpenHarmony 源码

相比动态分配,静态内存池的分配就是个小弟弟,非常的简单,两个结构体 + 一张图 就能说明白。

日拱一卒,力出一孔 775

字节最新开源模型 DA3(Depth Anything 3)使用教程(一)从任意视角恢复视觉空间

本文介绍DepthAnything3(DA3)模型,一种能够从任意视觉输入中预测几何结构的创新解决方案。DA3采用Transformer骨干网络,通过统一的深度光线表示简化学习过程,支持单目/多视角深度估计、姿态估计和3D高斯预测等多项任务。模型系列包含基础版、度量级和单目专用版本,其中嵌套版本DA3NESTED-GIANT-LARGE表现最佳。代码库提供交互界面、CLI工具和多格式导出功能,支持模块化扩展。实验表明DA3在各项任务上超越现有模型,所有训练数据均来自公开学术数据集。

2506_90492529的博客 2548

SAP 使用GUI查询数据库IP地址

SAP BASIS 查询数据库IP方法

大好人ssr的博客 3038

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

处理SAPGUI登录不进去报错

今天新搭了一套SAP,检查各服务没问题启起来后,登录SAP GUI然后报错:wsaewouldblock : resource temporarily unavailable partner ‘1X.X.X.X:sapdp00’ not reached 然后本地telent IP 3200端口不通,做如下操作后解决问题: 关闭并禁用network manager: chkconfig Networ...

qq_41468794的博客 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Mac环境下使用Clion编译测试运行Ffmpeg

编译安装ffmpeg。这里面不要自己创建额外的文件,比如c文件或者makefile文件,因为整个项目会一起编译,如果环境不对会出现错误。然后中间会把编译的库文件安装到 /usr/local/下面,需要进行授权,出现权限拒绝时候,执行类似于以下的命令进行授权。首先从官网或者github下载源码。

Mr_Tony的专栏 2221

linux修改services命令,linux service命令

service命令,顾名思义,就是用于管理Linux操作系统中服务的命令。1. 声明:这个命令不是在所有的linux发行版本中都有。主要是在redhat、fedora、mandriva和centos中。2. 此命令位于/sbin目录下,用file命令查看此命令会发现它是一个脚本命令。3. 分析脚本可知此命令的作用是去/etc/init.d目录下寻找相应的服务,进行开启和关闭等操作。4. 开启htt...

weixin_42613572的博客 1555
上一篇: FFmpeg导入到Clion(MacOS)
下一篇: FFmpeg重要结构体(转自雷神)
秦城季
博客等级 码龄10年 46粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值