自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 资源 (8)
  • 收藏
  • 关注

原创 2-人的发声原理和听觉原理

不知道是否大家跟我一样有好奇过,人是怎么发出声音?然后声音又是怎么传输到对方?最终到对方耳朵是怎么听到这些声音进而产生回应?这里拿一个比较常见的打电话这个场景举例,总结其实就以下这几个问题:1)人体是怎么发出声音 2)声音产生出来是怎么进行传输 3)又是怎么听到声音? 4)听到声音后又是怎么处理这些声音的信息?这篇文章里面主要是介绍人的发声音和听觉原理。一)人体的发声原理:1.1 人体发音器官结构示意图:下图就是整体人体发声的不同区域部分,主要分以下几大块:口腔区: 鼻腔区

2022-02-20 20:55:51 13824

原创 音频基本知识

以下是我列举的音频的基本知识要点:音频信号 音频的模数转换 音频的三要素 采样率 采样位宽 声道数量 码率 音频的存储 音频的封装音频信号:音频信号(audio signals)是表示机械波的信号,是机械波的波长、强度变化的信息载体。根据机械波的特征,可分为规则信号和不规则信号。其中规则信号又可以分为音乐等。规则信号是一种连续变化的模拟信号,可用一条连续的曲线来表示。音频信号常见的分为:语音信号 音乐信号音频信号的模数转换模数转换是指:.

2022-02-03 11:23:40 6726

原创 关于GLIBC_2.14 not found 版本不一致的问题解决

