自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jarvis的博客

天若有情天亦老,月若无恨月常圆

  • 博客(109)
  • 资源 (3)
  • 收藏
  • 关注

原创 webRTC 中SDP

1 整个SDP中,只能有一个会话描述,而媒体描述可以有多个.通常SDP包含个媒体描述:一个音频媒体描述,一个视频媒体描述。除会话描述是对整个SDP起约束作用以外,各媒体描述之间的约束互不影响。1 v=02 o=- 3409821183230872764 2 IN IP4 127.0.0.1 3...4 m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 ... 5...6 a=rtpmap :111 opus /48000/27 a=rtpmap

2022-01-18 10:49:38 3521

原创 RTCP协议详解(SR、RR、SDES、BYE、APP、NACK、TCC、PLI、SLI、FIR )

RTCP协议规范中定义了五种类型的RTCP包:接收⽅报告(RR)、发送⽅报告(SR)、源 描述(SDES)、成员管理(BYE)和应⽤程序定义(APP)。SR: payload type=201RR:payload type=202SEDS:payload type=203BYE:payload type=204APP:payload type=205RTPFB:payload type=206PSFB:payload type=207版本号(V):对...

2021-11-30 01:36:06 11968 1

原创 笔记:新一代高效视频编码H.265/HEVC原理、标准与实现

第一章绪论3个色彩基本分量,或亮度和色度分量。每秒播放的帧的数目叫做帧率,单位fps。为了使人眼能够有平滑连续的感受,视频的帧率需要达到25~30 fps以上。H.265/HEVC几乎在每个模块都引入了新编码技术1.帧内预测2.帧间预测3变换量化4去方块滤波5样点自适应补偿(sample adaptive offset,SAO)滤波处于去方块滤波之后,通过解析去方块滤波后的像素的统计特性,为像素添加相应的偏移值,可以在一定程度上削弱振铃效应。6熵编码特...

2021-07-03 00:37:12 3328

原创 笔记:新一代视频压缩编码标准-h.264/AVC

第一章绪论: 信源模型: 1.基于波形的编码。基于波形的编码采用了把预测编码和变化编码组合起来的基于块的混合编码方法。 2.基于内容的编码。mpeg4采用的编码方法即是基于块的混合编码,又有基于内容的编码方法。第二章:数字视频 取样定理:当输入的模拟信号上线频率为fe,只要取药脉冲us(t)的重复频率fs不低于fc的 2倍,总够可以无失真地由取样后的离散信号恢复出原来的模拟信号。PCM:脉冲编码调制--PCM编码。我国采用...

2021-06-27 02:43:46 1654

原创 计算时间线段交集

【代码】计算时间线段交集。

2024-03-06 00:16:34 371

原创 200. 岛屿数量

岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。(水)组成的的二维网格,请你计算网格中岛屿的数量。此外,你可以假设该网格的四条边均被水包围。

2024-02-19 21:38:08 342 1

原创 213. 打家劫舍 II

你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都。,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,你可以先偷窃 1 号房屋(金额 = 1),然后偷窃 3 号房屋(金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4。给定一个代表每个房屋存放金额的非负整数数组,计算你。,今晚能够偷窃到的最高金额。

2024-01-08 03:59:03 661

原创 24. 两两交换链表中的节点

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

2024-01-05 14:52:13 416

原创 19. 删除链表的倒数第 N 个结点

给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。

2024-01-05 14:22:10 363

原创 128. 最长连续序列

找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为。给定一个未排序的整数数组。

2024-01-04 11:29:04 417

原创 118. 杨辉三角

在「杨辉三角」中,每个数是它左上方和右上方的数的和。生成「杨辉三角」的前 numRows。给定一个非负整数 numRows。

2023-12-27 19:51:48 400

原创 50. Pow(x, n)

【代码】50. Pow(x, n)

2023-12-27 17:59:28 382

原创 面试题 04.02. 最小高度树

给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。给定有序数组: [-10,-3,0,5,9],

2023-12-27 15:53:17 309

原创 LCR 145. 判断对称二叉树

请设计一个函数判断一棵二叉树是否。从图中可看出最后一层的节点不对称。从图中可看出树是轴对称的。

2023-12-27 15:18:14 344

原创 面试题 17.12. BiNode

不产生新的树节点,直接改动树的左右叶子节点,效率更高的会考虑使用新的树节点,在遍历的直接连接叶子节点,效率会更高。为下一个链表节点)。实现一个方法,把二叉搜索树转换为单向链表,要求依然符合二叉搜索树的性质,返回转换后的单向链表的头节点。可用来表示单向链表(其中。本题相对原题稍作改动。

2023-12-26 21:18:35 345

原创 面试题 17.16. 按摩师

一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。选择 1 号预约、 3 号预约、 5 号预约和 8 号预约,总时长 = 2 + 4 + 3 + 3 = 12。选择 1 号预约、 3 号预约和 5 号预约,总时长 = 2 + 9 + 1 = 12。选择 1 号预约和 3 号预约,总时长 = 1 + 3 = 4。本题相对原题稍作改动。

2023-12-26 19:53:22 328

原创 674. 最长连续递增序列

尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为 5 和 7 在原数组里被 4 隔开。最长连续递增序列是 [1,3,5], 长度为3。最长连续递增序列是 [2], 长度为1。给定一个未经排序的整数数组,找到最长且。,并返回该序列的长度。)确定,如果对于每个。就是连续递增子序列。

