江河(Krisen)
码龄5年
关注
提问 私信
  • 博客:37,960
    社区:40
    38,000
    总访问量
  • 88
    原创
  • 1,995,798
    排名
  • 117
    粉丝
  • 0
    铁粉

个人简介:关关难过关关过,长路漫漫且灿灿,山山漫漫结成关,人人草草尽走散

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2019-10-13
博客简介:

beijingFC的博客

查看详细资料
个人成就
  • 获得19次点赞
  • 内容获得21次评论
  • 获得59次收藏
创作历程
  • 1篇
    2023年
  • 23篇
    2022年
  • 15篇
    2021年
  • 49篇
    2020年
成就勋章
TA的专栏
  • 音视频技术
    13篇
  • IOS开发
  • 工程技术
    8篇
  • OpenGL 实战
    1篇
  • 设计模式
    1篇
  • C++ 进阶
    4篇
  • 项目
    1篇
  • 算法
    13篇
  • 数据库
    4篇
  • 网络系统编程
    2篇
  • 计算机网络
    2篇
  • 操作系统
    1篇
  • C
    21篇
  • 数据结构
    10篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

342人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

《手把手带你学会git开发流程》

该命令的意思是把远程库中的更新合并到(pull=fetch+merge)本地库中,–-rebase的作用是取消掉本地库中刚刚的commit,并把他们接到更新后的版本库之中。如果你是组织者,那可以直接克隆主项目,如果你是社区成员,你看到这个项目不错,你也想贡献你的代码,那你需要fork,点击fork。总之就是 我提交上自己的fork的仓库 同步的时候 从远端同步,递增推送,层层关系,大概就是这样。对于fork的主仓库是没有主仓库信息的,我们需要追踪他,所以要添加上游地址。左边对应主仓库的地址,右边自己的。
原创
发布博客 2023.02.04 ·
663 阅读 ·
0 点赞 ·
2 评论 ·
1 收藏

《OpenGL 模型》 渲染出帅气的暗影战士

3D建模工具,可以让艺术家创建复杂的形状,Assimp库用于加载,如加载obj格式的文件到我们的程序之中,下载CMAKE用于构建该库(会有很多问题),不过!我已经为大家整理好了,大家加入到自己的ide中,设置好链接,头文件加入就好,文件我放在这里,直接用。理解模型构建的基础单位 是网格,就可以了,相当于积木块一样,组成一个大玩具,我们先需要定义一个OpenGL的网格类,来接收通过Assimp解析后的数据(网格(Mesh)代表的是单个的可绘制实体)话不多说,直接上代码,看看网格类。不多解释,直接上代码。
原创
发布博客 2022.12.21 ·
548 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

《线程池》

程序里的指令操作,涉及IO的一些操作,比如设备、文件、网络操作(等待客户端连接IO操作是可以把程序阻塞住的)单核上,严格意义上还是只执行一个线程,每个线程时间片占用的CPU时间片非常短,宏观上看还是串行的。多核上,多个线程是在真正的同时执行。程序里的指令操作都是用作计算的。
原创
发布博客 2022.11.22 ·
170 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

《搞定音频技术》

这样我们就实现了音频信号的采集,我们常说的 PCM 文件就是未经封装的音频原始文件或者叫做音频“裸数据”选用什么样的采样率是根据具体用途来决定的,只是为了听见人声、听懂对方在说什么,8kHz.在网络音视频会议场景需要平衡音质和传输带宽消耗,我们一般可以使用 16kHz 或者 32kHz 的采样率。采样率就是 1 秒内采集到的采样点的个数,一般用赫兹 Hz 来表示。然后,振膜随空气抖动的振幅大小产生相应的电学信号。通道数的物理含义其实就是同一时间采集或播放的音频信号的总数。
原创
发布博客 2022.11.04 ·
2724 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

《C++设计模式》

理解松耦合设计思想掌握面向对象的设计原则掌握重构技法改善设计掌握GOF核心设计模式每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。核心:可复用的面向对象。定义一个操作中的算法的骨架(稳定),而将一些步骤延迟(变化)到子类中,Template Method使得子类可以不改变(复用)一个算法的结构即可重定义(override重写)该算法的某些特定步骤。----《设计模式》GOF。
原创
发布博客 2022.11.04 ·
336 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

HLS点播 直播

点播与直播服务器不同的地方是, 直 播的 m3u8 文件会不断更新,而点播的 m3u8 文件是不会变的,只需要客户端在开始时请 求一次即可。客户端与服务器通过 HTTP 协议进行交互,以两级 m3u8 嵌套为例,客户端先 GET 请求 到一级 m3u8,一级 m3u8 里面包含了服务器端可以用于传播的一个或多个不同带宽的 URL, 这 URL 可以获取到二级 m3u8;流式媒体在播放前并不下载整个文件,只将开始部分内容存入内存,流式媒体 的数据流随时传送随时播放,只是在开始时有一些延迟。
原创
发布博客 2022.10.16 ·
381 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++从入门到精通 C++98.11.14.17

namespace 命名控件 {.....} 防止名字冲突在同一机制func();结构体int age;//函数 return 5;} };}
原创
发布博客 2022.10.13 ·
1094 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

《 罗剑锋的C++实战笔记 》

