自定义博客皮肤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)
  • 资源 (1)
  • 收藏
  • 关注

原创 Windows采用windbg Crash问题定位方法

○ windbg○ 对应版本的dll,pdb文件○ 对应crash时的.dump文件。

2023-08-29 16:03:14 218

原创 Nvidia编码开发整理

下载对应版本sdk,官网最新12.1。

2023-08-25 14:54:38 450

原创 WebRtc中视频JitterBuffer的Jitterdelay估计方法

之前在做项目的时候,有过专门的移植过WebRtc中的视频JitterBuffer,当时就很好奇内部是如何实现jitter的抖动的估计的,一直想好好研究一下,最近也是下定决心想要把这一点吃透,平时闲暇花时间仔细的研究了一下,在此做一下记录,以便后面有兴趣的同学一同研究。

2023-08-25 14:48:50 254 2

原创 WEBRTC内线程的使用

如果不是当前线程中,那么会推入sendlist_中,唤醒socketserver以开启MessageQueue中任务的检查执行,随后等到线程处理完毕,在此同时需要获取到当前线程的运行具柄,继续执行当前线程的任务,保证当前线程需要处理的同步任务不卡住,当目标任务执行完毕后返回。使用线程模型主要用来解决多线程的问题,在多线程代码开发时经常会碰到多线程问题:如共同访问相同的资源导致的问题,此时需要采用锁进行处理,又比如线程功能不同,某些业务逻辑不允许阻塞,因此需要切换到合适的线程执行。...

2022-08-17 11:46:21 359 1

原创 dtls到srtp的整个流程

1、SSL_CTX_new创建上下文2、SSL_CTX_set_security_level设置加密等级3、SSL_CTX_use_certificate配置证书上下文到ssl上下文4、SSL_CTX_use_PrivateKey配置公钥给ssl5、d2i_X509转换字符串到x509证书句柄,可向ssl的证书store中添加该证书调用X509_STORE_add_cert实现,SSL_CTX_get_cert_store支持从ssl_ctx获取句柄6、SSL_CTX_set_verify设置需要

2021-12-17 14:22:48 1152 1

原创 RTMP代码示例

简单的rtmp推流代码手写推流代码,该代码可以完成服务端推流rtmp功能//// rtmp_client.cpp// myFirstDemoC++//#include "rtmp_client.hpp"using namespace std;rtmp_client::rtmp_client(char * server_url):server_url_(server_url){ rtmp_ctx_ = nullptr; cout << "rtmp clie

2021-12-17 14:13:21 608

原创 Xcode抓包ios

<1> xcode 中获取设备 UID, window -> Devices<2> 简历虚拟映射##cjqu: f4c07f856c5046196dd43f6fc782f2a52f1d46e4[cjqu:ios_arm64_r]$ rvictl -s 00008030-00150CE82206802EStarting device a8e44196a0860052ff0a752a1a0f1eb674330afd [SUCCEEDED] with interface rv

2021-12-17 14:06:25 1973

原创 CPU性能分析方式

性能分析原理应用程序CPU占用分析主要可以由cpu占用率和程序运行指令数两方面进行分析,两个指标的侧重点不同:CPU占用率:程序运行占用CPU时间与对应CPU运行总时间的比值,该数值为相对值,与每个cpu的运算效 率有关,在不同的CPU以及硬件环境下运行的差距较大程序运行指令数据:该衡量指标采用MIPS来衡量,这里有几个概念需要澄清1,主频主频 = 时钟频率,它是指CPU内部晶振的频率,常用单位为MHz,它反映了CPU的基本工作节拍。当前大部分cpu,实际主频一般会比标注的时钟频率要高,计算性能

2021-12-17 14:01:56 1430

原创 mac配置python3为默认的python

mac配置python3为默认的python1.首先打开终端2.打开配置文件,输入open ~/.zshrc3.which python3获取python3的位置在配置文件中,写入python的外部环境变量export PATH=${PATH}:/Applications/anaconda3/bin/python.app4.重命名pythonalias python="/Applications/anaconda3/bin/python3.6"4.关闭文件后,在终端调用 source ~

2021-03-27 23:07:17 408

原创 python爬取斗鱼当前英雄联盟主播排名

python爬取斗鱼当前英雄联盟主播排名代码# 目的:爬取斗鱼英雄联盟当前主播的排名# 找到对应网页# 分析排名和名称相对的位置# 模拟HTTP请求,获取HTML数据# 用正则表达式获取对应数据(姓名,人气)from urllib import request# 斗鱼爬出来的式压缩过的,需要解压缩from io import BytesIOimport gzipimport reclass Spider(): url = 'https://www.douy

2021-03-13 22:30:37 390 1

原创 python函数式编程