2023-12-26 17:59:09 443

原创 264. 丑数 II

1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。1 通常被视为丑数。

2023-12-26 17:21:46 435

原创 263. 丑数

1 没有质因数,因此它的全部质因数是 {2, 3, 5} 的空集。习惯上将其视作第一个丑数。14 不是丑数,因为它包含了另外一个质因数。

2023-12-26 16:16:26 347

原创 746. 使用最小花费爬楼梯

一旦你支付此费用,即可选择向上爬一个或者两个台阶。- 支付 1 ,向上爬两个台阶,到达下标为 2 的台阶。- 支付 1 ,向上爬两个台阶,到达下标为 4 的台阶。- 支付 1 ,向上爬两个台阶,到达下标为 6 的台阶。- 支付 1 ,向上爬一个台阶,到达下标为 7 的台阶。- 支付 1 ,向上爬两个台阶,到达下标为 9 的台阶。- 支付 15 ,向上爬两个台阶,到达楼梯顶部。- 支付 1 ,向上爬一个台阶,到达楼梯顶部。你将从下标为 1 的台阶开始。你将从下标为 0 的台阶开始。

2023-12-21 23:26:50 516

原创 2. 两数相加

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。的链表,表示两个非负的整数。它们每位数字都是按照。请你将两个数相加,并以相同形式返回一个表示和的链表。的方式存储的,并且每个节点只能存储。

2023-12-21 16:36:38 337

原创 543. 二叉树的直径

3 ,取路径 [4,2,1,3] 或 [5,2,1,3] 的长度。这条路径可能经过也可能不经过根节点。是指树中任意两个节点之间最长路径的。给你一棵二叉树的根节点,返回该树的。由它们之间边数表示。

2023-12-19 19:47:50 317

原创 N叉树后序遍历

n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值。给定一个 n 叉树的根节点。分隔(请参见示例)。

2023-12-19 16:16:41 331

原创 剑指 Offer II 025. 链表中的两数相加

给定两个 非空链表 l1和 l2 来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。可以假设除了数字 0 之外,这两个数字都不会以零开头。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {}.

2022-04-15 00:31:20 149

原创 WebRTC 通话原理

WebRTC通话原理STUN和TURNSTUN做了什么?告诉我你的公网IP地址+端口是什么。但是STUN并不是每次都能成功的为需要的NAT通话设备分配IP地址的。P2P使用本地带宽。多人视频通话的过程中,通话质量的好坏旺旺需要根据使用者本地的带宽确定。STUN干不了的,TURN干。STUN分配公网失败后,可以通过TURN服务器请求公网IP地址作为中级地址。这种方式的带宽由服务器端承担。WebRTC中经常用到2个协议,STUN和TURN服务器我们使用coturn开源项目来搭建。ICE(

2022-03-14 00:53:47 419

原创 WebRTC中的TURN

Turn协议工作原理Turn协议的工作原理主要有三个阶段,也称三大机制。分配(Allocation),转发(Relay)和信道(Channel)。分配Allocate请求: 客户端通过发送Allocate请求给STUN服务器,从而让STUN服务器为A用户开启一个relay端口。a) 客户端A向STUN Port发送Allocate请求(图中绿色部分)** b) **STUN服务器接收到客户端A的Allocate请求,服务器一看是Allocate请求,则根据relay端口分.

2022-03-14 00:50:19 1235

原创 WebRTC 数据安全

当 A 与 B 建立连接时,A 要带着它的用户名和密码过来,此时 B 端就可以通过验证 A 带来的用户名和密码与 SDP 中的用户名和密码是否一致的,来判断 A 是否是一个合法用户了。fingerprint也是验证合法性的关键一步,它是存放公钥证书的指纹(或叫信息摘要),在通过 ice-ufrag 和 ice-pwd 验证用户的合法性之余,还要对它发送的证书做验证,看看证书在传输的过程中是否被窜改了。从这张图中你可以看到, A 与 B 在传输数据之前,需要经历如下几个步骤。首先通

2022-03-12 15:29:17 5825

原创 WebRTC 源码分析

1.WebRTC的数据流如果视频数据帧率过多,则要将多余的帧丢掉。出来后的视频帧除了交给编码器编码外,还需要发送给本地渲染模块一份以进行本地预览。对音频来说,最主要的是进行3A处理。AEC(回波抵消)ANS(背景噪声抑制)AGC(自动增益控制)音频默认编码器是opus.视频默认VP8, 支持VP8,VP9,H264//以伪代码的方式进行逻辑梳理。socketpacket=recvfromNt();if(socketpacket==RTP){ if(socket..

