自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(925)
  • 资源 (3)
  • 论坛 (1)
  • 收藏
  • 关注

转载 WEBRTC三种类型(Mesh、MCU 和 SFU)的多方通信架构

WebRTC 本身提供的是 1 对 1 的通信模型,在 STUN/TURN 的辅助下,如果能实现 NAT 穿越,那么两个浏览器是可以直接进行媒体数据交换的;如果不能实现 NAT 穿越,那么只能通过 TURN 服务器进行数据转发的方式实现通信。目前来看,Google 开源的用于学习和研究的项目基本都是基于 STUN/TURN 的 1 对 1 通信。如果你想要通过 WebRTC 实现多对多通信,该如何做呢?其实,基于 WebRTC 的多对多实时通信的开源项目也有很多,综合来看,多方通信架构无外乎以.

2021-01-26 23:43:08 2

转载 什么是TLS DTLS和SRTP

TLS传输层安全性协议(英语:Transport Layer Security,缩写作TLS),及其前身安全套接层(Secure Sockets Layer,缩写作SSL)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。网景公司(Netscape)在1994年推出首版网页浏览器,网景导航者时,推出HTTPS协议,以SSL进行加密,这是SSL的起源。IETF将SSL进行标准化,1999年公布第一版TLS标准文件。随后又公布RFC 5246 (2008年8月)与RFC 6176(2011年3月)

2021-01-26 23:08:22 6

转载 WebRTC的RTCPeerConnection()原理探析

