自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(361)
  • 收藏
  • 关注

原创 Linux系统cannot create temp file for here-document: No space left on device解决方案

登陆linux系统之后,使用tab自动补全快捷键的时候显示:cannot create temp file for here-document: No space left on device。原因:磁盘满了,不能创建临时文件。解决方法:(逐级查看占用空间过多的目录,删除大文件)查看占用空间过多目录:可以看到root目录占用空间较多:如此逐级查找,最后删除占用空间过多的大文件即可。...

2021-04-08 10:19:29 4269

原创 Linux环境configure编译常用外部参数选项笔记

Linux环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后在安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但万变不离其中,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了。Configure脚本配置工具就是基础之一,它是autoconf的工具的基本应用。  与一些技巧相比,Configure显得基础一些,当然使用和学习起来就显得枯燥乏味一些,当然要成为高手,对基础的熟悉不能超越哦。  为此我转载了一篇关于Configure选项配置的详细介绍。供大家参考'confi.

2021-04-07 15:06:30 812 1

转载 海外弱网下的在线视频平台优化实践​

在弱网下,视频启动时间和播放卡顿都会增加。为提升弱网用户体验,需要识别出主要问题再针对性调优。本演讲将结合四达时代在非洲建设”StarTimesOn在线视频平台“过程中积累的丰富数据,分享传输路由优化和传输协议优化相关的关键问题,以及各类针对性调优方案上线后的效果对比。大家好,我是四达时代的研发总监张亮,本次分享的内容是基于四达时代在非洲做在线视频服务时所遇到的一些问题和一些优化的经验。大家都知道,非洲的网络环境非常复杂,甚至可以说几乎没有比非洲更差的网络环境了,因此我们这里介绍的是一个比较极端的情.

2021-03-30 10:41:58 679

转载 CDN关键技术研究与应用—内容路由技术

内容路由技术作为CDN中关键技术之一对业务的支撑效果起着举足轻重的作用。在LiveVideoStackCon2019上海 大会中,爱奇艺高级技术经理白帆从技术背景,架构优化,特殊场景应用等多方面详细介绍了CDN内容路由技术的实现并为用户提供高效的服务能力。大家好,我是来自爱奇艺的白帆,视频业务是目前爱奇艺的主营业务,CDN是支撑视频分发的关键系统,视频流技术的发展和高清视频流的应用对视频分发提出了更高的要求。本次分享的主要内容是如何通过内容路由技术的优化来提升CDN系统服务用户的能力。本次分享主.

2021-03-26 15:41:35 450

转载 如何使用开源SFU构建RTC云服务

编者按:本文由百度智能云RTC产品技术负责人 李永兴LiveVideoStack线上分享的内容整理而成,从系统架构角度,分析了常见的开源SFU在分布式部署以及高可用、高并发方面的不足,并提出相应的解决方案。大家好,我是来自百度智能云的李永兴,在百度智能云媒体云团队主要负责RTC产品的研发工作。01开源SFU的现状与不足在研发RTC产品的过程中,我们调研了许多优秀的开源WebRTC服务器,例如:Janus、MediaSoup、Licode、SRS4等,这些SFU都有不同的设计理念和特点.

2021-03-25 11:16:52 802

原创 webrtc总体架构概述

Web Real-Time Communication(Web实时通信,WebRTC)由一组标准、协议和JavaScript API组成,用于实现浏览器之间(端到端)的音频、视频及数据共享。WebRTC使得实时通信变成一种标准功能,任何Web应用都无需借助第三方插件和专有软件,而是通过简单地JavaScript API即可完成。在WebRTC中,有三个主要的知识点,理解了这三个知识点,也就理解了WebRTC的底层实现原理。这三个知识点分别是:MediaStream:获取音频和视频流 RTCPe

2021-03-19 14:42:28 325

原创 对udp进行connect的特性总结和实践

特新概述:1:UDP中可以使用connect系统调用2:UDP中connect操作与TCP中connect操作有着本质区别。TCP中调用connect会引起三次握手,client与server建立连结.UDP中调用connect内核仅仅把peer端ip:port记录下来.(实现udp和对端socket的绑定,这一点特性是很重要的)3:UDP中可以多次调用connect,TCP只能调用一次connect. UDP多次调用connect有两种用途:1,指定一个新的ip:port连

2020-12-22 17:38:35 756

原创 leetcode刷题.1030. 距离顺序排列矩阵单元格.每日打卡