2022-02-11 01:02:53 1852

原创 leetcode 48 旋转矩阵

给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。class Solution {public: void rotate(vector<vector<int>>& matrix) { auto temp_matrix= matrix; int n=matrix.size();

2022-01-13 15:40:46 135

原创 H264、H265 NALU结构、组帧

H264H264数据结构:在H264结构中,一个视频图像编码后的数据为一帧,一帧由一个片(slice)或多个片组成,一个片由一个或多个宏组成,一个宏块由16*16的YUV数据组成。宏块作为H264编码的基本单元。1.VCL video coding layer 视频编码层。2.NAL network abstraction lay 网络抽象层。VCL是对狠心算法引擎,块,宏块及片的语法级别的定义,它最终输出编码完的数据。NAL层定义片以上的语法级别(序列参数集和图像参数集,针对网络传

2022-01-12 01:18:02 2684

原创 STUN协议详解

1.概述STUN(session traversal utilities for NAT),一种处理NAT传输的协议,主要作为工具来服务其他协议。它允许位于NAT(或多重NAT后的客户端找出自己的公网地址,查出自己位于那种类型的NAT之后以及NAT为某一个本地端口所绑定的internet端口),这些信息被用来两个同时处于NAT路由器之后的主机之间建立UDP通信。目的就是找到外界连接内部地址所需的信息。2.STUN协议架构1.请求/响应(request/response)类型,由客户端给服务器

2022-01-06 01:38:16 6404

原创 RTP报头扩展

RTP HeaderRTP协议中,RTP Header(报头)包括固定报头(Fixed Header)与报头扩展(Header extension,可选)。RTP Fixed Header结构如下,其中前12字节是每个RTP包必须包含的。但是这Fixed Header携带的信息满足不了更复杂的需求。所以引入了RTP Header Extension,可以携带更多的信息。RTP Header Extension如果RTP Fixed Header中,X字段为1,说明后面跟着RTP Hea.

2022-01-04 00:41:33 1698

原创 FEC 前向纠错

FEC 提供概率修复,只有当丢包是非连续的数据包造成时,它才有可能纠正5%的包。不同接受方的丢包率肺部均匀,不可能用单一的FEC流满足所有的丢包率。奇偶校验FEC包格式版本号、有效负载类型、序列号和时间戳以通常的方式分配。根据使用的RTP配置文件 动态分配有效负载类型;每发送一个FEC包,序列号增加1;时间戳设置为在传送FEC包时RTP媒体时钟的值。(时间戳不太可能等于前后RTP包的时间戳。)因此,FEC包中的时间戳是单调增加的,与FEC方案无关。SSRC值与原始数据包的SSRC值相同.

2021-12-21 01:16:17 1536

原创 RTP包头扩展

RTP HeaderRTP协议中,RTP Header(报头)包括固定报头(Fixed Header)与报头扩展(Header extension,可选)。RTP Fixed Header结构如下,其中前12字节是每个RTP包必须包含的。RTP Header Extension如果RTP Fixed Header中,X字段为1,说明后面跟着RTP Header Extension。RTP Header Extension结构如下: defined by profile:决定使

2021-12-20 00:07:50 1049

原创 leetcode 141 环形链表

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: bool hasCycle(ListNode *head) { set<ListNode*> m; .

2021-06-16 00:57:02 127

原创 面试题 08.01. 三步问题

int waysToStep(int n) { if (n == 0) return 0; if (n == 1) return 1; if (n == 2) return 2; if (n == 3) return 4; vector<int> dp(n + 1, 0); dp[0] = 0;...

2021-05-23 03:15:22 85

原创 面试题 17.16.按摩师

//一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。//在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,//替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。 int massage(vector<int>& nums) { if (nums.size() == 0) return 0; if (nums.size() == 1) ...

2021-05-23 02:46:42 146

原创 webrtc目录结构

webrtc windows 目录结构,不过都差不多。根目录:modules 子目录:

2021-05-06 22:27:32 145

原创 socketpair 使用

#include <unistd.h>#include <iostream>#include <sys/socket.h>#include <string.h>using namespace std;int main(int argc, char** argv){ int sv[2]; if(socketpair(AF_UNIX,SOCK_STREAM,0,sv)<0) { perror("sock.

2021-03-24 21:24:30 128

原创 浮点数 向上取整

题目描述写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。输入描述:5.5输入一个正浮点数值输出描述:6输出该数值的近似整数值示例1输入复制5.5输出复制6int main(){ double dd; while(cin>>dd){...

2019-12-22 18:49:33 1958

新一代视频压缩编码标准H.264.pdf

新一代视频压缩编码标准H.264 高清版 毕厚杰

2021-06-22

Kubernetes in Action中文版,七牛云

kubernetes in action 中文版,七牛云容器团队翻译。运维开发人员必备。

2019-04-24

算法导论 _全

算法导论(第三版),讲解详细,学习算法的不二法门!!!

2018-07-30

空空如也

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

TA关注的人

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