WebRTC的RTCPeerConnection()原理探析从getUserMedia()到RTCPeerConnection(),自认为难度陡增。我想一方面是之前在Linux平台上学习ROS调用摄像头时,对底层的外设接口调用、摄像头参数都有学习理解;另一方面是,我们在大三下学期才开始计算机网络的课程学习,对网络通信的理解尚处于未能达到闭环的自闭状态(自闭——"全程自学完成知识闭环") 面对ICE、SDP、NAT gateways、STUN、TURN等词汇异常懵逼(解释可以参考这篇introducti

2021-01-26 22:51:06 5

转载 AVFoundation–简介

AVFoundation是很多处理基于时间的音视频文件的框架之一。你可以用它来检查,创建,编辑或者对媒体文件重编码。可以从设备中得到输入流,以及在实时捕捉和播放的时候对视频进行处理。如果你仅仅需要播放视频,在IOS上你可以使用Media Player框架中的MPMoviePlayerController或者MPMoviePlayerViewController,如果是基于Web的视频,那么你可以使用UIWebView。 为了录制视频,并且几乎不需要关注其格式,那么你可以使用UIKit框架中的UII

2021-01-26 22:48:25 105

转载 NAT的几种类型

一、概念NAT(Network Address Translation,网络地址转换),当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。要真正了解NAT就必须先了解现在IP地址的适用情况,私有IP地址是指内部网络或主机的IP 地址,公有IP地址是指在因特网上全球唯一的IP地址。RFC 1918为私有网络预留出了三个 IP地址块,如下:A 类:10.0.0.0~10.255.255.255B

2021-01-26 22:31:23 2

转载 webrtc SDP和candidate消息生成位置学习

candidate 英[ˈkændɪdət] 美[ˈkændɪdət] n. (竞选或求职的)候选人,申请人; 投考者; 应试者; 参加考试的人; 被认定适合者; 被认定有某种结局者; [例句]Neithercandidatewas selected for thejob.申请这个工作的两个候选人都未获选上。[其他] 复数:candidates SDP 和candidate消息生成代码1 ICE消息生成及发送ICE消息触发是由 we...

2021-01-26 22:15:17 50

转载 WebRTC(三)媒体协商技术

WebRTC通过ICE技术可以实现客户端P2P连接,但是在两端进行P2P连接前还需要先进行媒体协商。WebRTC媒体协商技术主要包括两部分:一部分是SDP(Session Description Protocol)协议,另一部分是JSEP(JavaScript Session Establishment Protocol)协议。SDP协议SDP协议,即会话描述协议,它提供一种描述实时音视频通信所需的各种参数的通用描述,是一个文本信息。简单来说,SDP就是客户端的各端的音视频实时通信的能力,能力指的是

2021-01-26 22:07:39 4

转载 SDP协议介绍

SDP协议介绍SDP 完全是一种会话描述格式 ― 它不属于传输协议 ― 它只使用不同的适当的传输协议,包括会话通知协议(SAP)、会话初始协议(SIP)、实时流协议(RTSP)、MIME 扩展协议的电子邮件以及超文本传输协议(HTTP)。SDP协议是基于文本的协议,这样就能保证协议的可扩展性比较强,这样就使其具有广泛的应用范围。SDP 不支持会话内容或媒体编码的协商,所以在流媒体中只用来描述媒体信息。媒体协商这一块要用RTSP来实现。SDP协议格式SDP描述由许多文本行组成,文本行的格式为&l

2021-01-26 21:56:18 4

转载 webrtc系列3——对于stun和turn的理解

stun 英[stʌn] 美[stʌn] v. 使昏迷; (尤指)打昏; 使震惊(或惊愕、目瞪口呆); 给(某人)以深刻印象; 使深深感动; turn 英[tɜːn] 美[tɜːrn] v. (使)转动,旋转; 转身; webrtc系列3——对于stun和turn的理解ddssingsong2019-09-03 08:05:512736收藏6分类专栏:webrtc文章标签:webrtcstuntu...

2021-01-26 19:52:03 10

转载 WebRTC基础面试题

WebRTC基础面试题李超​北京音视跳动科技有限公司 音视频技术专家5 人赞同了该文章面试最近音视频会议,在线教育都比较火,很多学习了我课程的同学都偿试着去面试音视频相关的岗位,这里我就简单的整理了一份 WebRTC 相关的面试题,希望对大家有所帮助。同时,这份面试题也对你学习《WebRTC入门》这门课的一个检验。面试题为什么用浏览器无法打开摄像头?A. 浏览器不支持 WebRTCB. 没有使用 HTTPS 服务C. 证书不正确D. 没有打开浏览.

2021-01-26 19:30:26 9

转载 OpenGL的替代者——Vulkan

OpenGL的替代者——VulkanVulkan是一个跨平台的2D和3D绘图应用程序接口(API),最早由科纳斯(Khronos)组织在2015年游戏开发者大会(GDC)上发表。旨在替代OpenGL,提高图形性能。基于OpenGL的图形引擎性能瓶颈基于OpenGL的图形引擎,其渲染过程粗略可分为 主机端资源准备,设备端数据交互与管线准备 及 每帧循环的渲染 三个部分。资源加载这一过程跟GPU没有太大关系,主要是为了进行显示之前的图片解码、字体解析、3D模型解析等等。一般可以放到其他线程中

2021-01-25 17:41:51 7

转载 TypeScript - Array splice()

splice() method changes the content of an array, adding new elements while removing old elements.Syntaxarray.splice(index, howMany, [element1][, ..., elementN]);Parameter Details index− Index at which to start changing the array. howMany−..

2021-01-21 20:00:41 22

原创 TypeScript 教程

https://www.runoob.com/typescript/ts-tutorial.html

2021-01-20 22:11:51 8

转载 AE学习(一)

认识AE(Adobe After Effects)源于一次工作上的经历,那年上级搞培训,要求每个单位做一个落实活动的一个小视频。这可难为我了,但是这是我第二次参与视频的工作,五年前我还写过单位警示教育微电影的脚本,只是那时候不懂也不参与拍摄制作,就是个干活的。第二次的时候也算是我全程参与了,2分多钟的微视频,写脚本,拍摄好找一个会做视频的班长做的。那时候才知道有AE这个软件,看起来很强大,Adobe公司出品,都是精品彩,特效很精那时候便萌生了学习做视频的想法。如今,自我摸索,抽空学习一下。版本是AE2015

2021-01-18 16:52:05 31

转载 H264 编解码协议详解

1.、什么是 H264?H264 是 MPEG-4 标准所定义的最新编码格式,同时也是技术含量最高、代表最新技术水平的视频编码格式之一,标准写法应该是H.264H264 视频格式是经过有损压缩的,但在技术上尽可能做的降低存储体积下获得较好图像质量和低带宽图像快速传输。2、一些相关名词解释下图为 H264 码流分层图2.1、VCL & NALH264 原始码流是由一个接一个 NALU(NAL Unit) 组成,它的功能分为两层,VCL(Video Coding Layer)视频

2021-01-18 13:47:29 35

转载 mac首次安装typescript报错

报错截图这一看,说是权限不够,后来问度娘,度娘说先得安装淘宝镜像:npm install cnpm -g --registry=https://registry.npm.taobao.org,然后:sudo cnpm install -g typescript等一下执行:tsc -V即可作者:Emily小姐姐链接:https://www.jianshu.com/p/1e1f141ceb55来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处...

2021-01-16 16:11:37 10

转载 Setting up a Node development environment

Now that you know what Express is for, we'll show you how to set up and test a Node/Express development environment on Windows, Linux (Ubuntu), and macOS. Whatever common operating system you are using, this article should give you what you need to be able

2021-01-15 16:18:05 10

转载 WebGL入门教程(一)canvas、WebGL和shader简介

WebGL入门教程(一)canvas、WebGL和shader简介想免费获取内部独家PPT资料库?观看行业大牛直播?点击加入腾讯游戏学院游戏程序行业精英群711501594下面给大家分别介绍下canvas、WebGL和shader,让大家了解这些比较基础向的内容,这样才能更好的帮助自己将后来的开发。一、canvascanvas(翻译为画布)是HTML5的一个标签,canvas可以使用JavaScript在网页上绘制图像,例如下面的代码就使用canvas绘制一个简单的矩形。&l.

2021-01-14 19:58:32 15

转载 算法的时间与空间复杂度(一看就懂)

算法的时间与空间复杂度(一看就懂)不止思考(奎哥)公众号「 不止思考 」互联网技术、思考、认知。1,116 人赞同了该文章算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。那么我们应该如何去衡量不同算法之间的优劣呢?主要还是从算法所占用的「时间」和「空间」两个维度去考量。时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。 空间维度:

2021-01-11 20:12:21 23

转载 算法复杂度

算法复杂度是指算法在编写成可执行程序后,运行时所需要的资源,资源包括时间资源和内存资源。应用于数学和计算机导论。中文名算法复杂度外文名Algorithmic Complexity影响效率分类时间复杂度和空间复杂度关键输入量相关时间复杂度应用数学,计算机导论目录1简介 2时间复杂度 3空间复杂度 4复杂度分析简介编辑同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程...

2021-01-11 19:52:24 12

转载 H.264学习笔记6——指数哥伦布编码

https://www.cnblogs.com/dwyanetalk/p/4035206.htmlH.264学习笔记6——指数哥伦布编码一、哥伦布码  哥伦布码就是将编码对象分能成等间隔的若干区间(Group),每个Group有一个索引值:Group Id。  》对于Group Id采用二元码编码;  》对于Group内的编码对象采用定长码。  如下图:    对于编码对象n:  n = q * m + r = low(n/m) * m + r。其中q = low(n/.

2021-01-11 18:27:40 11

原创 h264编解码基础-二元码(n元码定义)

1. 参考:https://zhidao.baidu.com/question/312489536.html二元码和二进制码是不是一个意思?二元码可以是0、1,也可以是1、2或者其他任意不同的两个值,而二进制就只能是0、1。2. n元码参考:https://baike.baidu.com/item/n%E5%85%83%E7%A0%81/5923247?fr=aladdinn元码是指编码后信号幅度具有n个取值的数字信号,常用于数字信号的基带传输中。n元码中, 每个符号可以..

2021-01-11 18:13:25 27

转载 AAC的ADTS头解析

1. ADTS(Audio Data Transport Stream)头之于AACAAC音频文件的每一帧都由一个ADTS头和AAC ES(AAC音频数据)组成。AAC数据帧2. ADTS头分析ADTS头包含了AAC文件的采样率、通道数、帧数据长度等信息。ADTS头分为固定头信息和可变头信息两个部分,固定头信息在每个帧中的是一样的,可变头信息在各个帧中并不是固定值。ADTS头一般是7个字节((28+28)/ 8)长度,如果需要对数据进行CRC校验,则会有2个Byte的校验码,所以ADT.

2021-01-11 15:08:20 28

转载 iOS的weakSelf与strongSelf

避免循环引用的标准做法:weakSelf+strongSelf假设我们的类有一个属性叫做 model, 我们想要当 model 中的 data 变化的时候,有一个 label 的 text 会随之改变,为了达到这目的,我们设置 model :- (void)setUpModel{ XYModel *model = [XYModel new]; model.dataChanged = ^(NSString *title) { self.titleLabe.

2021-01-11 12:41:00 9

转载 Objective-C 中的内存分配

Objective-C 中的内存分配在 Objective-C 中,对象通常是使用alloc方法在堆上创建的。[NSObject alloc]方法会在对堆上分配一块内存,按照NSObject的内部结构填充这块儿内存区域。一旦对象创建完成,就不可能再移动它了。因为很可能有很多指针都指向这个对象,这些指针并没有被追踪。因此没有办法在移动对象的位置之后更新全部的这些指针。MRC 与 ARCObjective-C中提供了两种内存管理机制:MRC(MannulReference Countin...

2021-01-10 18:15:05 13

转载 OC中的id类型

OC中的id类型id类型静态类型和动态类型 为什么要有动态类型? id数据类型与静态类型1. 静态类型和动态类型 静态类型 将一个指针变量定义为特定类的对象时,使用的是静态类型,在编译的时候就知道这个指针变量所属的类型,这个变量总是存储特定类的对象。 Person *p person = [[Person allo] init]; 动态类型 这一特性是程序直到执行时才确定对象所属的类 id obj = [[Person alloc] init]; 2

2021-01-10 18:08:15 16

转载 类目 (category)

类目 (category) 对现有的类添加扩展,如:系统中的类,在类目中添加的方法会被子类继承,而且运行时跟其他的方法没有区别。 作为子类的替代方式,不需要定义和使用一个子类,可以通过类目直接向已有的类目里添加方法。 对类中的方法进行归类,利用categopry把一个庞大的类划分为小块来分别进行开发,从而更好地对类中的方法进行更新和维护。通过类目添加的方法会成为原始类 的一部分注意:当然也有使用Category是需要注意的问题:1 Category可以访问原始类的实

2021-01-10 15:22:44 12

转载 OC-Block语法

block 语法block语法 -> 块语法标准C里面没有Block, C语言的后期扩展版本, 加入了匿名函数; C++, JS, Swift等语言中, 有类似语法, 叫做闭包!block语法和函数指针很相似回顾, C语言中的指针函数:int(*) (int x, int y) 即: 指向两个整型参数, 一个整型返回值函数的指针!Block函数, 没有名称的函数;例如 int(int x, int y)因为Block是匿名函数, block变量的存放的函数的实现, 通过block

2021-01-10 14:16:51 11

转载 C 中 strong, weak, assign, copy 的区别

strong强引用,只可以修饰对象,属性的默认修饰符,其修饰的对象引用计数增加1weak弱引用,只可以修饰对象,指向但不拥有对象,其修饰的对象引用计数不增加,可以避免循环引用,weak修饰的对象释放后,指针会被系统置为nil,此时向对象发送消息不会奔溃assign可以修饰对象和基本数据类型,如果修饰对象,其修饰的对象引用计数不增加,可以避免循环引用,但assign修饰的对象释放后,指针不会被系统置为nil,这会产生野指针的问题,此时向对象发送消息会奔溃。所以assign通常用于基本数据类

2021-01-10 13:53:25 25

转载 OC:copy/strong/weak..使用总结

原文档关于自动引用说明:Automatic Reference Counting (ARC) is a compiler feature that provides automatic memory management of Objective-C objects. Rather than having to think about retain and release operations, ARC allows you to concentrate on the interesting cod..

2021-01-10 12:47:15 9

转载 退化多边形

基本内容编辑退化多边形是多边形的一种,是一种退化的多边形,是指一个多边形在满足多边形定义的临界。退化三角形是指面积为零的三角形。满足下列条件之一的三角形即可称为退化三角形:三个内角的度数为(180°,0°,0°)或(90°,90°,0°);三边其中一条边的长度为0;一条边的长度等于另外两条之和。有人认为退化三角形并不能算是三角形,这是由于它介乎于三角不等式之间,在一些资料中已否定了其中一条边等于其余两条边之和的情况。...

2021-01-09 15:56:13 16

原创 苹果ios音频的回声消除处理

iOS设备上回声消除的例子工业上的声音处理中,回声消除是一个重要的话题,重要性不亚于噪声消除、人声放大、自动增益等,尤其是在VoIP功能上,回声消除是每一个做VoIP功能团队的必修课。QQ、Skype等等,回声消除的效果是一个重要的考查指标。具体的回声消除算法比较复杂,我现在还没有研究的很明白。简单来说,就是在即将播放出来的声音中,将回声的那部分减去。其中一个关键,是如何估计回声大小,这需要用到自适应算法。研究不透,多说无益。有兴趣的同学可以一起学习。Apple在Core Audio中提供.

2021-01-05 10:57:44 66

原创 PBO(Pixel Buffer Object),将像素数据存储在显存中

http://www.voidcn.com/article/p-kidqaxhc-bkc.htmlhttps://blog.csdn.net/u011330638/article/details/81806897PBO(Pixel Buffer Object),将像素数据存储在显存中。优点:1、快速的像素数据传递,它采用了一种叫DMA(Direct Memory Access)的技术,无需CPU介入2、 高效并不在于传输更快,而在于与硬件相关的异步调用方式,调用之后CPU即返..

2021-01-04 21:56:22 17

转载 VBO,VAO,,EBO-penGL进阶(二十) - 绘制一个长方形和一个三角形

简介先看最终效果今天要学习的重点是怎样在场景中绘制两个(或者以上的)物体,方框的绘制方框其实是由两个三角形组成,看一下VBO, VAO, EBO的定义 GLfloat vertices[] = { 0.5f, 0.5f, -1.0f, 0.5f, -0.5f, -1.0f, -0.5f, -0.5f, -1.0f, -0.5f, 0.5f, -1.0f }; GLuint in...

2021-01-04 20:42:05 15

转载 Audio Unit详解

一、什么是Audio UnitiOS提供了音频处理插件,支持混合、均衡、格式转换和实时输入/输出用于录制、播放、离线渲染和实时对话如VoIP(互联网协议语音)。你可以从iOS应用动态加载和使用它,这些强大和灵活的插件叫做Audio Unit。Audio units通常工作在一个封闭对象的上下文中,该对象为audio processing graph,如下图。在此例中,你的app通过一个或多个callback functions发送audio到第一个audio unit,并对每个audio un...

2021-01-04 19:36:32 51

转载 GL_TRIANGLE_STRIP和GL_TRIANGLE_FAN的区别

对于给定的顶点,这两个参数都是告知接口画三角形。但是两者的工作方式是不一样的。我们直接举例来说明:Triangle Strip这种方式画的三角形是连接在一起的。它们之间彼此共享了顶点。当我们给定的顶点坐标顺序依次为A、B、C、D、E、F,所画出的三角形如下图所示:Triangle Fan以这种方式画出来的三角形也是连接在一起的,但是区别于Triangle的是它们有一个共同的顶点。这个顶点称为它们的中心顶点。按顺序前三个点组成一个三角形。而后保留该组三角形的最后一个顶点我们暂且记为..

2021-01-03 12:55:24 14

转载 OpenGL ES之glUniform函数

函数名:glUniform功能:为当前程序对象指定Uniform变量的值。(译者注:注意,由于OpenGLES由C语言编写,但是C语言不支持函数的重载,所以会有很多名字相同后缀不同的函数版本存在。其中函数名中包含数字(1、2、3、4)表示接受这个数字个用于更改uniform变量的值,i表示32位整形,f表示32位浮点型,ub表示8位无符号byte,ui表示32位无符号整形,v表示接受相应的指针类型。)函数原型:voidglUniform1f(GLintlocati...

2021-01-03 12:22:07 19

转载 openGL之API学习(三十四)highp mediump lowp

如果用GLSL ES编写的着色器,浮点精确度规定如下:highp – 32位浮点格式,适合用于顶点变换,但性能最慢。 mediump – 16位浮点格式,适用于纹理UV坐标和比highp大约快两倍 lowp – 10位的顶点格式,适合对颜色,照明计算和其它高性能操作,速度大约是highp 的4倍如果是用CG编写的着色器或是一个表面着色器,指定精度如下:float – 类似于在GLSL ES 的highp,最慢 half – 类似于在GLSL ES 的mediump,比float...

2021-01-02 21:05:07 6

转载 OpenGL笔试题

简述FrameBuffer,RenderBuffer,Depth Buffer,Framebuffer attachment,Stencil buffer的关系简述利用OpenGL执行图像叠加(大PNG图像叠加有alpha通道的小PNG图像),写出步骤列出着色器的四个内置变量和十个内置函数OpenGL如何处理浮点的不精确问题(即如何避免多次计算不一致的问题)三维纹理如何存储?和二维纹理有什么区别?如何加速GPU和CPU之间的数据传输速率?用OpenGL渲染二维图像,除去在一个平.

2021-01-02 13:30:35 17

转载 Real-Time Rendering (10) - 图形硬件及学习小结(Graphics Hardware)

Real-Time Rendering (10) - 图形硬件及学习小结(Graphics Hardware)拳四郎2013-12-26 23:22:216655收藏3分类专栏:计算机图形学文章标签:图像处理游戏图形版权提要 时代在变,硬件也在变,但一些基本的架构其实根本未变,就像计算机发展了这么多年,还是逃不了几百年前图灵机所定下的:存储器;控制器;运算器,输入设备和输出设备。图形硬件也有自己的套路。流处理器和ROPs通常我们在选购显...

2021-01-02 13:29:00 27

iso视频标准

iso开发标准技术文档,原版下载。ts流讲解。加密版。

2014-02-20

ts流搜台的代码

解析ts流的代码。自己写的。从ts流中分离各各表格信息。入口函数需要自己添加。循环没有做,需要时直接while就可以了。

2013-12-31

王lz-1.1-20191104-白名单评审.pptx

ppt书写原理和规范

2019-11-11

hongge372的留言板

发表于 2020-01-02 最后回复 2020-02-12

空空如也

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

TA关注的人 TA的粉丝

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