代码:class Solution1030_easy {public: struct Point { Point(int x, int y) : x_(x), y_(y) { } int x_; int y_; }; vector<vector<int>> allCellsDistOrder(int R, int C, int r0, int c0) { vector<vector<int>> dirs{ {1, 0},..

2020-11-17 19:07:14 168

原创 leetcode刷题.402. 移掉K位数字.每日打卡

代码:(应该可以写的更加优雅一些)class Solution {public: string minNumberString(string num, int lefts) { /* 如果预留0长度,则返回空 */ if(0 == lefts) return ""; /* 剩下的字符串长度和预留字符相等,则不能再剔除字符串,直接返回整个字符串 */ if(num.length() ..

2020-11-15 14:46:31 133

原创 leetcode刷题.328. 奇偶链表.每日打卡

代码:class Solution328_medium {public: ListNode* oddEvenList(ListNode* head) { if (nullptr == head || nullptr == head->next) return head; ListNode* odd_head = head, * odd = head; ListNode* even_head = head->next, * even = head->nex..

2020-11-14 13:34:49 129

原创 linux下合并多个lib.a到一个*.a静态库文件

libA.a ——> libB.a ——> libC.a | | ——A.o ——> libD.a1. ar x libC.a ====> C.o2. ar x libD.a ====> D.o3. ar x libB.a ====> B1.o B2.o4. ar rcv libA A.o B1.o B2.o C.o D.o

2020-11-13 17:08:07 501

原创 服务器端单独关闭listenfd之后其他已经连接的socket还能继续正常工作吗?

答:可以正常通信。测试代码:client:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<errno.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<unis

2020-11-12 20:42:04 433

原创 leetcode刷题.31. 下一个排列.每日打卡

代码:class Solution41_meduim {public: void nextPermutation(vector<int>& nums) { if (nums.empty()) return; int subMax = nums[nums.size() - 1]; for (int i = nums...

2020-11-10 19:33:37 131

原创 leetcode刷题.973. 最接近原点的 K 个点.每日打卡

采用优先队列(即大顶堆)的方法:代码:class Solution973_medium {public: vector<vector<int>> kClosest(vector<vector<int>>& points, int K) { int index = 0; vector<vector<int>> out..

2020-11-09 19:39:41 135

原创 leetcode刷题.127. 单词接龙.每日打卡

bfs的经典题目:代码:class Solution {public: int ladderLength(string beginWord, string endWord, vector<string>& wordList) { int minLength = INT_MAX; // 构造图的邻接举证表示 unordered_map<string, vec..

2020-11-07 15:40:03 207

原创 leetcode刷题.1356. 根据数字二进制下 1 的数目排序.每日打卡

思路很简单:代码:class Solution1356_easy {public: vector<int> sortByBits(vector<int>& arr) { vector<int> hanmminNums(arr.size()); for (int i = 0; i < arr.size(); i++) ..

2020-11-07 13:49:24 161

原创 leetcode刷题.47. 全排列二.每日打卡

方法:回溯 + 剪枝代码:(还可以有优化空间)class Solution47 {public: vector<vector<int>> permuteUnique(vector<int>& nums) { /* 做一个排序 */ sort(nums.begin(), nums.end()); return recursion(nums);

2020-11-04 20:33:01 149

原创 leetcode刷题.57. 插入区间.每日打卡

思路非常简单,代码:class Solution {public: vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) { int left = newInterval[0]; int right = newInterval[1]; vector<vector<int>&..

2020-11-04 19:20:36 783 1

原创 leetcode刷题.140. 单词拆分 II.每日打卡

回溯法 + 记忆化代码:class Solution140_hard {public: vector<string> wordBreak(string s, vector<string>& wordDict) { if (s.empty()) return {}; unordered_set<string> word...

2020-11-01 02:50:57 153

原创 leetcode刷题.381. O(1) 时间插入、删除和获取随机元素 - 允许重复。每日打卡

代码:class RandomizedCollection381_hard {public: /** Initialize your data structure here. */ RandomizedCollection381_hard() { } /** Inserts a value to the collection. Returns true if the collection did not already cont..

2020-10-31 17:58:14 166

原创 leetcode刷题.530. 二叉搜索树的最小绝对差.每日打卡

class Solution {public: int threeMin(int a, int b, int c) { return (a > b) ? ((b > c) ? c : b) : ((a > c) ? c : a); } int maxTreeNode(TreeNode *root) { while(nullptr != root->right) root = root->...

2020-10-30 22:11:40 189

原创 linux系统下grep命令搜索常用技巧

1.使用grep指令在当前目录下所有文件中搜索指定字段grep -r "待查找内容" ./// -r标识递归子目录查询

2020-10-30 17:39:02 339

原创 leetcode刷题.129. 求根到叶子节点数字之和.每日打卡

这里采用的是先序遍历 ,代码:class Solution {public: int sumNumbers(TreeNode* root) { if(nullptr == root) return 0; int sum = 0; stack<int> cur_val; stack<TreeNode *> mystack; cur_val.push(roo..

2020-10-29 19:11:45 167

原创 简单的ssh远程批命令执行脚本

#!/bin/bashif [ $# -lt 1 ];then echo "The example usage introduction." echo "eg : ssh_r_command.sh ./qery.sh mb ./all-tutk-sids 'ps -ef | grep IOTC_Server'" exitfifilename=$2region=$1commandline=$3echo "The all-tutk-sids is: "$filenameecho...

2020-10-29 15:03:20 444

原创 工作项目草书笔记(一)

2020-10-28 16:43:49 295

原创 leetcode刷题.143. 重排链表.每日打卡

代码:class Solution {public: /* 链表反转 */ ListNode* reverse(ListNode* head) { if (nullptr == head) return head; ListNode* p1 = nullptr, * p2 = head; ListNode* p3 = p2->next; while (nullptr != p3) { p2->next = p1; p1 = p2;..

2020-10-25 21:18:18 147

原创 leetcode刷题.845. 数组中的最长山脉.

代码:class Solution {public: int longestMountain(vector<int>& A) { int max_length = 0, index = 0; while(index + 1 < A.size()) { while(index + 1 < A.size() && A[index] >= A[index + 1]) ...

2020-10-25 01:25:39 137

原创 leetcode刷题.763. 划分字母区间.每日打卡

解法:贪心 + 双指针代码:class Solution {public: vector<int> partitionLabels(string S) { vector<int> out_; int last_[26] = { 0 }; for(int i = 0; i < S.length(); i++) last_[S[i] - 'a'] = i; int s..

2020-10-22 19:18:15 166

原创 WebRTC源码中信号槽机制sigslot的简单使用测试

sigslot.h// sigslot.h: Signal/Slot classes//// Written by Sarah Thompson ([email protected]) 2002.//// License: Public domain. You are free to use this code however you like, with// the proviso that the author takes on no responsibility or liabilit

2020-10-21 19:52:32 560

原创 WebRTC Native源码分析——P2P连接过程详解

一年前我初步分析了 WebRTC 的 P2P 连接过程,并总结为了安卓 P2P 连接过程和 DataChannel 使用一文,那会儿我刚接触 WebRTC C++ 的代码,看起来着实头大,而且安卓的代码要调试、测试也很麻烦,所以很多细节就没有展开,今天就让我们在 iOS 的工程里,对 P2P 连接的过程进行一个彻底的剖析。概览首先我们从宏观上了解一下 P2P 连接的过程,以及一些关键类之间的关系,这样在看代码时就不至于迷失在细节里。此外,没看过安卓 P2P 连接过程和 DataChannel 使用的

2020-10-21 17:40:55 1660 1

原创 leetcode刷题:85. 最大矩形 . 每日打卡

给定一个仅包含0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。示例:输入:[ ["1","0","1","0","0"], ["1","0","1","1","1"], ["1","1","1","1","1"], ["1","0","0","1","0"]]输出: 6代码:// 动态规划的思想int MaximumRectangle(const vector<vector<char>> &matr...

2020-10-20 20:40:10 143

转载 Linux进程网络流量统计方法及实现

1 前言在某些应用安全场景需要结合进程级网络连接、流入流出流量等数据直接分析出进程的异常。例如,在内网主机上是否存在持续恶意外传敏感数据的现象、在网络监控时发现服务器大量带宽被占用但不清楚由系统具体哪个进程占用。为此都需要获取更细粒度的进程级网络流量数据直接锁定异常服务。在Linux系统中都有相应开源工具采集网络连接、进程、流量等信息,像netstat命令查看主机网络连接信息,一般包括最基本的五元组信息(源地址、目标地址、源端口、目标端口、协议号);ps命令采集进程信息,包括pid, user, e

2020-10-20 12:28:11 1294

原创 Linux环境 网络流量统计/proc/net/dev和/proc/net/snmp

UDP:命令:cat /proc/net/snmp | grep UdpInDatagrams:udp收包量NoPorts: packets to unknown port received(未知端口接收数据包)InErrors:RFC4113描述:本机端口未监听之外的其他原因引起的UDP入包无法送达(应用层)目前主要包含如下几类原因:1.收包缓冲区满2.入包校验失败3.其他OutDatagrams:udp发包量RcvbufErrors:接收缓冲区溢出的包量S...

2020-10-20 10:15:12 4972

原创 WebRTC - ICE 过程简述

1. ICE介绍1.1.ICE的角色分为 controlling和controlled。Offer 一方为controlling角色,answer一方为controlled角色。1.2.ICE的模式分为FULL ICE和Lite ICE:FULL ICE:是双方都要进行连通性检查,完成的走一遍流程。Lite ICE: 在FULL ICE和Lite ICE互通时,只需要FULL ICE一方进行连通性检查, Lite一方只需回应response消息。这种模式对于部署在公网的设备比较.

2020-10-18 16:26:15 1107

原创 Advanced Message Queuing Protocol (AMQP)

原文连接:https://whatis.techtarget.com/definition/Advanced-Message-Queuing-Protocol-AMQP高级消息队列协议(AMQP)是一种用于有线异步消息传递的开源标准。AMQP支持组织和应用程序之间的加密和互操作消息传递。该协议用于客户端/服务器消息传递和物联网设备管理。...

2020-10-18 16:15:27 337

原创 Qos涉及面基本理解

1. Qos基本概念QoS(Quality of Service)是服务质量的简称。对于网络业务来说,服务质量包括哪些方面呢?从传统意义上来讲,无非就是传输的带宽、传送的时延、数据的丢包率、网络的抖动等,而提高服务质量无非也就是保证传输的带宽,降低传送的时延,降低数据的丢包率以及时延抖动等。广义上讲,服务质量涉及网络应用的方方面面,只要是对网络应用有利的措施,其实都是在提高服务质量。因此,从这个意义上来说,防火墙、策略路由、快速转发等也都是提高网络业务服务质量的措施之一。服务质量相对网络业务而言,在

2020-10-18 10:55:07 874

原创 RTP Media Congestion Avoidance Techniques(RMCAT)

https://doc-kurento.readthedocs.io/en/6.13.0/knowledge/congestion_rmcat.html或https://github.com/Kurento/doc-kurento-readthedocs/blob/6.13.0/source/knowledge/congestion_rmcat.rstRMCAT是由IETF工作组为了管理RTP streaming上下文的网络拥塞而发展的新协议。对于任何拥塞控制算法的目标是:阻止网络由于拥塞而崩.

2020-10-17 17:57:42 366

原创 Byte Dance面试题:等概率生成

已知随机数生成函数f(),返回0的概率是60%,返回1的概率是40%。根据f()求随机数函数g(),使返回0和1的概率是50%,不能用已有的随机生成库函数。简单思路就是:两次调用f(),则有四种情况:(1, 0)= 0.24、(0, 1)= 0.24、(0, 0)= 0.36、(1, 1)= 0.16,也就是说确定两次调用和即:f() + f() == 1的情况下只可能是(1, 0)或者(0, 1)这两种情况,且概率均等。伪代码:int g() { int a = 0, b .

2020-10-17 12:41:47 599

原创 音视频开发技术的进阶路线

1. 音视频开发包括哪些内容虽然一篇文章无法把音视频开发的知识点都介绍清楚,但是大概的学习路线还是可以梳理一下的,我们先看看下面这张图: 其实说白了,音视频开发,就是要掌握图像、音频、视频的基础知识,并且学会如何对它们进行采集、渲染、处理、传输等一系列的开发和应用。采集:它解决的是,数据从哪里来的问题 渲染:它解决的是,数据怎么展现的问题 处理:它解决的是,数据怎么加工的问题 传输:它解决的是,数据怎么共享的问题每一个门类,都可以深挖,衍生...

2020-10-02 21:44:01 1261 1

原创 视频编码之I帧 、P帧、B帧-学习篇

另一篇文章:http://www.jianshu.com/p/04b5b1e4ff27视频传输原理视频是利用人眼视觉暂留的原理,通过播放一系列的图片,使人眼产生运动的感觉。单纯传输视频画面,视频量非常大,对现有的网络和存储来说是不可接受的。为了能够使视频便于传输和存储,人们发现视频有大量重复的信息,如果将重复信息在发送端去掉,在接收端恢复出来,这样就大大减少了视频数据的文件,因此有了H.264视频压缩标准。视频里边的原始图像数据会采用 H.264编码格式进行压缩,音频采样数据会采用 AAC 编码

2020-09-26 22:15:29 2855

空空如也

空空如也

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

TA关注的人

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