自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

白袍小将的博客

好好学习,天天向上

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

原创 H264 NALU说明

在H.264/AVC视频编码标准中,编码的数据流(位流)由连个层面组成:视频编码层面(VCL)和网络抽象层面(NAL)。H264编码产生的结果(位流)首先为视频编码层(VCL),为了便于网络传输与存储,需要将编码层的VCL数据再打包成NAL(全称Network Abstract Layer),即网络抽象层。其中,前者负责有效表示视频数据的内容,而后者则负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上的传输。做流媒体研发的工作只需要关心NAL层,不一定需要掌握VCL层数据。一个NAL.

2021-08-29 12:20:30 1972

原创 Visual Studio Code 集成TypeScript开发和调试

假设已经安装nodejs。1、建立项目目录使用以下命令创建项目的目录:mkdir ts3cd ts3mkdir srcmkdir dist建立好的目录如下:ts3├─dist└─src2、初始化NPM在项目的根目录下,执行下面的命令:npm init -y现在项目结构如下:ts3├─dist└─src└─package.json3、安装TypeScript在项目的根目录下,执行下面的命令:npm i -g typescript..

2021-08-28 11:31:44 537

原创 开源免费Webrtc转发服务器Mediasoup的概念解释与基本介绍(一)

用于Webrtc的媒体流转发服务器不计其数,开源与免费的也不计其数,有基于C++开发的,有基于Java开发的,有基于Go开发的,但以笔者的实践经验,mediasoup是性能最好的转发服务器。Mediasoup其实是一个框架,其应用层开发语言为javascript,必须依赖于Nodejs来执行,但其媒体转发模块(Worker)却是用C++开发,而且这个转发模块的网络I/O底层库为Libuv,Libuv是一个目前最优秀的网络I/O库,笔者用它开发了好几款应用,都表现得极其高的性能,所以笔者以为Wo...

2021-08-27 19:27:00 1554

原创 Webrtc 信令交换过程

开发Webrtc程序,首先需要知道其连接的建立过程,现记录如下:1、A向服务器发出init请求2、服务器将A的init请求转发给连接上服务器的其他端3、B收到init请求后,调用peerConnection.createOffer()方法创建一个包含SDP的offer信令4、offer信令创建成功后会调用SdpObserver监听中的onCreateSuccess()响应函数在此处B通过peerConnection.setLocalDescription()方法将SDP赋予自己的Peer

2021-08-27 16:33:18 1039

原创 ES6中export及export default的区别

在JavaScript ES6中,export与export default均可用于输出常量、函数、文件、模块等符号,调用时可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用。export 与 export default究竟有何区别呢?1、一个模块中文件中,export可以有多个,export default仅有一个。function func1() { ... }function func2() { ... }func

2021-08-23 17:57:55 354

原创 Javascript ES6中export与import指令使用说明

javascript ES6 支持模块化编程,模块是独立的文件,该文件内部的所有的变量与函数都是局限在该模块内部,外部模块无法访问,如果需要在调用的模块之内使用这些符号,模块内部的变量与函数必须设置为输出。符号的输出是通过export关键字来制定的。一、export// tools.js//输出变量方式1export var firstName = 'Michael';export var lastName = 'Jackson';export var year = 2021;//输

2021-08-23 17:30:03 2446 1

原创 Android视频采集与处理

Android中很多基本的架构都是C/S层架构,客户端提供调用接口,而实现工作则是在服务端完成。Android Camera的架构也是C/S架构,Client进程虽然不曾拥有任何实质的Camera数据,但是service端为它提供了丰富的接口,它可以轻松的获得Camera数据的地址,然后处理这些数据。两者通过Binder进行通讯。在Android中调用摄像头需要相应的权限,需要注意的是:权限申请在Android 6.0后变成了动态申请。在本项目中使用了Camera1相关的API对摄像头进行调用,所以对Ca

2021-08-23 01:45:29 1417

原创 Android Media API 使用介绍

  从事多媒体开发的同学,在对Android 系统开发时,Android系统已经给我们提供了对视音频的强大支持,本文介绍Android的几个和视音频相关的类,通过这几个类的组合使用,其实是能变换出许多视音频处理的相关功能,下面就对这几个类进行简单介绍。MediaMetadataRetriever:用来获取视频的相关信息,例如视频宽高、时长、旋转角度、码率等等。MediaExtractor::视音频分离器,将一些格式的视频分离出视频轨道和音频轨道。MediaCodec:视音频相应的编解码类。MediaMu

2021-08-23 01:14:57 1168

原创 Android 声音采集回声与回声消除

回声(或称回音)是指障碍物对声音的反射。声波在遇到障碍物时,一部分声波会穿过障碍物,而另一部分声波会反射回来形成回声。若障碍物具有坚硬光滑的表面易产生回声;反之,具有柔软的表面则易吸收声音;另外,粗糙的表面易散射声音。回声相比那些直接传播的声音所经过的路程更长,所以会比直接传播的声音晚被听到。如果两列声波的时间间隔小于0.1秒,人耳边无法分辨,只能听到被延长的声音。因为室温(20℃)时空气中的声速是343米每秒,所以站在声源处的人要听到回声需要障碍物到声源的距离至少17米。很多时候直播有连麦的需求,这时

2021-08-23 00:28:01 6944

原创 Vue 中的组件名称命名说明

在使用Vue自定义组件时,需要给组件命名,即在注册一个组件的时候,我们始终需要给它一个名字。比如在全局注册的时候我们已经看到了:Vue.component('my-component-name', { /* ... */ })该组件名就是Vue.component的第一个参数。给予组件的名字可能依赖于打算拿它来做什么。当直接在 DOM 中使用一个组件 (而不是在字符串模板或单文件组件) 的时候,强烈推荐遵循W3C 规范中的自定义组件名 (字母全小写且必须包含一个连字符)。这会...

