自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(274)
  • 资源 (6)
  • 收藏
  • 关注

原创 海量数据处理方法论总结

目录第一部分、十道海量数据处理1、海量日志数据,提取出某日访问百度次数最多的那个IP。2、搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节3、有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返回频数最高的100个词。4、有10个文件,每个文件1G,每个文件的每一行存放的都是用户的query,每个文件的query都可能重复。要求你按照query的频度排序。5、 给定a、b两个文件,各存放50.

2021-04-13 13:26:15 357

原创 MySQL源码分析-启动初始化&连接与线程管理

目录0. 背景1. MySQL初始化初始化的内容MySQL中的线程全量源码源码函数调用链0. 背景参加公司早读会分享,打算1.MySQL初始化源码学习个人习惯从最开始的各种准备初始化展开深入,mysql也一样,我们从mysql的启动初始化一直到终止阶段分析逻辑。一下是mysql初始化的简单小结,详细的源码栈在后续接着分析。1.1 初始化的内容参数配置解析: 分别从/etc/my.conf, /etc/mysql/my.conf, SYSCONFD..

2020-11-11 11:09:10 1168 1

原创 C++17新特性知识点汇总

C++17的入选特性有非类型模板参数的 auto 模板参数分为两种,一种是类型模板参数,也是我们用得最多的一种:template <typename T, typename U>auto add(T t, U u) { return t+u;}里面的T和U都是类型模板参数。另一种是非类型模板参数,它可以让不同的字面量成为模板的参数:template <typename T, int BufSize>class buffer_t ...

2020-09-28 16:24:04 445

原创 C++14新特性知识点汇总

函数返回值类型推导C++14对函数返回类型推导规则做了优化,先看一段代码:#include <iostream>using namespace std;auto func(int i) { return i;}int main() { cout << func(4) << endl; return 0;}使用C++11编译:~/test$ g++ test.cc -std=c++11test.cc:5:16:

2020-09-23 16:26:47 571

原创 MySQL源码分析--一条简单SQL的加锁分析

一、问题引入看如下一条sql语句:#tableT(idint,namevarchar(20)) deletefromTwhereid=10;MySQL在执行的过程中,是如何加锁呢?再看下面这条语句:select*fromTwhereid=10;那这条语句呢?其实这其中包含太多知识点了。要回答这两个问题,首先需要了解一些知识。二、相关知识回顾2.1 多版本并发控制在MySQL默认存储引擎InnoDB中,实现的是基...

2020-09-14 23:09:54 712

原创 数据结构堆(Heap)详解-堆的建立、插入、删除、最大堆、最小堆、堆排序等

