自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (2)
  • 收藏
  • 关注

原创 网络技术入门(二):两个主机(客户端和服务器)通信过程(硬件转发角度)

自己写文章习惯性在每一个小节上做总结,有时候方便理解可以先看总结的内容。本章从宏观(硬件)角度看两个主机之间的通信过程。本章需要了解的概念以及他们的作用:1 IP地址,子网掩码,网关,DNS服务器IP地址,MAC地址2 集线器,交换机,路由器3 ARP缓存表,MAC地址表,路由表4 互联网中两个主机之间通信时,以上概念在通信过程中作用和所担任的角色这里啰嗦几句。有时候我们去记这些概...

2020-04-21 19:44:45 17195 1

原创 网络技术入门(一):网络技术基础知识系统归结

《网络技术入门》系列文章,分别从宏观硬件和微观数据传输角度说明网络传输过程。请期待后续系列文章。本章主要是总结性质的,让大家有个基本的概念和思路。一、OSI七层模型OSI七层模型TCP/IP概念层模型功能TCP/IP协议簇相关设备应用层应用层文件传输、电子邮件、虚拟终端HTTP、FTP、SMTP、DNS…表示层数据格式化、代码转换、数据加密LPP...

2020-04-18 17:45:19 22172 2

原创 Windows上VSCode+Flutter、Dart安装配置(详细版+安装问题处理)

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。Flutter中文网 https://flutterchina.club/Windows上搭建Flutter开发环境(vscode)(1) 下载Flutter...

2020-01-14 16:20:45 14138

原创 WSL安装和配置

WSL的安装和配置一 什么是WSL二 WSL的安装1 Linux子系统安装环境配置2 安装Linux发行版3 安装WIndows终端(可选)4 功能快捷键三 WSL中使用adb一 什么是WSLWindows Subsystem for Linux(简称WSL)是一个为在Windows 10上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层-百度百科。Windows下Linux的子系统。就是在WIndows上安装了一个Linux环境。(可以自行百度使用虚拟机和WSL的区别)。二 WSL的安

2021-08-14 01:53:54 1288 1

原创 Windows上AndroidStudio+Flutter、Dart安装配置(详细版+安装问题处理)

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。Flutter中文网 https://flutterchina.club/Flutter实战 https://book.flutterchina.club/关于VSCode作为开发环境的点击《Windows上VSCode+Flutter、Dart安装配置(详细版+安装问题

2020-11-16 10:46:06 2919

原创 Flutter版本切换

该文章以flutter从稳定版切换到开发版为例。1 命令执行flutter channel命令可获得当前类型信息该命令可在cmd、powerShell、termainal、git中执行flutter channel2 命令执行flutter channel dev进行更换(stable->dev)flutter channel dev3 命令执行flutter upgrade进行更新flutter upgrade完成 !上图就是Flutter版本切换涉及到的三个命令..

2020-11-16 09:59:52 2657 1

原创 Qt UI设计之《可缩放固定比例窗口》

该窗口有两个窗口控件,内部控件按照自的名义比例伸缩1 主窗口相关代码#pragma once#include <QWidget>class uimainwnd : public QWidget{ Q_OBJECTpublic: uimainwnd(QWidget *parent = Q_NULLPTR); ~uimainwnd();protected: void resizeEvent(QResizeEvent* event) override;private:

2020-11-06 15:13:31 5226 3

原创 Qt UI设计之《自定义标题栏可移动拖拽窗口》

该窗口自定义标题栏,窗口可移动,可伸缩,使用的是系统自带隐形边框窗口分为三个控件:主窗口QMainWindows,标题栏QWidget,客户端QWidget1 标题栏相关代码#pragma once#include <QWidget>class uititlebar : public QWidget{ Q_OBJECTpublic: uititlebar(QWidget *parent = Q_NULLPTR); ~uititlebar();protected: v

2020-11-04 18:03:38 4362 2

原创 Qt UI设计之《自定义阴影边框、自定义标题栏可移动窗口》

该窗口自定义阴影边框、自定义标题栏、可移动。注:该窗口不可伸缩,目前个人也对无边框窗口使用过各种控制窗口伸缩的方法,和系统提供的窗口伸缩体验相差很多。窗口使用系统提供伸缩、自定义标题栏和可移动可以看另一篇文章1 标题栏相关代码#pragma once#include <QWidget>class UITitlebar : public QWidget{ Q_OBJECTpublic: UITitlebar(QWidget *parent = Q_NULLPTR); ~U

2020-11-04 16:06:05 3823

原创 预处理、编译、汇编、链接(图解)

编译的整个过程:预编译、编译、汇编、链接

2020-11-03 11:07:18 2891

原创 一段示例代码(C++)让你完全理解面向对象的七个原则

本章为概述。后续章节将针对每一种原则给出对应的应用场景和代码示例。知名软件大师Robert C.Martin认为一个可维护性较低的软件设计,通常是由于如下四个原因造成:过于僵硬(Rigidity),过于脆弱(Fragility),可用率低(Immobility),黏度过高(Viscosity)。只是知道virtual 不是面向对象,这只是语法。理解面向对象的基本原则,才是面向对象的入门,才是设计模式的入门。你能够根据你的业务,选择恰当的设计模式,你的设计模式开始成熟了。注重软件的可维护性和可复用