预处理# ifndef __HEAD_H__ # define __HEAD_H__ //头文件 # endif # if __linux__ # define HAS_LINUX 1 # endif1# ifndef __HEAD_H__ # define __HEAD_H__ //头文件 # endif # if __linux__ # define HAS_LINUX 1 # endif包含头文件#include 不止包含头文件 包含任意头文件。
原创
发布博客 2022.10.07 ·
1335 阅读 ·
3 点赞 ·
1 评论 ·
14 收藏

WebRTC

1.音视频处理+即使通信的开源库2.谷歌开源3.跨平台的多媒体框架。
原创
发布博客 2022.09.19 ·
232 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

《玩转Git三剑客》

git checkout 3d4731d90 我们切换到这个commit中 并没有创建分支 会进入分离头指针的状态 当我们 改动文件并commit时,如下,若不创建分支补充,会当作垃圾处理。git add -u 在已经添加到暂存区的文件,一并在此添加管理(避免修改了这些文件,繁琐添加,所以 -u 一并处理)将文件添加到暂存区,此时文件已经被git管理,可以暂存 也可以回退,添加之后在提交到仓库分支。查找 文件类型 哈希值值。ssh -keygen -t -rsa -b 4096 -C “邮箱”
原创
发布博客 2022.09.18 ·
603 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

web serveer

主线程使用某种算法来主动选择子线程.最简单、最常用的算法是随机算法和RoundRobin(轮流选取)算)法,但更优秀、更智能的算法将使任务在各个工作线程中更均匀地分配,从而减轻服务器的整体压力.主线程和所有子线程通过一个共享的工作队列来同步,子线程都睡眠在该工作队列上.当有新的任务到来时,线程池是由服务器预先创建的一组子线程,线程池中的线程数量应该和cpu数量差不多.线程池中的所有子线程都运行着相同的代码.当有新的任务到来时,主线程将通过某种方式选择线程池中的某一个子线程来为之服务.相。
原创
发布博客 2022.09.13 ·
332 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

手撸 json解析器

3.名称 :值对 ,字符串(string)、数值(number)、对象(object)、数组(array), true、false、null。2.数组 [1,2,“three”,“four”,true,false,null,[1,2],{“name”:“兮动人”}]父类指针指向 子类对象 强转子类 纹丝不动 地址不变 内容也不变。父类指针指向子类对象 虚函数定义下 使用子类函数。可读性良好的一种文本格式(存储信息)友元类 可以使用该类下的成员函数。1.对象 { 名称:值对 }...
原创
发布博客 2022.08.31 ·
112 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SDL+ffmpeg 最新可直接运行 视频播放器

作用:重复执行一个函数的效果通常不是周期性的,因为每次加载和处理的数据所消耗的时间是不固定的,因此单纯地在一个循环中使用SDL_RenderPresent(renderer)会令视频播放产生帧率跳动的情况。因此需要引入一个定期刷新机制,令视频的播放有一个固定的帧率。实现帧率改变的初衷是改变播放视频的速度,但是总感觉这样的实现方式并不好,因为当你加速播放的时候,一秒内极有可能处理相当多的视频帧,会对播放设备产生明显影响,因此暂时认为对视频的加减速播放应该有更优的方案。...
原创
发布博客 2022.08.14 ·
162 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SDL+ffmpeg 最新可直接运行 音频播放器

重采样结构体,就是改变音频的采样率、sample format、声道数等参数,使之按照我们期望的参数输出,当然是原有的音频参数不满足我们的需求,比如在FFMPEG解码音频的时候,不同的音源有不同的格式,采样率等,在解码后的数据中的这些参数也会不一致,如果我们接下来需要使用解码后的音频数据做其他操作,而这些参数的不一致导致会有很多额外工作,此时直接对其进行重采样,获取我们制定的音频参数,这样就会方便很多。重采样结构体能够改变原先音频的采样率、声道数等参数,令各种音频能够按照我们设定的参数进行输出。...
原创
发布博客 2022.08.13 ·
178 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SDL2.0播放YUV格式视频

SDL2.0播放YUV格式视频
原创
发布博客 2022.08.07 ·
211 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

SDL2.0播放pcm格式音频

SDL播放PCM格式音频
原创
发布博客 2022.08.06 ·
317 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

====== 函数新特性、内联函数、const详解 ======

后置返回类型Inline函数本体 替换函数调用constexpr 严格意义上也是更严格的内敛函数返回引用const形参加入 const 同时形参为引用 就不会产生拷贝 同时也不会改这个值
原创
发布博客 2022.06.12 ·
100 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

==== auto、头文件防卫、引用、变量 ====

初始化auto自动推断类型,发生在编译期间,不会影响程序执行的效率头文件防卫如main文件 中调用head1.h head2.h 同时head2.h调用head1.h 为了防止重复包含导致 成员变量重复被定义 用条件constexpr也是一个常量的概念,表示常量表达式 编译时求值,提升效率...
原创
发布博客 2022.06.11 ·
215 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

音视频解封装流程分析

重点
原创
发布博客 2022.02.20 ·
201 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

音视频解封装流程分析

AAC ADTS分析H264 NALU分析IDRNALU发I帧之前,至少发一次SPS和PPSNALU结构解析NALUFLV格式分析解析FLVFLV headerFLV bodyFLV Tag音频解码过程FFmpeg
原创
发布博客 2022.02.18 ·
1225 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多