基本概念:1、完全二叉树:若二叉树的深度为h,则除第h层外,其他层的结点全部达到最大值,且第h层的所有结点都集中在左子树。2、满二叉树:满二叉树是一种特殊的的完全二叉树,所有层的结点都是最大值。什么是堆?堆(英语:heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: 堆中某个节点的值总是不大于或不小于其父节点的值; ...

2019-12-13 11:08:23 37556 7

原创 WebRTC学习进阶之路 --- 十七、源码分析之WebRTC的数据流水线详解&模块机制核心ProcessThread与ProcessThreadImpl

WebRTC学习进阶之路系列总目录:https://blog.csdn.net/xiaomucgwlmx/article/details/103204274对于实时音视频应用来讲,媒体数据从采集到渲染,在数据流水线上依次完成一系列处理。流水线由不同的功能模块组成,彼此分工协作:数据采集模块负责从摄像头/麦克风采集音视频数据,编解码模块负责对数据进行编解码,RTP模块负责数据打包和解包。数据流水...

2019-12-07 18:37:36 1400

原创 算法LeetCode解题(C++)-20. 两个数组的交集(难度:简单)

做IT行业,不管是测试、开发、运维等等,或简单或复杂的算法是必不可少的,也是大家面试工作中的必要环节,这个专栏开始和大家一起来研究著名的LeetCode,里边有上千种最常见的算法,面试工作出现几率很高,值得掌握研究,每次完成博客更新我会同步更新我的个人Github上的代码,每个算法都可以直接运行调试以供掌握,GitHub地址:https://github.com/cuiguangwei/LeetC...

2019-12-02 19:50:23 262

原创 Shell脚本拷贝多级目录文件(具体名称/.h/.lib/.dll等)到指定目录

多级目录指定文件类型的拷贝经常用到,比如我们要封装一个功能库的时候,需要给调用方打包依赖的.h、.lib和.dll等;拷贝多级目录下的.h文件echo off:: 定义源目录set sourcePath=E:\fileA::定义目标路径set resulePath=E:\fileBxcopy %sourcePath%\*.h %resulePath%\ /s /e /c /...

2019-12-02 11:14:58 1204

原创 WebRTC学习进阶之路 --- 十六、源码分析之最核心的内容PeerConnection

WebRTC学习进阶之路系列总目录:https://blog.csdn.net/xiaomucgwlmx/article/details/103204274本文我们来看WebRTC的核心通信模块PeerConnection,来看下酒精是如何为通信多方建立连接,提供通信机制的。一、核心类整体介绍看过前边文章的应该都已经知道,WebRTC的源码中api中的都是给应用层提供的内容,具体的实现...

2019-12-01 11:29:53 1609 1

原创 WebRTC学习进阶之路 --- 十五、源码分析之WebRTC中的线程详解-MessageQueueManager&MessageQueue&Message&MessageHandler

WebRTC学习进阶之路系列总目录:https://blog.csdn.net/xiaomucgwlmx/article/details/103204274本文将介绍消息的管理类(MessageQueueManager)、消息循环中的消息(Message)、消息中的数据(MessageData)、消息队列(MessageQueue)以及处理消息的Handler(MessageHandler)的...

2019-11-29 21:22:28 1248 1

原创 WebRTC学习进阶之路 --- 十二、下载WebRTC源码及各操作系统的WebRTC源码编译详细步骤

WebRTC学习进阶之路系列总目录:https://blog.csdn.net/xiaomucgwlmx/article/details/103204274一、如何下载资源这里我的是泡芙云购买的账号,链接如下:https://www.paofucloud.co/auth/register?code=HkjJ,很便宜,网速不错,提供很多节点选择可以选择。里边有相应的使用教程,下载一个Sh...

2019-11-28 16:35:03 2698

原创 WebRTC学习进阶之路 --- 十四、源码分析之WebRTC中的线程详解-ThreadManager&Thread

WebRTC学习进阶之路系列总目录:https://blog.csdn.net/xiaomucgwlmx/article/details/103204274前言WebRTC源码中的很多注释是很赞的,看源码的时候多加阅读注释有助于更好的理解。WebRTC实现了跨平台(Windows,MacOS,Linux,IOS,Android)的线程类rtc::Thread,WebRTC内部的netwo...

2019-11-28 15:26:56 3492

原创 WebRTC学习进阶之路 --- 零、WebRTC系列文章简述和目录结构

搞了五年C++开发,出于个人发展和目前市场需求趋势(各种音视频相关崛起,同时伴随着5G时代到来)和未来至少十年的发展空间考虑,决定接下来投身大部分精力学习和研究WebRTC。之前零零散散写了一点相关文章,整体来说不成系统,以下是结合各方开源的/收费的/牛逼的/实战的等等渠道总结的一系列学习进阶修炼之路,不断总结吸纳更新以至完善。目录:一、 WebRTC学习进阶之路 ---...

2019-11-28 13:49:28 7807

原创 WebRTC学习进阶之路 --- 十三、分析源码音视频互动peerconnection-client+server实例

WebRTC学习进阶之路系列总目录:https://blog.csdn.net/xiaomucgwlmx/article/details/103204274学习一个框架最好的入手点之一就是首先学会如何方便快捷的使用它达到我们想要的效果,然后再去逐步分析每一个过程的具体实现细节,这样思路会更加清晰一些。WebRTC为我们提供一个非常完整凝练的音视频互动案例作为入手分析点,下边我们来详细分析下这个...

2019-11-27 14:48:30 1737 1

原创 WebRTC学习进阶之路 --- 八、信令服务器

WebRTC学习进阶之路系列总目录:https://blog.csdn.net/xiaomucgwlmx/article/details/103204274什么是信令信令是协调通信的过程。为了使WebRTC应用程序能够建立一个“通话”,其客户需要交换以下信息: # 会话控制消息用于打开或关闭通信 # 错误消息 # 媒体元数据,如编...

2019-11-24 22:38:10 4524

原创 WebRTC学习进阶之路 --- 七、WebRTC核心之SDP详解、媒体协商

WebRTC学习进阶之路系列总目录:https://blog.csdn.net/xiaomucgwlmx/article/details/103204274一、什么是SDP SDP(Session Description Protocol)描述会话协议,它只是一种信息格式的描述标准,本身不属于传输协议,但是可以被其他传输协议用来交换必要的信息,用于两个会话实体之间的媒体协商。...

2019-11-24 22:13:31 5753

原创 WebRTC学习进阶之路 --- 六、Web服务器原理、服务器基础编程知识

WebRTC学习进阶之路系列总目录:https://blog.csdn.net/xiaomucgwlmx/article/details/103204274一、服务器基础知识Linux系统下的信号 信号的处理方式:忽略、捕获、默认处理 都有哪些信号:man 7 signal查看系统中有哪些信号几个重要信号:SIGPIPE:管道中止,当写入无人读取的管道时产生该信号,默认终止进程...

2019-11-24 16:24:36 975

原创 WebRTC学习进阶之路 --- 五、WebRTC网络知识详解(三)(最全流媒体协议(RTP/RTCP/RTSP/RTMP/MMS/HLS/HTTP/ HTTP-FLV(HDL)/SDP)

WebRTC学习进阶之路系列总目录:https://blog.csdn.net/xiaomucgwlmx/article/details/103204274RTP:实时传输协议(Real-time Transport Protocol) RTP是一种基于包的传输协议,它用来传输实时数据。在网络上传输数据包的延迟和误差是不可避免的,对此RTP包头包含时间戳、丢失保护、载荷标识、...

2019-11-24 11:30:31 2396

原创 WebRTC学习进阶之路 --- 四、WebRTC网络知识详解(二)(加解密/SSL/OpenSSL/TLS/DTLS/SRTP)

DTLS主要用于数据的安全传输,WebRTC学习进阶之路系列总目录:https://blog.csdn.net/xiaomucgwlmx/article/details/103204274一、加解密简介 加密技术包括两个元素:算法和密钥。算法是将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解密的一种算法。在安全...

2019-11-24 11:19:43 2504

原创 WebRTC学习进阶之路 --- 三、WebRTC网络知识详解(一)(P2P/STUN/TURN/ICE)

WebRTC学习进阶之路系列总目录:https://blog.csdn.net/xiaomucgwlmx/article/details/103204274在介绍这些基本知识之前我们要清楚WebRTC的目的以及根本要解决的问题是什么。WebRTC首要要解决的问题是两个浏览器之间如何进行音视频的实时互动,对于底层来说就是两个端点之间如何进行高效的网络传输。下边我们来一项一项的详细介绍这些内容。...

2019-11-23 22:22:27 2955

原创 WebRTC学习进阶之路 --- 二、网络编程基础、TCP/IP详解

WebRTC学习进阶之路系列总目录:https://blog.csdn.net/xiaomucgwlmx/article/details/103204274一、网络协议 网络协议指的是计算机网络中互相通信的对等实体之间交换信息时所必须遵守的规则的集合。 对等实体通常是指计算机网络体系结构中处于相同层次的信息单元。一般系统网络协议包括五个部分:通信环境,传输服务...

2019-11-23 09:45:45 1656

原创 WebRTC学习进阶之路 --- 一、概述、原理、源码目录结构与整体架构介绍

片头语:在学习WebRTC首先最好具备一定的音视频相关基础知识,可以参考https://blog.csdn.net/xiaomucgwlmx/article/details/102838490,里边有很详细的介绍总结以供参考,接下来让我们一起来认识一下WebRTC。WebRTC学习进阶之路系列总目录:https://blog.csdn.net/xiaomucgwlmx/article/deta...

2019-11-23 09:12:18 3349 2

原创 WebRTC入门与实战 --- WebRTC网络传输基本知识---TURN

TURN介绍目的是解决对称NAT无法穿越的问题,遇到对称型等无法穿越时将数据传给TURN服务,由TURN服务中介转给其他接收者,或者其他接收者发送数据给TURN服务,转送给client端 建立在STUN之上,消息格式使用STUN格式消息,协议头和body基本一样,外壳形式一样内容有所不同 TRUN Client要去服务端分配一个公共IP和Port用于接收或发送数据 ...

2019-11-16 19:47:56 420

原创 WebRTC入门与实战 --- WebRTC网络传输基本知识---STUN

STUN介绍STUN存在的目的就是进行NAT穿越 STUN是典型的客户端/服务器模式。客户端发送请求,服务端进行响应RFC STUN规范RFC3489/STUN Simple Traversal of UDP Through NAT 通过UDP进行穿越 RFC5389/STUN Session Traversal Utilities for NAT 一系列穿越N...

2019-11-16 11:56:45 409

原创 WebRTC入门与实战 --- WebRTC网络传输基本知识---NAT

在介绍这些基本知识之前我们要清楚WebRTC的目的以及根本要解决的问题是什么。WebRTC首要要解决的问题是两个浏览器之间如何进行音视频的实时互动,对于底层来说就是两个端点之间如何进行高效的网络传输。 NAT(Network Address Translator) 网络上的主机要有一个公网的地址才能进行通讯,现实中我们大部分主机都是在网关之后的,实际是有一个映射,在网关上有一...

2019-11-16 11:33:40 720

原创 算法LeetCode解题(C++)-19. 合并K个排序链表(难度:困难)

题目描述:合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6这道题让我们合并k个有序链表,最终合并出来的结果也必须是有序的,之前做过一道Merge Two S...

2019-11-15 16:32:12 197

原创 WebRTC入门与实战 --- WebRTC信令服务器原理

先来看下信令服务器的作用: 如果没有信令服务器webrtc之间是无法通信的,从图可以看出,发起端和接收端之间想要传递数据是必须要经过信令服务器的,这两个信息是什么呢,第一个就是媒体信息通过SDP协议描述,例如双方通信的编解码器、是否支持音视频等通过信令服务器中转传递。第二个需要传递的信息是网络信息 ,通过服务器传到对端,对端拿到信息后才能知道双方是否在同一个局域网,不在同一个网...

2019-11-10 22:37:44 1196

原创 WebRTC入门与实战 --- Socket.io发送消息

服务端消息发送 给本次链接自己发送消息 socket.emit() 给某个房间内所有人发消息 io.in(room).emit() 除本连接自己之外,给某个房间内所有人发消息 socket.to(room).emit() 除本连接外,给所有人发消息 socket.broadcast.emit() 客户端处理消息 发送action命令 S:so...

2019-11-10 22:16:39 552

原创 WebRTC入门与实战 --- WebRTC音视频录制

首先 介绍一个重要的额类,MediaRecoder:使用案例:开始录制:获取桌面:

2019-11-10 21:51:31 728

原创 WebRTC入门与实战 --- WebRTC音视频采集

我们来学习下WebRTC中对音视频数据的采集。音视频采集API这里我们可以看到MediaStreamConstratints的两个参数的类型有两种:当时用boolean时,标识是否对音频、视频进行采集,如果使用MediaTrackContraints就可以分别对音视频的具体参数进行设置,比如视频的分辨率、帧率等,同样的音频也可以设置延迟性、音量、声道等等,后边的学习会详细研述。如下图一...

2019-11-10 12:07:29 1151

原创 算法LeetCode解题(C++)-18. 合并两个有序链表(难度:简单)

题目描述:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4具体思想就是新建一个链表,然后比较两个链表中的元素值,把较小的那个链到新链表中,由于两个输入链表的长度可能不同,所以最终会有一个链表先完成插入...

2019-11-08 19:40:00 166

原创 WebRTC入门与实战 --- WebRTC获取音视频设备

前边我们做了很多必要的准备工作,包括音视频相关基础内容、环境准备、JavaScript等,接下来正式开始学习WebRTC的内容,首先我们来学习下WebRTC如何来进行设备管理。获取所有音视频设备这里介绍一个API,enumerateDevices:音频同一个设备中包含了两种类型,一种是输入一种是输出。JavaScript中的Promise 首先,JavaScri...

2019-11-08 15:12:34 671

原创 WebRTC入门与实战 --- JavaScript基础知识回顾与代码调试

以前的JavaScript调试非常困难,我们一般都是通过打印信息弹窗进行提示,如今Chrome推出的JavaScript调试工具developtools,可以非常方便的调试JavaScript,下边简单介绍下调试相关:Elenents:页面中的元素Console:便于调试,比如修改代码变量值达到不同的目的等Source:重点,从服务端获取的JavaScript或者页面都...

2019-11-08 09:57:30 365

原创 WebRTC入门与实战 --- Web服务器

Web服务器选型Nodejs Nginx ApacheWeb服务工作原理Nodejs工作原理JavaScript解析Nodejs时间处理

2019-11-07 18:49:32 302

原创 WebRTC入门与实战 --- WebRTC运行机制

我们来学习写WebRTC的运行机制。首先来看两个基本概念,轨与流:轨与流:Track(轨):采取了轨道的概念,两条轨之间是不想交的,就像我们的一路音频和一路视频都是一路轨,两者是不想交的,两路音频也是不想交的两个轨。 MediaStream:就是媒体流,包含了很多轨。几个重要的类:MediaStream:媒体流RTCPeerConnection:WebRTC中最为重要的一个...

2019-11-07 17:05:02 888

原创 WebRTC入门与实战 --- 源码目录结构

介绍下WebRTC源码的目录结构,和各个模块的作用,方便我们应用中进行使用和一些个性化修改:下边看一下核心模块Modules:

2019-11-07 14:23:51 355

原创 WebRTC入门与实战 --- WebRTC原理与架构

上一篇我们对WebRTC进行了整体的介绍和学习,作为技术人员,我们学习过程中是要了解一个技术的原理的,接下来我们就来学习一下WebRTC的原理与架构,下边是官网的架构图: 架构图颜色标识说明:(1)应用层:紫色部分是Web开发者API层;(2)核心层:蓝色实线部分是面向浏览器厂商的API层(也就是红色框标内模块,也是本人专注研...

2019-11-07 10:36:39 2109

原创 WebRTC入门与实战 --- WebRTC概述

今天开始来系统完整地学习WebRTC相关技术,WebRTC的重要性和以后的趋势这里我就不说了,相信来看这个系列博客的伙伴可定是了解这个技术的地位和需求才会来看。这里主要知识来源于李超老师的课程以及网上一些优秀的技术博客等,在此留下详细的学习记录,方便后续学习和回顾,也欢迎感兴趣的伙伴参考。WebRTC概述WebRTC的相关介绍很多地方都有(详细可以参考:https://baike.baid...

2019-11-07 09:52:22 1072

原创 最全流媒体协议详细总结介绍(RTP/RTCP/RTSP/RTMP/MMS/HLS/HTTP/ HTTP-FLV(HDL) /SDP)

RTP:实时传输协议(Real-time Transport Protocol) RTP是一种基于包的传输协议,它用来传输实时数据。在网络上传输数据包的延迟和误差是不可避免的,对此RTP包头包含时间戳、丢失保护、载荷标识、源标识和安全性信息。这些信息用于在应用层实现数据包丢失恢复、拥塞控制等。 RTP通常运行于UDP的上层,以利用UDP的复用和求和校验功能。RTP...

2019-11-01 09:49:38 3813

LeetCodeProject.zip

提供一个VS工程,内容是LeetCode解题1-20题解题实现代码,可以直接运行调试。

2019-10-29

webrtc教程

webrtc教程,详细介绍webrtc的相关知识和技术细节,以及相关开发技术。

2019-03-15

新一代视频压缩编码标准H264 AVC

新一代视频压缩编码标准H264 AVC,音视频基础学习,H264详解。

2019-03-15

NSIS安装制作基础教程

NSIS安装制作基础教程,用于客户端打包成安装包,发布软件。

2019-03-15

SDL2开发静态库mingw版本

SDL2开发静态库mingw版本,可用于QT+FFMPEG+SDL进行音视频开发。

2018-09-21

SDL2-2.0.8-win32-x86 32位

SDL2-2.0.8-win32-x86,SDL动态库,可直接用于FFMPEG+SDL播放一个音频文件项目开发的运行时动态库使用,

2018-09-21

空空如也

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

TA关注的人

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