python函数式编程#匿名函数 ,lambda 表达式def add(x , y): return x+y#格式为变量=lambda 参数 : 表达式#表达式中不能加入赋值操作如a=x+yfunc = lambda x,y : x+yprint('普通函数'+str(add(1,2)))print('匿名函数'+str(func(1,2)))#三元表达式的格式(类比x > y ? x:y)#r = x if x>y else ydef square(x,y)

2021-03-08 10:25:01 74

原创 Python excel 信息读取

Python excel 信息读取python 采用xlrd进行读取import xlrdprint(__file__)data = xlrd.open_workbook("e:\\vscode\\pyhon\\DEMO\\data1.xls")print(data.sheet_loaded(0))# sheets()中能返回所有的表格名称for sheet in data.sheets(): print(sheet.name)aim_sheet_name = 'Shee

2021-03-07 15:23:17 178

原创 Python 正则表达式

Python 正则表达式#正则表达式的操作import restr1 = 'C0 |C1++ |J3ava|C4#|Python Pytho2n PythonPytho\n'#内置函数判断Python字符串方式print(str1.index('Python')>-1)print('Python' in str1)#正则表达式re方式搜索dst = 'Python'r=re.findall(dst,str1)if len(r) > 0: print('字符串中包

2021-03-04 15:59:15 149 1

原创 Python 类相关知识

Python 类相关知识class Student(): sum = 0 #类变量 #构造函数 前后都有__双下滑线,不会认为为私有方法 def __init__(self,name='crj',age=18): self.name = name #实例变量 self.age = age #实例变量 self.__score = 0 #私有成员名称即为_Student__score #self.__

2021-03-03 17:29:03 115 2

转载 turn协议

https://www.cnblogs.com/pannengzhi/p/5048965.html

2021-01-30 13:13:16 158

原创 mediasoup demo的安装部署

mediasoup demo的安装部署1 下载mediasoup环境:centos 8 虚拟机mediasoup-demo是存放在git上的,因此需要使用git下载,下载时可能会出现ssl问题,这里直接去掉ssl验证git config --global http.sslVerify falsegit clone https://github.com/versatica/mediasoup-demo.gitcd mediasoup-demogit checkout v32 安装依赖安装m

2021-01-25 18:27:12 1598 3

原创 我的快排算法

