<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[beijingFC的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/beijingFC</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; beijingFC]]></copyright><item><title><![CDATA[《手把手带你学会git开发流程》]]></title><link>https://blog.youkuaiyun.com/beijingFC/article/details/128831607</link><guid>https://blog.youkuaiyun.com/beijingFC/article/details/128831607</guid><author>beijingFC</author><pubDate>Sat, 04 Feb 2023 12:53:37 +0800</pubDate><description><![CDATA[该命令的意思是把远程库中的更新合并到（pull=fetch+merge）本地库中，–-rebase的作用是取消掉本地库中刚刚的commit，并把他们接到更新后的版本库之中。如果你是组织者，那可以直接克隆主项目，如果你是社区成员，你看到这个项目不错，你也想贡献你的代码，那你需要fork，点击fork。总之就是 我提交上自己的fork的仓库 同步的时候 从远端同步，递增推送，层层关系，大概就是这样。对于fork的主仓库是没有主仓库信息的，我们需要追踪他，所以要添加上游地址。左边对应主仓库的地址，右边自己的。]]></description><category></category></item><item><title><![CDATA[《OpenGL 模型》 渲染出帅气的暗影战士]]></title><link>https://blog.youkuaiyun.com/beijingFC/article/details/128360009</link><guid>https://blog.youkuaiyun.com/beijingFC/article/details/128360009</guid><author>beijingFC</author><pubDate>Wed, 21 Dec 2022 10:23:26 +0800</pubDate><description><![CDATA[3D建模工具，可以让艺术家创建复杂的形状，Assimp库用于加载，如加载obj格式的文件到我们的程序之中，下载CMAKE用于构建该库（会有很多问题），不过！我已经为大家整理好了，大家加入到自己的ide中，设置好链接，头文件加入就好，文件我放在这里，直接用。理解模型构建的基础单位 是网格，就可以了，相当于积木块一样，组成一个大玩具，我们先需要定义一个OpenGL的网格类，来接收通过Assimp解析后的数据（网格(Mesh)代表的是单个的可绘制实体）话不多说，直接上代码，看看网格类。不多解释，直接上代码。]]></description><category></category></item><item><title><![CDATA[《线程池》]]></title><link>https://blog.youkuaiyun.com/beijingFC/article/details/127812507</link><guid>https://blog.youkuaiyun.com/beijingFC/article/details/127812507</guid><author>beijingFC</author><pubDate>Tue, 22 Nov 2022 14:39:34 +0800</pubDate><description><![CDATA[程序里的指令操作，涉及IO的一些操作，比如设备、文件、网络操作（等待客户端连接IO操作是可以把程序阻塞住的）单核上，严格意义上还是只执行一个线程，每个线程时间片占用的CPU时间片非常短，宏观上看还是串行的。多核上，多个线程是在真正的同时执行。程序里的指令操作都是用作计算的。]]></description><category></category></item><item><title><![CDATA[《搞定音频技术》]]></title><link>https://blog.youkuaiyun.com/beijingFC/article/details/127686450</link><guid>https://blog.youkuaiyun.com/beijingFC/article/details/127686450</guid><author>beijingFC</author><pubDate>Fri, 04 Nov 2022 17:07:44 +0800</pubDate><description><![CDATA[这样我们就实现了音频信号的采集，我们常说的 PCM 文件就是未经封装的音频原始文件或者叫做音频“裸数据”选用什么样的采样率是根据具体用途来决定的，只是为了听见人声、听懂对方在说什么，8kHz.在网络音视频会议场景需要平衡音质和传输带宽消耗，我们一般可以使用 16kHz 或者 32kHz 的采样率。采样率就是 1 秒内采集到的采样点的个数，一般用赫兹 Hz 来表示。然后，振膜随空气抖动的振幅大小产生相应的电学信号。通道数的物理含义其实就是同一时间采集或播放的音频信号的总数。]]></description><category></category></item><item><title><![CDATA[《C++设计模式》]]></title><link>https://blog.youkuaiyun.com/beijingFC/article/details/127612230</link><guid>https://blog.youkuaiyun.com/beijingFC/article/details/127612230</guid><author>beijingFC</author><pubDate>Fri, 04 Nov 2022 10:19:00 +0800</pubDate><description><![CDATA[理解松耦合设计思想掌握面向对象的设计原则掌握重构技法改善设计掌握GOF核心设计模式每一个模式描述了一个在我们周围不断重复发生的问题，以及该问题解决方案的核心。这样，你就能一次又一次地使用该方案而不必做重复劳动。核心：可复用的面向对象。定义一个操作中的算法的骨架（稳定），而将一些步骤延迟（变化）到子类中，Template Method使得子类可以不改变（复用）一个算法的结构即可重定义（override重写）该算法的某些特定步骤。----《设计模式》GOF。]]></description><category></category></item><item><title><![CDATA[HLS点播 直播]]></title><link>https://blog.youkuaiyun.com/beijingFC/article/details/127227549</link><guid>https://blog.youkuaiyun.com/beijingFC/article/details/127227549</guid><author>beijingFC</author><pubDate>Sun, 16 Oct 2022 11:12:40 +0800</pubDate><description><![CDATA[点播与直播服务器不同的地方是， 直 播的 m3u8 文件会不断更新，而点播的 m3u8 文件是不会变的，只需要客户端在开始时请 求一次即可。客户端与服务器通过 HTTP 协议进行交互，以两级 m3u8 嵌套为例，客户端先 GET 请求 到一级 m3u8，一级 m3u8 里面包含了服务器端可以用于传播的一个或多个不同带宽的 URL， 这 URL 可以获取到二级 m3u8；流式媒体在播放前并不下载整个文件，只将开始部分内容存入内存，流式媒体 的数据流随时传送随时播放，只是在开始时有一些延迟。]]></description><category></category></item><item><title><![CDATA[C++从入门到精通 C++98.11.14.17]]></title><link>https://blog.youkuaiyun.com/beijingFC/article/details/127256772</link><guid>https://blog.youkuaiyun.com/beijingFC/article/details/127256772</guid><author>beijingFC</author><pubDate>Thu, 13 Oct 2022 21:26:44 +0800</pubDate><description><![CDATA[namespace 命名控件 {.....}  防止名字冲突在同一机制func();结构体int age;//函数 return 5;} };}]]></description><category></category></item><item><title><![CDATA[《 罗剑锋的C++实战笔记 》]]></title><link>https://blog.youkuaiyun.com/beijingFC/article/details/127128485</link><guid>https://blog.youkuaiyun.com/beijingFC/article/details/127128485</guid><author>beijingFC</author><pubDate>Fri, 07 Oct 2022 09:08:57 +0800</pubDate><description><![CDATA[预处理# 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 不止包含头文件 包含任意头文件。]]></description><category></category></item><item><title><![CDATA[WebRTC]]></title><link>https://blog.youkuaiyun.com/beijingFC/article/details/126915825</link><guid>https://blog.youkuaiyun.com/beijingFC/article/details/126915825</guid><author>beijingFC</author><pubDate>Mon, 19 Sep 2022 09:51:38 +0800</pubDate><description><![CDATA[1.音视频处理+即使通信的开源库2.谷歌开源3.跨平台的多媒体框架。]]></description><category></category></item><item><title><![CDATA[《玩转Git三剑客》]]></title><link>https://blog.youkuaiyun.com/beijingFC/article/details/126865529</link><guid>https://blog.youkuaiyun.com/beijingFC/article/details/126865529</guid><author>beijingFC</author><pubDate>Sun, 18 Sep 2022 09:53:29 +0800</pubDate><description><![CDATA[git checkout 3d4731d90   我们切换到这个commit中  并没有创建分支  会进入分离头指针的状态 当我们 改动文件并commit时，如下，若不创建分支补充，会当作垃圾处理。git add -u  在已经添加到暂存区的文件，一并在此添加管理（避免修改了这些文件，繁琐添加，所以 -u 一并处理）将文件添加到暂存区，此时文件已经被git管理，可以暂存 也可以回退，添加之后在提交到仓库分支。查找	文件类型  哈希值值。ssh -keygen -t -rsa -b 4096 -C “邮箱”]]></description><category></category></item><item><title><![CDATA[web serveer]]></title><link>https://blog.youkuaiyun.com/beijingFC/article/details/126790664</link><guid>https://blog.youkuaiyun.com/beijingFC/article/details/126790664</guid><author>beijingFC</author><pubDate>Tue, 13 Sep 2022 22:56:24 +0800</pubDate><description><![CDATA[主线程使用某种算法来主动选择子线程.最简单、最常用的算法是随机算法和RoundRobin(轮流选取)算)法，但更优秀、更智能的算法将使任务在各个工作线程中更均匀地分配，从而减轻服务器的整体压力.主线程和所有子线程通过一个共享的工作队列来同步，子线程都睡眠在该工作队列上.当有新的任务到来时，线程池是由服务器预先创建的一组子线程，线程池中的线程数量应该和cpu数量差不多.线程池中的所有子线程都运行着相同的代码.当有新的任务到来时，主线程将通过某种方式选择线程池中的某一个子线程来为之服务.相。]]></description><category></category></item><item><title><![CDATA[手撸 json解析器]]></title><link>https://blog.youkuaiyun.com/beijingFC/article/details/126532774</link><guid>https://blog.youkuaiyun.com/beijingFC/article/details/126532774</guid><author>beijingFC</author><pubDate>Wed, 31 Aug 2022 16:09:33 +0800</pubDate><description><![CDATA[3.名称 ：值对 ，字符串（string)、数值(number)、对象（object)、数组（array), true、false、null。2.数组 [1,2,“three”,“four”,true,false,null,[1,2],{“name”:“兮动人”}]父类指针指向 子类对象 强转子类 纹丝不动 地址不变 内容也不变。父类指针指向子类对象  虚函数定义下 使用子类函数。可读性良好的一种文本格式（存储信息）友元类 可以使用该类下的成员函数。1.对象 { 名称：值对 }...]]></description><category></category></item><item><title><![CDATA[SDL+ffmpeg 最新可直接运行 视频播放器]]></title><link>https://blog.youkuaiyun.com/beijingFC/article/details/126335841</link><guid>https://blog.youkuaiyun.com/beijingFC/article/details/126335841</guid><author>beijingFC</author><pubDate>Sun, 14 Aug 2022 20:38:44 +0800</pubDate><description><![CDATA[作用：重复执行一个函数的效果通常不是周期性的，因为每次加载和处理的数据所消耗的时间是不固定的，因此单纯地在一个循环中使用SDL_RenderPresent(renderer)会令视频播放产生帧率跳动的情况。因此需要引入一个定期刷新机制，令视频的播放有一个固定的帧率。实现帧率改变的初衷是改变播放视频的速度，但是总感觉这样的实现方式并不好，因为当你加速播放的时候，一秒内极有可能处理相当多的视频帧，会对播放设备产生明显影响，因此暂时认为对视频的加减速播放应该有更优的方案。...]]></description><category></category></item><item><title><![CDATA[SDL+ffmpeg 最新可直接运行 音频播放器]]></title><link>https://blog.youkuaiyun.com/beijingFC/article/details/126320677</link><guid>https://blog.youkuaiyun.com/beijingFC/article/details/126320677</guid><author>beijingFC</author><pubDate>Sat, 13 Aug 2022 15:59:42 +0800</pubDate><description><![CDATA[重采样结构体,就是改变音频的采样率、sample format、声道数等参数，使之按照我们期望的参数输出,当然是原有的音频参数不满足我们的需求，比如在FFMPEG解码音频的时候，不同的音源有不同的格式，采样率等，在解码后的数据中的这些参数也会不一致，如果我们接下来需要使用解码后的音频数据做其他操作，而这些参数的不一致导致会有很多额外工作，此时直接对其进行重采样，获取我们制定的音频参数，这样就会方便很多。重采样结构体能够改变原先音频的采样率、声道数等参数，令各种音频能够按照我们设定的参数进行输出。...]]></description><category></category></item><item><title><![CDATA[SDL2.0播放YUV格式视频]]></title><link>https://blog.youkuaiyun.com/beijingFC/article/details/126207558</link><guid>https://blog.youkuaiyun.com/beijingFC/article/details/126207558</guid><author>beijingFC</author><pubDate>Sun, 07 Aug 2022 11:07:21 +0800</pubDate><description><![CDATA[SDL2.0播放YUV格式视频]]></description><category></category></item><item><title><![CDATA[SDL2.0播放pcm格式音频]]></title><link>https://blog.youkuaiyun.com/beijingFC/article/details/126192164</link><guid>https://blog.youkuaiyun.com/beijingFC/article/details/126192164</guid><author>beijingFC</author><pubDate>Sat, 06 Aug 2022 11:46:15 +0800</pubDate><description><![CDATA[SDL播放PCM格式音频]]></description><category></category></item><item><title><![CDATA[====== 函数新特性、内联函数、const详解 ======]]></title><link>https://blog.youkuaiyun.com/beijingFC/article/details/125233279</link><guid>https://blog.youkuaiyun.com/beijingFC/article/details/125233279</guid><author>beijingFC</author><pubDate>Sun, 12 Jun 2022 11:45:33 +0800</pubDate><description><![CDATA[后置返回类型
Inline
函数本体 替换函数调用
constexpr 严格意义上也是更严格的内敛函数返回引用
const
形参加入 const   同时形参为引用   就不会产生拷贝  同时也不会改这个值]]></description><category></category></item><item><title><![CDATA[==== auto、头文件防卫、引用、变量 ====]]></title><link>https://blog.youkuaiyun.com/beijingFC/article/details/125219168</link><guid>https://blog.youkuaiyun.com/beijingFC/article/details/125219168</guid><author>beijingFC</author><pubDate>Sat, 11 Jun 2022 10:47:11 +0800</pubDate><description><![CDATA[初始化
auto
自动推断类型，发生在编译期间，不会影响程序执行的效率
头文件防卫
如main文件 中调用head1.h  head2.h 同时head2.h调用head1.h  为了防止重复包含导致 成员变量重复被定义 用条件
constexpr
也是一个常量的概念，表示常量表达式 编译时求值，提升效率...]]></description><category></category></item><item><title><![CDATA[音视频解封装流程分析]]></title><link>https://blog.youkuaiyun.com/beijingFC/article/details/122974108</link><guid>https://blog.youkuaiyun.com/beijingFC/article/details/122974108</guid><author>beijingFC</author><pubDate>Sun, 20 Feb 2022 13:14:57 +0800</pubDate><description><![CDATA[重点


]]></description><category></category></item><item><title><![CDATA[音视频解封装流程分析]]></title><link>https://blog.youkuaiyun.com/beijingFC/article/details/122991563</link><guid>https://blog.youkuaiyun.com/beijingFC/article/details/122991563</guid><author>beijingFC</author><pubDate>Fri, 18 Feb 2022 14:00:37 +0800</pubDate><description><![CDATA[AAC ADTS分析





H264 NALU分析




IDR


NALU

发I帧之前，至少发一次SPS和PPS
NALU结构

解析NALU




FLV格式分析


解析FLV

FLV header

FLV body

FLV Tag




音频解码过程

FFmpeg



]]></description><category></category></item></channel></rss>