自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 马士兵讲开发语言,行业,跳槽的伤害

webgl。

2024-06-12 15:46:40 169

原创 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

原创 win11中wsl安装debian

win11中wsl安装Debian,wsl本身包括

2024-05-16 16:07:37 1101

原创 使用Nginx搭建自己的CDN服务器

nginx搭建自己的CDN服务器

2024-05-15 17:45:42 6382 1

原创 CDN原理和使用,调度系统原理和实现

CDN原理和使用,调度系统原理和实现,Nginx负载均衡,反向正向代理,缓存代理;BGP路由协议

2024-05-14 18:19:01 1744

原创 TCP、UDP原理

TCP、UDP原理

2024-05-09 11:40:18 438

原创 如何优化 C++ 程序的性能?

算法优化,代码优化,编译器优化

2024-05-08 16:58:57 949

原创 请解释一下 C++ 中的深度拷贝和浅拷贝。

C++深拷贝:赋值构造函数,复制构造函数

2024-05-08 16:56:58 297

原创 如何使用 C++ 标准模板库(STL)中的容器和算法?

C++标准模板库(STL)是C++语言的一个组成部分,提供了通用的、模块化的、可重用的组件,用于处理数据结构和算法。STL包含容器、迭代器、算法和分配器四个主要部分。

2024-05-08 16:54:19 297

原创 C++ 中的 IO 库是如何工作的?

C++中的IO库

2024-05-08 16:51:13 338

原创 描述一下 C++ 中的静态多态和动态多态

静态/编译多态:函数重载,操作符重载,模板;动态/运行时多态:虚函数,指针和引用

2024-05-08 16:48:33 986

原创 如何实现 C++ 中的类型 traits?

如何实现C++中类型

2024-05-08 16:40:51 394

原创 请解释一下C++中的lambda表达式

using namespace name;

2024-05-08 16:27:39 276

原创 C++ 中的 lambda 表达式有什么用途?

lambda表达式

2024-05-08 16:24:37 459

原创 什么是 C++ 的内存泄漏,如何避免它?

C++防止内存泄漏的10种方案,RAII,深拷贝,双引用移动资源

2024-05-08 16:22:37 642

原创 请解释一下 C++ 中的 SOLID 原则。

5原则:单一职责,开闭,里氏替换,接口隔离,依赖倒置

2024-05-08 16:04:00 440

原创 如何使用 C++ 实现多线程编程?

实现多线程,std::stread库

2024-05-08 15:57:36 451

原创 C++ 中的线程局部存储(Thread Local Storage, TLS)是如何工作的?

C++线程局部存储,允许存在不同的值

2024-05-08 15:54:34 501

原创 描述一下 C++ 中的静态类成员和全局变量的区别

C++中静态类成员和全局变量的区别:作用域,生命周期,等

2024-05-08 15:39:07 829

原创 请解释一下 C++ 中的内存管理,包括动态内存分配和释放。

动态内存分配和释放,单个对象,数组对象区别释放方式

2024-05-08 15:31:06 466

原创 C++11/14/17/20 中引入了哪些新特性?

C++11/14/17/20引入新特性

2024-05-08 15:28:03 1150

原创 请解释一下 C++ 中的 Rvalue 和 Lvalue

左值可以被取地址(&)操作符获取其内存地址,右值是指那些不具有内存地址或者其地址是临时的、不需要被赋值的表达式

2024-05-07 18:52:19 416

原创 什么是 C++ 的异常处理机制?

try,catch,throw,抛出一个 std::invalid_argument 异常

2024-05-07 18:35:20 454

原创 描述一下 C++ 中的模板(template)和泛型编程。

C++ 中的模板是一种支持泛型编程的机制。泛型编程是一种编程范式,它允许程序员编写出可以处理多种数据类型的代码,而不必在编译时就确定具体的数据类型。这种编程方式提供了灵活性和可重用性,因为编写的代码可以用于多种不同的数据类型,而不需要为每种数据类型编写不同的代码。

2024-05-07 18:33:08 315

原创 纯虚函数(pure virtual function)和抽象类(abstract class)有什么区别?

一个类如果包含至少一个纯虚函数,它就成为了一个抽象类。一个抽象类可以包含多个纯虚函数,也可以包含没有被声明为虚的普通成员函数。

2024-05-07 18:29:28 363

原创 C++ 中的虚函数(virtual function)是什么,它如何实现运行时多态?

基类虚函数,派生类虚函数,虚析构函数

2024-05-07 18:25:44 962

原创 如何防止类的拷贝?

防止类的拷贝:1.私有拷贝构造函数2.删除3.虚拟化4.构造函数保护5.使用单例模式或依赖注入,来避免拷贝类的实例

2024-05-07 18:16:47 288 1

原创 请解释一下 C++ 中的构造函数和析构函数

与对象的生命周期紧密相关

2024-05-07 18:11:14 354

原创 什么是智能指针,它们是如何工作的?

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

深入理解计算机系统答案(超高清电子版).pdf,章节后的家庭作业,题号跟章节编号都得往后错错,对照题目解答就能清楚知道是哪一章的哪一题了。

2015-12-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除