2020-05-12 20:13:04 2048

原创 深入浅出设计模式之概论

本章为概述。后续章节将针对每一种设计模式给出对应的应用场景和代码示例。知名软件大师Robert C.Martin认为一个可维护性较低的软件设计,通常是由于如下四个原因造成:过于僵硬(Rigidity),过于脆弱(Fragility),可用率低(Immobility),黏度过高(Viscosity)。注重软件的可维护性和可复用性,才是面向对象的入门,才是设计模式的入门。软件设计有三个要素:流程、功能和数据结构。功能方法考虑性能,流程方法考虑设计模式。设计模式针对是流程,流程复杂化、不容易理解和控制

2020-05-11 20:15:01 307

原创 网络技术入门 :一篇文章让你彻底理解网络通信中各种协议和设备的作用

本文通过在局域网中新添加一台主机,到主机配置,最后访问网页的一个过程。来说明网络通信中各种协议和设备的作用。让大家对整个网络通信,在架构上有所理解,不对各种协议做深入说明。本系列文章网络技术入门(一):网络技术基础知识系统归结网络技术入门(二):两个主机(客户端和服务器)通信过程(硬件转发角度)网络技术入门(三):两个主机(客户端和服务器)通信过程(数据包交换角度)网络技术入门(四):两个主机(客户端和服务器)通信过程(TCP/IP通信角度)网络技术入门 :HTTP报文和TCP/IP数据包这里

2020-05-08 17:50:46 4872 2

原创 网络技术入门 :HTTP报文和TCP/IP数据包

本章把HTTP报文和TCP/IP数据包放在一起。是因为:报文是一个完成的有意义的数据。数据包可以理解为组成报文的传输单元。应用程序的数据一般都比较大,因此TCP会按照网络包的大小对数据进行拆分。这些被拆分的数据块,编上号,在经过传输层,网络层,数据链路层后被拼接成数据包发送。接收端收到数据包后,将数据包按顺序组装起来,就是一个完整的数据报数据。这里添加一个拓展完整的数据是在什么时候被拆...

2020-04-27 15:10:48 9211 2

原创 音视频技术之《移动直播场景的坑与规避措施》

移动平台上视频直播的坑主要可以总结为两个方面:设备差异,以及网络环境这些场景下带来的技术考验。移动直播场景的坑与规避措施1 不同芯片平台上的编码差异iOS 平台上无论硬编还是软编,由于是 Apple 一家公司出厂,几乎不存在因为芯片平台不同而导致的编码差异。然而,在 Android 平台上,Android Framework SDK 提供的 MediaCodec 编码器,在不同的芯片平台...

2020-04-13 14:30:23 822

原创 音视频技术之《影响视觉体验的直播性能指标》

影响视觉体验的直播性能指标是 延迟、卡顿和首屏耗时一 直播第一个性能指标是延迟延迟是数据从信息源发送到目的地所需要的时间。1 物理延迟根据爱因斯坦的狭义相对论,光速是所有能量、物质和信息运动所能达到的最高速度,这个结论给传播速度设定了上限。因此,即便我们肉眼感觉到的实时,实际上也是有一定的延迟。2 逻辑延迟由于 RTMP/HLS 是基于 TCP 之上的应用层协议,TCP 三次握手,...

2020-04-13 13:42:10 1123

原创 网络技术总结

1 websocket和socket.io介绍https://www.jianshu.com/p/144b997e57b42 Websocket和Socket.io的区别及应用https://www.jianshu.com/p/970dcfd174dc3 http和https 握手过程详解https://blog.csdn.net/cout__waht/article/details/8...

2020-04-10 09:17:05 710

原创 Flutter项目目录结构

2020-01-14 17:59:11 7432

原创 个人收藏记录

一 编程语言相关1 编译和链接的过程https://blog.csdn.net/guaiguaihenguai/article/details/81160310二 环境配置相关

2020-01-09 11:19:51 766

原创 直播基本流程

直播基本流程这里不涉及到业务相关音视频采集通过摄像头和麦克风获得实时的音频原数据,例如PCM数据。视频原数据,例如yuv420p,rgb数据。注意:有关音频特效(变声)和视频特效(大眼瘦脸)就是对音视频原数据的处理编码音频编码:将音频采样数据(PCM等)压缩成音频码流,从而降低音频的数据量视频编码:视频编码的主要作用是将视频像素数据(RGB,YUV等)压缩成视频码流,从而降低视频的...

2020-01-03 17:16:25 14731 1

原创 Qt项目实战之《Qt样式表用法》

开发Qt的应用程序,不可避免会涉及到UI。这里就会考虑是用Qt Widgets还是QML/Qt Quick来开发UI相关。关于Qt Widgets、QML、Qt Quick 的区别可以参考Qt Widgets、QML、Qt Quick 的区别 https://blog.csdn.net/liang19890820/article/details/54141552Qt Widgets 与 QM...