这几天升级线上版本,遇到一个glibc版本不一致的问题,导致服务无法升级,坑了我好快两天。把这个记录下来方便其他遇到问题的小伙伴可以参考下:1) 问题现象 :启动的时候 “/lib64/libc.so.6: version `GLIBC_2.14' not found (required by“2)查看本地和线上的glibc的版本是否一致: ldd --version 可以查看下本地的glibc和线上的glibc版本由于线上机器系统版本不一样,glib...

2020-06-04 09:59:16 5410

转载 MMS多媒体短信技术简介

进入2002年以来,MMS就以极高的频率侵入人们的视野,敲击人们的耳鼓。从爱立信、诺基亚、摩托罗拉、西门子、阿尔卡特这样的跨国移动巨头到华为、中兴这样的本土移动新军,都不遗余力地向移动运营商介绍各自的MMS技术和解决方案,不少运营商已经扑身下水开通MMS业务张网待捕;各内容提供商也在紧锣密鼓加紧开发MMS内容。MMS已经被业界公认为GPRS和3G市场启动与发展的关键推动力,它将...

2020-05-07 14:32:28 3108

原创 nginx中hash表的设计

hash表的整体设计要素先回顾一下hash表的设计的几个要素:hash函数的构造-散列函数冲突处理方式装填因子大小的选择。装填因子 a=n / m。其中m为hash表的bucket个数;(n为关键字的个数。装填因子越大,产生hash冲突就严重。)hash函数构造方法经典的字符串hash构造算法主要以下几个:BKDRHashAPHashDJBHashJSHashRSHa...

2019-07-12 11:48:23 317 1

原创 音频基础知识

一直以来对音频没有一个整体的梳理,对音频的一些概念理解不是特别深。像分贝,采样率,采样深度等。数字音频处理大多使用采样率和位深这两种技术直接存储音频数据。脉冲编码调制(即 PCM)是最流行的数字音频技术(在使用光盘时较为普及)之一。音频按设定的时间间隔进行采样,采样波在采样点的振幅使用样本的位深存储为数字值。线性 PCM在 CD 中使用 44100 Hz 的采样率,适合改编音乐;160...

2019-07-08 17:00:56 2357

原创 滤波

滤波的概念滤波是信号处理中的一个重要概念,滤波电路的作用是尽可能减小脉动的直流电压中的交流成分,保留其直流成分,使输出电压纹波系数降低,波形变得比较平滑。​滤波器是一种选频装置,可以使信号中特定的频率成分通过,而极大地衰减其他频率成分。在音频处理当中,利用滤波器的这种选频作用,可以滤除干扰噪声或进行频谱分析。换句话说,凡是可以使信号中特定的频率成分通过,而极大地衰减或抑制其他频率成分的装...

2019-07-08 16:48:27 4506

原创 nginx-rtmp连接建立过程

连接建立整体过程:解析listen配置-ngx_rtmp_core_listen根据ip地址端口创建ngx_listening_t监听套接字-ngx_rtmp_optimize_servers创建socket,打开监听–ngx_open_listening_socketsaccpet监听事件初始化–ngx_event_process_initrtmp连接创建 ngx_rtmp_init...

2019-06-13 11:17:22 1061

原创 nginx-rtmp模块初始化

rtmp模块初始化源码剖析rtmp模块初始化过程主要分为以下几个点: 上下文结构初始化、配置项解析、配置项合并、server 相关端口设置。相关源码文件主要在ngx_rtmp.c和ngx_rtmp.h文件中下面主要从rtmp框架相关的数据结构,以及整个初始化过程进行分析。数据结构nginx-rtmp模块的核心框架定义的通用数据结构主要有以下几个:ngx_rtmp_module_t 、ngx...

2019-06-06 17:54:58 890

原创 nginx-rtmp模块内存池剖析

ngx_rtmp_shared.c文件主要是nginx-rtmp的内存池nginx本身有一套自己的内存池,nginx-rtmp模块根据业务特性音视频又写了一套内存回收的机制下面主要从nginx-rtmp内存池的内部实现原理以及内存池的使用做介绍分析提供外部调用的APIngx_rtmp_alloc_shared_buf 申请分配块内存ngx_rtmp_free_shared_ch...

2019-06-03 21:02:51 602

原创 ngx_rtmp_live_module 模块

ngx_rtmp_live_module 模块整体描述live模块是负责音视频流的分发作用,主要将接收来自publisher推流上来的音视频数据分发给每个player播放连接。本文章主要集中分析以下三点1)流的组织结构2)流数据的分发3)流资源的回收模块数据结构分析直播服务器是支持多路不同的流名同时推流,而且每路流是可以支持很多个观众同时并发的,那么这些多个推流拉流行为,在服务器内部...

2019-06-03 17:30:19 1423

原创 ngx_rtmp_record_module 模块分析

1 ngx_rtmp_record_module模块功能描述本模块主要是直播转点播录制的功能,跟点播这个相关的模块还有ngx_rtmp_play_module,ngx_rtmp_flv_module,ngx_rtmp_mp4_modulengx_rtmp_control_module 这个模块提供可以控制录制的开始和结束本模块只分析record模块,其他点播相关后续再分析。1.1 配...

2019-05-30 20:39:34 814 1

原创 ngx_rtmp_control_module 模块解读

1、模块功能描述本模块主要提供了外部接口控制rtmp流状态的接口,通过这些接口进行一些断流,录制,流名重定向等以下接口:record 录制功能drop 断流功能,涉黄涉暴力的话可以通过这个方式断开服务端的推流redirect 对推拉流进行重定向功能1.1 配置示例http { server { listen 88; server...

2019-05-30 15:50:05 2227 7

原创 ngx_rtmp_init_queue 事件队列解读

问题来由:在ngx_rtmp_relay_module模块当中有个static预拉流的事件,感觉这个设计有点小巧妙且匪夷所思。试想一下,如果是自己设计会怎么做?为啥不直接弄一个定时器事件?问题分析:先说说 ngx_rtmp_init_queue 这个队列,nginx自身定义了ngx_posted_accept_events和ngx_posted_events俩类事件队列这是一个post事件队...

2019-05-29 16:52:23 443

原创 nginx_rtmp_relay_module模块解读

nginx_rtmp_relay_module主要逻辑解读以及源码分析

2019-05-29 15:20:21 1271

原创 直播CDN架构内幕

直播整体介绍文章主要从直播CDN的业务介绍,CDN整体技术架构,故障排查,CDN系统质量评估来做介绍分析直播从技术架构上讲主要分以下三类:传统三层的CDN架构:1推流边缘—2推流区域—3源站----2拉流区域----1拉流边缘p2p直播:上行和传统直播架构差不多,下游主要通过p2p的方式将直播流进行分块再切片,然后通过矿机的方式分发piece片,拉流sdk端再进行还原互动直播:后面有时...

2019-05-27 16:27:47 10653 11

原创 nginx事件机制解读

nginx事件模块机制事件模块主要包含以下文件:ngx_event.c/h 事件核心模块,以及定义所有事件模块的统一接口ngx_event_accept.c 事件连接处理ngx_event_posted.c/h 队列事件相关,主要队列事件的添加,删除,处理ngx_event_timer.c/h 定时器事件相关,定时器事件相关的执行,添加,删除...

2019-05-22 20:45:13 1142

原创 ffmpeg加水印

一、ffmpeg加水印命令,主要从直播和视频文件加水印1)直播推流加水印示例ffmpeg -i rtmp://localhost/live/name  -vf "movie=/path/2.png [watermark]; [in][watermark] overlay=10:10 [out]" -c:v libx264 -c:a copy -f flv rtmp://locahost:1936/...

2018-07-12 20:18:06 24051 4

原创 ffmpeg源码编译安装

一、源码安装git clone https://github.com/FFmpeg/FFmpeg.git 这个git过程有点慢cd FFmpeg./configure makemake install二、编译遇到的问题1)C compiler test failed 是因为-cc=clang没有安装,cc已经被编入了gcc中,gcc和clang是两个不同的编译器,本地没有安装clang编译器导致另...

2018-07-12 15:21:45 3360 2

原创 nginx-rtmp源码概述

github:https://github.com/arut/nginx-rtmp-module/wiki/* 点播相关*/ngx_rtmp_dash_modulengx_rtmp_mp4ngx_rtmp_mp4ngx_rtmp_mp4_module /* 主要支持rtmp MP4这块点播相关功能,支持seek操作*/ngx_rtmp_flv_module /*...

2017-05-19 11:38:46 5018

转载 RTMP协议整体概述

RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(packetizing)的问题。随着VR技术的发展,视频直播等领域逐渐活跃起来,RTMP作为业内广泛使用的协议也重新被相关开发者重视起来。正好最近在从事这方面的工作,在此记录下自己对RTMP的

2017-03-20 11:15:27 601

转载 QUIC 协议中涉及的TCP流量控制和拥塞控制的问题

当在看QUIC协议的时候,发现需要用到TCP拥塞控制的知识。因为它是建立在基于UDP的试验性传输层协议,相较于SPDY,是基于TCP的的传输层协议,效率提高了不少。因为TCP的核心在于丢包之后必须恢复,这在一定情况下会导致传输速率下降,同时TCP拥塞控制存在粒度精细度不够等问题。所以QUIC基于UDP之上,可以先不理会丢包,快速投递,再用丢包恢复来保证可靠性。后面我会具体搜集整理关于QUIC的东西

2017-03-13 15:40:20 1489

原创 websocket协议简介

1)什么是websocket       websocket是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duple)。握手是基于HTTP请求完成。传统的客户端-服务端请求方式:基于轮询技术定期对服务器端发出请求,单双工的,每次建立连接请求,直到服务端返回最新数据。HTTP request 的header是非常长的,会浪费很多网络带宽。        最新的

2017-03-05 09:22:35 878

原创 quic协议

一、quic资料目前关于quic的中文资料文档比较少,关于google开源代码管理工具gclient:http://blog.csdn.net/doon/article/details/9287693这有一篇介绍代码管理工具的文章。github源码:https://github.com/google/proto-quic(目前quic the only supported plat

2017-02-24 13:39:56 5573

转载 nginx location 匹配规则

原文:https://moonbingbing.gitbooks.io/openresty-best-practices/content/ngx/nginx_local_pcre.html语法规则location [=|~|~*|^~] /uri/ { … }符号含义=开头表示精确匹配^~开头表示 uri 以某个常

2017-02-13 17:23:34 1341

转载 nginx的upstream目前支持5种方式的分配

1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 2、weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 例如: upstream bakend { server 192.168.0.14 weight=10; server 192.168.0.15 weight=10;

2017-02-13 15:54:21 390

转载 nginx 0.8.x中linux aio实现

原文转载:http://blog.csdn.net/chdhust/article/details/9374337在nginx0.8.x之后加入了Linux native aio的支持,我们知道在linux下有两种aio,一种是glibc实现的aio,这个比较烂,它是直接在用户空间用pthread进行模拟的。还有一种就是内核实现的aio,这些系统调用是以io_xxx开始的,而在ngin

2017-02-13 15:02:20 584

转载 javascript中BOM部分基础知识总结

一、什么是BOM     BOM(Browser Object Document)即浏览器对象模型。     BOM提供了独立于内容 而与浏览器窗口进行交互的对象;     由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对象是window;     BOM由一系列相关的对象构成,并且每个对象都提供了很多方法与属性;     BOM缺乏标准,JavaS

2017-02-13 12:31:19 421

原创 nginx之rtmp模块引用计数设计

对于没有垃圾自动回收机制的语言(如C/C++)来说,引用计数提供了一种简洁高效的内存管理方法,nginx-rtmp模块为方便管理内存,在给ngx_chain_t分配内存的时候,多分配了sizeof(uint32_t)类型的字节数,用来方便管理内存在ngx_rtmp_shared.c文件中#define NGX_RTMP_REFCOUNT_TYPE uint3...

2017-02-09 15:37:53 1040 1

转载 srs之与nginx-rtmp性能对比

本文转载SRS(Simple Rtmp Server)单进程能支持9000并发,nginx-rtmp单进程最多支持3000个,单进程的性能SRS(Simple Rtmp Server)是nginx-rtmp的三倍。SRS(Simple Rtmp Server)单进程性能如何做到nginx-rtmp的三倍的?SRS(Simple Rtmp Server)哪几个结构极大提升了性能?先来看看我们

2017-02-09 14:40:19 4210

原创 Linux查看日志总结

1)查看日志文件linux查看日志文件内容命令tail、cat、tac、head,sed,grep,morecat主要有三大功能:1.一次显示整个文件。$ cat filename2.从键盘创建一个文件。$ cat > filename 只能创建新文件,不能编辑已有文件.3.将几个文件合并为一个文件: $cat file1 file2 > filetail -n 1

2017-02-07 12:01:52 640

转载 关于直播,所有的技术细节都在这里了

前言:网络视频直播存在已有很长一段时间,随着移动上下行带宽提升及资费的下调,视频直播被赋予了更多娱乐和社交的属性,人们享受随时随地进行直播和观看,直播的打开时间和延迟变成了影响产品功能发展重要指标。 注:本文是以原文为主体,加上我自己的一些总结和补充写的那么,问题来了: 如何实现低延迟、秒开的直播?先来看看视频直播的5个关键的流程:   录制->编码->

2017-02-06 15:21:02 2887

转载 Nginx学习之十-超时管理(定时器事件)

Nginx事件管理主要是网络事件和定时器事件。下面介绍定时器事件管理,即超时管理。为什么要进行超时管理Nginx有必要对可能发生超时的事件进行统一管理,并在事件超时时作出相应的处理,比如回收资源,返回错误等。举例来说,当客户端对nginx发出请求连接后,nginx机会accept()并建立对应的连接对象、读取额护短请求的头部信息。而读取这个头部信息显然是要在

2016-11-24 18:44:20 1266

转载 RTMP协议中的AMF数据

AMF数据第一个byte为此数据的类型,类型有:Number0×00double类型Boolean0×01bool类型String0×02string类型Object0×03object类型MovieClip0×04Not available in RemotingNull

2016-11-22 16:04:16 861

原创 nginx的时间管理机制

熟悉nginx的时间机制,主要从以下几点1)Linux系统时间相关函数2)nginx是怎么通过缓存时间变量减少gettimeofday系统调用,从而提高效率3)什么时候,怎么更新时间缓存的?1)Linux系统时间相关的库函数介绍char *asctime(const struct tm* timeptr);         //将结构中的信息转换为真实世界的时间,以字符串的形式

2016-11-18 11:49:04 4141

原创 ngx_linux_sendfile_chain

本函数功能:发送数据(两种发送方式内存发送和文件发送)内存发送和文件发送的区别:(writev和sendfile)1、文件发送的效率相对内存发送效率要高很多,效率主要高在少了内核层到用户态的拷贝,用户态到内核态的拷贝。直接在磁盘将数据从网卡发送出去2、通常的情况下,程序可能会在多个地方产生不同的bufferwritev是读取多个不连续的buffer然后集中写入。大并发服务器的时候这个效率还是很高的

2016-11-03 16:12:29 989

转载 3GP/MP4 视频文件格式解析及其播放原理(转)

视频文件格式解析之 3GP/MP41. 概述流行的文件格式背后都有大公司的支持。FLV得益于ADOBE公司推动的网络视频分享风潮,而AVI则是MICROSOFT首创的RIFF即视频和音频交 织在一起同步播放。 3GP/MP4是APPLE提出并得到ISO标准支持作为NOKIA等手机的默认视频格式。3GP是MP4格式在手机上的简化版。MP4的codec组合 一般是mpeg4

2016-10-08 12:19:18 9085 1

原创 nginx内存管理--大块内存空间申请 ngx_palloc_large

这里写代码片#if !NGX_DEBUG_POOLstatic void *ngx_palloc_large(ngx_pool_t *pool, size_t size){ void *p; ngx_uint_t n; ngx_pool_large_t *large; p = ngx_alloc(size, pool-

2016-05-26 09:12:57 1523 1

原创 vim的基本用法

vim的三种模式:编辑模式:按a,i,o,O都可以进入该模式选择模式:v命令模式:esc 删除:    x 删除某个字符    dw 删除单词,到空格为止   dd删除行保存:  w保存但不退出  qw保存并且退出 或者 shift+zz  拷贝  多行拷贝:v进入选择模式,箭头向上向下选中多行,y复制,p粘贴,大写在光标前面粘贴撤销恢复

2016-05-12 21:45:41 336

转载 nginx的配置文件解析:ngx_conf_read_token函数

该函数获取配置文件nginx.conf中的配置行或者配置块起始处的token.将这些token放在cf->args动态数组中, 并返回这些token所在配置文件中的位置. 例如一个配置行的话. 就返回NGX_OK. 配置行以分号结尾. 如果是一个配置块的起始处, 即以'{'结尾, 则返回NGX_CONF_BLOCK_START.对于token的定义为: 连续非空白字符. 单双引号包围的字符

2016-05-12 10:26:28 2688

音视频编解码.pdf

介绍各种编解码原理介绍例如h.263,h.264, mpeg-2,mpeg-4等。

2019-06-11

CDN技术详解.pdf

主要介绍CDN的发展历史,负载均衡,缓存技术

2019-06-11

jQuery电子文档

jQuery电子书版本的学习文档,适合初学者学习

2013-03-25

图书管理系统

基于J2EE环境下图书管理系统的开发,该系统为平时作业训练

2013-03-25

数据流图—图书管理系统

平时考试作业或者是软件工程导论数据流图的分析设计

2012-11-22

J2EE开发UML课件

基于J2EE开发,UML设计的课件基本知识,里面有UML的各种建模图的详细介绍

2012-11-22

网页设计图片循环滚动代码.doc

html网页界面设计,关于图片循环滚动扥源代码

2012-11-22

网页制作基本素材

web网页制作的一些基本源代码 包过html标签的应用,CSS,div的一些用法还有javascript的经典用法

2012-11-06

空空如也

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

TA关注的人

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