- 博客(48)
- 资源 (1)
- 收藏
- 关注
原创 usr/bin/ld链接报错undefined reference `av_frame_free(AVFrame**)‘等ffmpeg库报错
摘要:CMake配置ffmpeg时出现链接错误,主要原因是库链接顺序不当,应调整为avformat→avcodec→swscale→avutil的顺序。此外,ffmpeg头文件(如avformat.h等)需在头文件中用extern "C"包裹声明,不能直接放在cpp文件中。这些改动可解决undefined reference错误。
2025-08-04 14:05:43
175
原创 FFmpegHandler 功能解析,C语言程序化设计与C++面向对象设计的核心差异
FFmpegHandler 功能解析摘要 FFmpegHandler类实现了视频文件的解码处理流程,包含两个核心函数: openVideo():一次性初始化函数,完成文件打开、流信息探测、解码器准备等工作。类比为播放前的准备工作(放入影碟、识别格式、激活解码器)。 readAVFrame():循环调用的帧解码函数,通过"读包-送包-收帧"流程持续输出解码后的视频帧。类比为播放过程中的逐帧解码。 在面向对象设计上,FFmpegHandler对象本身充当了类似C语言FILE*的角色,内部维护
2025-07-31 16:30:32
883
原创 远程ssh关联gitee仓库管理
本文介绍了Git仓库初始化和远程连接的基本操作:1.使用git init初始化本地仓库;2.通过git remote add origin添加远程仓库地址;3.参考官方教程生成SSH公钥;4.使用git push -u origin "master"将主分支推送到远程。这些命令是Git版本控制的基础操作,适用于项目初始部署场景。
2025-07-27 16:30:53
80
原创 下载webrtc M114版本googlesource源-Docker容器配置X11映射
本文介绍了在Docker容器中搭建WebRTC M114编译环境的完整流程。首先创建Ubuntu 22.04容器并挂载Windows目录,安装编译所需依赖。随后配置depot_tools环境,下载指定版本WebRTC源码,并详细说明了Debug和Default两种模式的编译方法。最后补充了GUI环境配置,包括X11服务设置和图形界面测试。整个过程涉及容器管理、环境配置、源码同步和编译优化等关键步骤,为WebRTC开发提供了完整的容器化解决方案。
2025-07-16 13:53:28
347
原创 gemini 连接Google账户超时,设置代理
摘要:本文介绍了在本地安装Node.js和Gemini CLI工具的步骤。首先需从官网下载Node.js和VS2022。安装后通过npm全局安装Gemini CLI客户端。若遇到Google账户连接超时问题,可设置HTTP/HTTPS代理。最后使用gemini命令完成Google账户认证登录。全文简明扼要地说明了Gemini开发环境的配置流程。
2025-07-14 13:11:38
159
原创 C++一面音视频经验
循环编码音频采样数据->音频压缩数据 ———>AVFrame转化为AVPacket。防竞争字节:为了区分 0 0 0 1,它采用0 0 0 0x3 1作为区分。9.将编码后的视频码流写入文件 ——>AVPacket转化为AVFormat函数。8.av_read_frame :将avPacket数据转换为avFrame数据。表示NALU长度的前缀,不定长用4、2、1来存储这个NALU的长度。2.创建AVFormatContext的对象上下文。PTS: 显示时间戳,表示解码后显示的时间。
2024-09-03 15:21:43
493
1
原创 什么时候用进程或者线程呢?
进程是指在系统中正在运行的一个应用程序;程序一旦运行就是进程。进程可以认为是程序执行时的一个实例。进程是系统进行资源分配的独立实体, 且每个进程拥有独立的地址空间。一个进程无法直接访问另一个进程的变量和数据结构, 如果希望让一个进程访问另一个进程的资源,需要使用进程间通信,比如:管道,文件,消息队列,共享内存, 套接字等。一个进程可以拥有多个线程,每个线程使用其所属进程的栈空间。
2024-07-25 17:20:49
1256
1
原创 windows qt编译报错 无法打开包括文件: “EGL/egl.h”: No such file or directory
windowsmingw32qt creatorQtAV推荐ffmpeg依赖包QT5.14.2如果出现:无法打开包括文件: “EGL/egl.h”: No such file or directory可能是Qt6的问题.在QT5上安装。可以下载官方推荐的FFmpeg依赖包:https://sourceforge.net/projects/qtav/files/depends/QtAV-depends-windows-x86%2Bx64.7z/download。
2024-07-17 21:00:41
759
原创 音视频编解码常用知识点
实现HTTP Live Streaming直播,需要研究并实现以下技术关键点 >* 采集视频源和音频源的数据 >* 对原始数据进行H264编码和AAC编码 >* 视频和音频数据封装为MPEG-TS包 (连续的、很短时长的媒体文件)>* HLS分段生成策略及m3u8索引文件 >* HTTP传输协议。SIP会话传输一些简单的经过报文的实时传输协议流,RTP/RTCP本身才是语音或视频的载体。例如,采用RTMP协议传输的数据,经过解协议操作后,输出FLV格式的数据。RTSP 的语法和 HTTP 的语法基本相同。
2024-06-25 15:46:15
1544
原创 SQL常见语句
kill 掉这些线程(同时观察 CPU 使用率是否下降),等进行相应的调整(比如说加索引、改 SQL、改内存参数)之后,再重新跑这些 SQL。SHOW PROCESSLIST 查看正在运行的线程,是不是有消耗资源的 SQL 在运行,找出其中消耗高的 SQL,看看执行计划是否准确。COUNT(column):返回列中非空值的数量。AVG(column):返回列的平均值。MIN(column):返回列的最小值。MAX(column):返回列的最大值。SUM(column):返回列的总和。
2024-05-24 17:24:06
247
原创 如何使用 C++ 标准模板库(STL)中的容器和算法?
C++标准模板库(STL)是C++语言的一个组成部分,提供了通用的、模块化的、可重用的组件,用于处理数据结构和算法。STL包含容器、迭代器、算法和分配器四个主要部分。
2024-05-08 16:54:19
297
原创 请解释一下 C++ 中的 Rvalue 和 Lvalue
左值可以被取地址(&)操作符获取其内存地址,右值是指那些不具有内存地址或者其地址是临时的、不需要被赋值的表达式
2024-05-07 18:52:19
416
原创 描述一下 C++ 中的模板(template)和泛型编程。
C++ 中的模板是一种支持泛型编程的机制。泛型编程是一种编程范式,它允许程序员编写出可以处理多种数据类型的代码,而不必在编译时就确定具体的数据类型。这种编程方式提供了灵活性和可重用性,因为编写的代码可以用于多种不同的数据类型,而不需要为每种数据类型编写不同的代码。
2024-05-07 18:33:08
315
原创 纯虚函数(pure virtual function)和抽象类(abstract class)有什么区别?
一个类如果包含至少一个纯虚函数,它就成为了一个抽象类。一个抽象类可以包含多个纯虚函数,也可以包含没有被声明为虚的普通成员函数。
2024-05-07 18:29:28
363
原创 什么是智能指针,它们是如何工作的?
std::shared_ptr通过维护引用计数管理对象的生命周期,std::shared_ptr被复制时,引用计数增加,当一个std::shared_ptr被销毁时,引用计数减少。只有当引用计数达到零时,所指向的内存才会被释放,可以在多线程中使用;std::weak_ptr避免循环引用
2024-05-07 18:08:02
399
原创 描述一下 C++ 中的四种类型转换
C++四种类型转换,static_cast内置数据类型转换,dynamic_cast基类指针转换为派生类指针,reinterpret_cast非常危险的转换,const_cast移除 const 或 volatile 的限定符
2024-05-07 18:03:28
177
原创 使用智能指针来实现单例模式
使用智能指针实现单例模式,通过维护一个引用计数来跟踪有多少个 std::shared_ptr 指向同一个对象。当引用计数为零时,对象会被自动删除;使用 std::weak_ptr 避免循环引用
2024-05-07 17:52:50
704
深入理解计算机系统答案(超高清电子版).pdf
2015-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人