2021-08-22 12:02:34 4080 1

原创 v-bind,v-on 缩写, 冒号与@

<!-- 完整语法 --><a v-bind:href="url">...</a><!-- 缩写 --><a :href="url">...</a><!-- 动态参数的缩写 (2.6.0+) --><a :[key]="url"> ... </a>v-on缩写<!-- 完整语法 --><a v-on:click="doSomething">...&..

2021-08-22 11:49:15 607

原创 Vue——slot的含义是什么, slot之详细解释

slot 英文的意思是“插槽”的意思,vue用这个词做标签,意思是能够在这个标签里插入一些东西,是由调用组件(父组件)向其调用的子组件里插入一些东西的一个解决办法。slot的语法如下:<slot></slot>以上这段代码是书写在需要支持插入能力的子组件里的,有了这段标签代码后,子组件就支持父组件向其内部插入东西了。一个支持slot的子组件的模板html如下:<template> <div class="slot-child">

2021-08-22 10:31:19 3530

原创 js 三个点(...),扩展运算符说明

在开发nodejs应用时,发现一些代码中符号前面有三个点(...),这个是什么意思了。原来三个点(...)真名叫扩展运算符,是在ES6中新增加的内容,它可以在函数调用/数组构造时,将数组表达式或者string在语法层面展开;还可以在构造字面量对象时将对象表达式按照key-value的方式展开。说白了就是把外层包裹去除,不管是大括号([])、花括号({}),统统不在话下。字面量一般指 [1,2,3,4,5] 或者 {name:'Tom',age:19} 这种简洁的构造方式,多层嵌套的数组和对象三个点就无

2021-08-21 18:10:58 8553

原创 Webrtc 源码分析起步

本文是从Webrtc实际应用的方面介绍如何快速理解Webrtc的源码。Webrtc是用于web的实时通信框架,也可以直接使用Google开源的Webrtc实现来开发非Web的APP。要理解如何使用webrtc的源码,最好是先懂得Webrtc通信的流程,请查看用Webrtc实现免费的1对1高清实时视音频会议系统就可以了解Webrtc的接口使用流程,了解这个流程后就可以快速理解Google开源的那部分Webrtc源码了,并为自己使用。需要掌握Webrtc的js部分的PeerConnection,js部...

2021-08-21 01:06:41 1903

原创 Linux 网络I/O模型epoll开发说明

在进行网络服务器开发时,为了提高服务器支持的连接处理能力,通常采用多线程、select轮询(或者poll函数轮询)来实现,由于多方面的原因,以上方式都不能完美解决大批量连接的问题。在Windows NT系统里,很早就有I/O Complete Port,可以解决网络大批量连接的问题,但在Linux系统,直到内核版本2.5.44时,才开发出一个新的方法来处理大并发连接,这个方法就是epoll,在linux 内核2.6以后,epoll变得成熟,可以大胆使用了。本文就epoll的开发进行介绍说明。概述 ...

2021-08-17 18:30:59 1299

原创 SSL 服务器与客户端样本代码

本文为了方便进行SSL编程参考而整理,SSL编程调用的大多数流程就如如下样本代码,通过本样本代码可以比较快的测试SSL相关API。

2021-08-14 13:53:12 2757

原创 Windows下用OpenSSL生成CA根证书及签发server端证书

一、先下载编译好的OpenSSL程序,并展开后放在E:盘,目录结构如下所示目前放在的目录为:E:\OpensslX64二、打开一个CMD控制台窗口,设置好openssl.cnf路径用以下控制台命令进入到E:\OpensslX64\bin,并设置好openssl.cnf路径。E:cd E:\OpensslX64\binset OPENSSL_CONF=E:\OpensslX64\conf\openssl.cnf三、在当前目录E:\OpensslX64\bin 里创建两个...

2021-08-14 11:11:07 9255

原创 CSS的display:flex说明

在进行网页前端设计时,需要垂直居中显示文本,但CCS似乎没有明确的垂直居中的代码方法,由于目前的页面不再考虑以前的浏览器了,因此采用CSS3的display:flex方法来实现。现记录一下flex属性的相关资料。Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。它即可以应用于容器中,也可以应用于行内元素。(以上说明结合微信开发者工具说明)2009年,W3C提出了

2021-08-11 18:07:33 12825

DXGI屏幕捕捉源码-适合于Windows10 的高效屏幕捕捉源码

基于Windows 10 的Desktop Duplication API 技术开发的桌面捕捉源码,采用DXGI技术进行屏幕捕捉,不仅CPU资源占用少,而且能够达到比较高的帧率。DXGI屏幕捕捉源码仅适合Windows 8 以上的操作系统,Windows 7及以下操作系统不适用。这个代码经过调试后是可以用于产品的,需要的可以在此代码的基础上进行改进。

2021-09-11

VBWebsocket.zip

一个用于VB6/VB.NET/C#的高性能Websocket客户端组件、支持WS、WSS协议,内含VB6/VB.NET/C#样本代码,稍微修改即可使用于产品,稳定可靠。完全采用C语言实现的Websocket组件,对Websocket协议完全实现。支持x64/x86两个操作系统,支持Windows 7 以上操作系统。

2021-03-17

http超大文件断点续传服务器

实现的代码演示了一个具备超大文件http上传的服务器,支持所有浏览器,支持断点续传,支持的文件大小不限,支持Windows与linux。

2018-06-08

空空如也

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

TA关注的人

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