2020-01-03 10:20:00 9014 1

转载 音视频技术之《WebRTC实时音视频技术的整体架构介绍》

WebRTC 简介WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音通话或视频聊天的技术,是谷歌2010年以6820万美元收购Global IP Solutions公司...

2019-12-31 14:28:05 10569

转载 音视频技术之《WebRTC实时音视频技术基础:基本架构和协议栈》

概述本文主要介绍WebRTC的架构和协议栈。最基本的三角形WebRTC架构为了便于理解,我们来看一个最基本的三角形WebRTC架构(见下图): 在这个架构中,移动电话用“浏览器M”表示,笔记本电脑用“浏览器L”表示,通过Web服务器将它们...

2019-12-31 14:08:03 10354

原创 音视频技术总结

音视频相关文章链接(持续更新)1 音视频技术之直播概念和流程框架2 音视频技术之直播架构3 音视频技术之移动直播秒开优化经验4 音视频技术之回声消除...

2019-12-27 09:37:27 440

转载 音视频技术之《移动直播秒开优化经验》

现今移动直播技术上的挑战要远远难于传统设备或电脑直播,其完整的处理环节包括但不限于:音视频采集、美颜/滤镜/特效处理、编码、封包、推流、转码、分发、解码/渲染/播放等。直播常见的问题包括主播在不稳定的网络环境下如何稳定推流?偏远地区的观众如何高清流畅观看直播?直播卡顿时如何智能切换线路?如何精确度量直播质量指标并实时调整?移动设备上不同的芯片平台如何高性能编码和渲染视频?美颜等滤镜特...

2019-12-24 17:09:36 11360

转载 音视频技术之《直播概念和流程框架》

一、了解直播热门直播产品映客,斗鱼,熊猫,虎牙,花椒等等1.一个完整直播app功能(来自落影loyinglin分享)1、聊天私聊、聊天室、点亮、推送、黑名单等;2、礼物普通礼物、豪华礼物、红包、排行榜、第三方充值、内购、礼物动态更新、提现等;3、直播列表关注、热门、最新、分类直播用户列表等;4、自己直播录制、推流、解码、播放、美颜、心跳、后台切换、主播对管理员操作、管...

2019-12-24 16:50:30 11289

转载 音视频技术之《直播架构》

直播相关知识之一 基本架构一. 引子-直播基本架构下面是服务器的整体架构图:上面上整体流程 相信一个开发者应该可以看的懂并理解吧! 主要分为四部分东西吧: 推流端SDK 负责 采集视频音频进行编码传输到服务端(某云), 服务端SDK负责 直播流的创建,分发到各个cdn节点,加快流的解析,以及各种流的管理统计等等 拉流端SDK负责 拉取流 进行...

2019-12-24 16:35:08 11049

转载 音视频技术之《回声消除》

本文讲的回声(Echo)是指语音通信时产生的回声,即打电话时自己讲的话又从对方传回来被自己听到。回声在固话和手机上都有,小时还可以忍受,大时严重影响沟通交流,它是影响语音质量的重要因素之一。可能有的朋友要问了,为什么我打电话时没有听见自己的回声,那是因为市面上的成熟产品回声都被消除掉了。回声分为线路回声(line echo)和声学回声(acoustic echo),线路回声主要存在于固话中,是由于...

2019-12-24 16:25:24 10841

原创 C++ 日志收集

在程序开发时,我们为了排查异常或者收集信息。会经常用到日志、dump文件或者埋点。这里介绍一个C++写日志相关的方法这里是日志内容相关代码#ifndef __TMPLOG_H__#define __TMPLOG_H__#define WIN32_LEAN_AND_MEAN#include <Windows.h>#include <string>// ...

2019-12-23 17:26:26 11012

原创 Qt 软件开发框架(详细版)

Qt客户端项目基本架构11111

2019-12-23 16:04:13 25005 2

原创 软件开发:项目设计思路(流程、功能方法和数据结构)

软件设计有三个要素:流程、功能方法和数据结构一 设计流程要点功能方法考虑性能,流程方法考虑设计模式。1. 愿景你需要做个什么东西,要做到什么水平。2. 边界你需要干什么,什么你不用干,什么你不能干。3. 需求客户给的需求,老板给的需求是功能需求;自己给的需求,代码给的需求是非功能需求。功能需求简单,一眼望穿。难点在于非功能需求。4. 明确明确非功能需求(实际上是扯淡)。你只能凭...

2019-12-23 13:43:47 22036

QmlGrowing.zip

个人学习资源

2021-05-17

史上最全中文版网络通讯协议关系图(52im.net)-2.2MB.png

史上最全中文版网络通讯协议关系图2020版,互联网的实现,分成好几层。每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持。用户接触到的,只是最上面的一层,根本没有感觉到下面的层。要理解互联网,必须从最下层开始,自下而上理解每一层的功能。

2020-04-18

空空如也

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

TA关注的人

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