我的快排算法简单的描述一下思想:由部分到整体,讨论从i到j之前的数组排序:1 随机选择一个i~j中的元素,放置在第i位2 假定从小到大的顺序排列,那么先以i->j的方向比较,当比较到大于i位数时,交换此数至后半部分,并记录此时位置3 从后半部分逆序比较,当遇到比i小的值的时候交换到之前记录的前半部分的位置4 循环处理2和3的逻辑,直至前部分标记和后部分标记重合5 交换i位置和前半部分最后一个位置6 递归调用排序前部分和后部分void quick_sort_way(int* dat

2021-01-23 17:39:41 114

转载 TCP拥塞控制算法

https://blog.csdn.net/qq_41431406/article/details/97926927

2021-01-23 16:17:34 102

转载 epoll相关知识

https://blog.csdn.net/armlinuxww/article/details/92803381

2021-01-23 15:59:47 91

原创 SDP中fingerprint的作用

SDP中fingerprint的作用sdp信息中会出现如下字段a=fingerprint:sha-256 5D:60:1C:B7:B3:A7:C6:32:E8:6D:54:80:00:4B:26:0A:A1:62:CB:57:79:83:2D:69:A6:D9:B9:28:6A:77:71:C7a=setup:actpass那么fingerprint是在什么时候使用呢,翻阅mediasoup代码可以看到,在创建dtls连接的时候,会根据客户端建立的ssl获取到其证书,获取到证书之后,通过sdp中的

2021-01-15 22:39:14 1749

原创 STUN协议与ICE

STUN协议与ICE1、 什么是STUN协议https://datatracker.ietf.org/doc/rfc5389/STUN(Session Traversal Utilities for NAT,NAT会话穿越应用程序)是一种网络协议,它允许位于NAT(或多重NAT)后的客户端找出自己的公网地址,查出自己位于哪种类型的NAT之后以及NAT为某一个本地端口所绑定的Internet端端口。这些信息被用来在两个同时处于NAT路由器之后的主机之间创建UDP通信。该协议由RFC 5389定义。在W

2021-01-14 15:35:14 1273

原创 MediaSoup源码分析之rtp数据的流转

MediaSoup源码分析之rtp数据的流转1.概要mediasoup中的rtp数据流向大概为:推流客户端–》router–》producer–》consumer–》发送到观看客户端这里就涉及问题,如何在router中将producer与consumer关联在一起,使得当producer收到流的时候能够推给每个consumer2.基本流程mediasoup中包含c++部门和客户端代码,其中c++部分里在router中记录了所有的producer和对应的consumer,类结构为: class

2021-01-12 22:35:36 612

原创 FFMPEG学习日记--采集视频

FFMPEG学习日记–采集视频本文描述了在centos8上进行视频采集的方式,采用FFMEPGE,在采集前需要正确安装和配置FFMPEG,可参考:https://blog.csdn.net/qq_27031005/article/details/111815318使用命令方式采集linux界面:(需要采用x11方式开启centos)ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 v-out.mp4上面的

2021-01-10 21:32:06 804 2

原创 mediasoup中nack的调用机制

mediasoup中nack的调用机制1 NACK作用NACK是用来进行丢包重传的一种方式,简单的理解就是在丢包的时候会根据包序号进行重传,重传的规则可以是遇到丢包时触发,或者定时触发,这里通过mediasoup源码的话分析定时触发的逻辑格式为以下内容其中PT=205,FMT=1 ,Packet identifier即为丢失的RTP数据包的序列号,BitMap of lost packets指从Packet identifier标记的丢包序号开始,接下来16个RTP数据包丢失的情况。一个NACK报

2021-01-09 23:37:27 953 1

原创 RTCP中控制命令:拥塞控制transport-cc

RTCP中控制命令:拥塞控制和重传报文1、 RTCP的基本概念实时传输控制协议(Real-time ControlProtocol,RTCP)与RTP共同定义在1996年提出的RFC 1889中,是和 RTP一起工作的控制协议。RTCP单独运行在低层协议上,由低层协议提供数据与控制包的复用。在RTP会话期间,每个会话参与者周期性地向所有其他参与者发送RTCP控制信息包,如下图所示。对于RTP会话或者广播,通常使用单个多目标广播地址,属于这个会话的所有RTP和RTCP信息包都使用这个多目标广播地址...

2021-01-09 22:16:08 1782

原创 通过创建进程方式进行unix域通信

通过创建进程方式进行unix域通信main.c代码:#include "crj.h"int main(int argc, const char *argv[]){ int i = 0; CRJ_PRT("hello world main.c\n"); CRJ_PRT("argc[%d] argc[%s]\n",argc,argv[0]); if(argc!=1) { CRJ_PRT("argc[%d] error\n",a

2021-01-07 17:42:54 105

原创 FFMPEG 使用libaac进行aac转码

FFMPEG 使用libaac进行aac转码代码如下:#include <stdio.h>#include <libavutil/avutil.h>#include <libavdevice/avdevice.h>#include <libavformat/avformat.h>#include <libavcodec/avcodec.h>#define ENCODE_AAC_AUDIO 1#if ENCODE_AAC_AUDIO

2021-01-04 22:52:34 733

原创 FFMPEG重采样PCM数据

#include <stdio.h>#include <libavutil/avutil.h>#include <libavdevice/avdevice.h>#include <libavformat/avformat.h>#include <libavcodec/avcodec.h>#include <libswresample/swresample.h>#define SER_RESAMPLE 1void rec_

2020-12-29 21:39:28 734

原创 RTP包分析

RTP包分析记录一下对RTP包的理解RTP包头上图展示了RTP包的具体信息结构,字段明确如下:RTP头部一般固定会有12字节。V:版本号,2比特,用来标示使用RTP版本;P:填充位,1比特,置成1,表示此包后面会一定数目的填充比特;X:扩展位,1比特,置成1,表示此包固定头部后面会跟着一个扩展头部;CC:CSRC计数位,4比特,表示固定头部后面CSRC识别符的个数;M:标示位,1比特,具体含义由特定协议解释;PT:负载类型(Payload Type),7比特,表示具体的负载类型,比如音频

2020-12-28 19:34:08 3475 2

原创 FFMPEG学习日记--音频采集PCM

FFMPEG学习日记–音频采集PCM本文记录针对FFMPEG音频采集的方法和基本流程并保存为文件供学习环境:centos8虚拟机+ffmpeg命令行采集:ffmpeg -f alsa -ac 2 -i hw:0,0 out.wav可以看到命令采用alsa进行设备管理随后采集通道为hw:0,0代码段:#include <stdio.h>#include <libavutil/avutil.h>#include <libavdevice/avdevice.h&g

2020-12-27 16:36:31 326

原创 FFMPEG学习日记--FFMPEG安装

第一次学习FFMPEG首先少不了对软件的安装,这篇文档记录了我第一次安装FFMPEG遇到的一些问题,方便后续查阅并与大家交流

2020-12-27 16:25:10 268

source insight 配置文件

source insight 配置文件非常好用哦,强烈建议

2021-01-08

空空如也

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

TA关注的人

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