自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xiaowei的专栏

Multimeida Engineer

  • 博客(83)
  • 收藏
  • 关注

原创 webrtc 学习要点

总结一下webrtc的关键技术,如果搞懂了以下问题,webrtc应该算基本掌握了1. 通话建立的大概流程。 a)收集建立点对点的 IP candidates (local, srvReflex, relay),用于建立UDP 发送路径 b ) 收集端支持的media info,及相关feature支持特性,构建SDP c ) 通过第三方信令服务器转发SD...

2018-03-07 17:25:22 515

原创 ffmepg 音频重采样

因为业务需要,直播推流过程中,pcm的音频需要从48k采样率,重采样到44.1k,然后再编码程aac,封装成rtmp推送出去。这里只描述如何做pcm数据的重采样。 整个过程中,音频输入:PCM/S16/48000/2 重采样输出: PCM/S16/441000/2,每一帧输入是10ms的samples。 具体处理函数如下:步骤1:定义基本的处理函数和相关结构体 #include <libswresample/swresample....

2020-05-16 20:16:58 422

转载 流媒体服务器原理和架构解析

原文: https://blog.csdn.net/xuheazx/article/details/52020933多媒体数据文件一个完整的多媒体文件是由音频和视频两部分组成的,H264、Xvid等就是视频编码格式,MP3、AAC等就是音频编码格式,字幕文件只是附加文件。目前大部分的播放器产品对于H.264 + AAC的MP4编码格式支持最好,但是MP4也有很多的缺点,比如视频header很大,影...

2020-05-13 10:26:16 2512

原创 windows下使用camera (ffmpeg dshow方式)

方法概要:先读取camera支持的mode,然后用ffmpeg dshow打开camera并解码压缩流一. 用相关代码读取本地camera当前支持的输出mode,方便后续选择mode来打开camera:bool EnumerateCameras(vector<int>& camIdx){ camIdx.clear(); struct CapDriver { int enumValue; string enumName; string comme...

2020-05-13 10:13:56 2944

原创 windows下使用camera(opencv方式)

一. opencv支持读取摄像头,支持视频录制或显示, 具体代码 //1. 初始化视频录制文件 String recFileName = std::to_string(count) + "_rec.avi"; int wfourcc = VideoWriter::fourcc('M', 'J', 'P', 'G'); writer = VideoWriter(recFileName, wfourcc, CAP_FPS, Size(CAP_WIDTH, CAP_HEIG...

2020-05-13 10:02:45 1960

原创 ffmpeg监听和接收rtp音视频流

在网上找了一圈关于ffmpeg如何接收rtp流的Example,都是使用ffmpeg 命令行来实现的,还没看到用相关ffmpeg库和API来实现的,于是自己写了个小程序,来验证ffmpeg在本地监听rtp流,代码在ffmpeg4.1+win10环境下测试可行: 有几个关键点: 1)需要提供video/audio sdp信息,用于描述基本媒体信息 ...

2020-01-13 13:37:43 5713

转载 H264 Annex B 与 AVCC的区别

本文链接:https://blog.csdn.net/Romantic_Energy/article/details/50508332 首先要理解的是没有标准的H.264基本流格式。文档中的确包含了一个Annex,特别是描述了一种可能的格式Annex B格式,但是这个并不是一个必须要求的格式。标准文档中指定了视频怎样编码成独立的包,但是这些包是怎样存储和传输的却是开放的。一. ...

2019-11-21 18:53:20 7136

转载 KCP传输原理

来自:https://wetest.qq.com/lab/view/391.html?from=coop_gad1 简介KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,以 callback的方式提供给 KCP。...

2019-05-23 17:53:42 17907 1

转载 WebRTC56版本SDP详细解析

http://blog.csdn.net/onlycoder_net/article/details/76702432v=0//sdp版本号,一直为0,rfc4566规定o=- 7017624586836067756 2 IN IP4 127.0.0.1// RFC 4566 o=&lt;username&gt; &lt;sess-id&gt; &lt;sess-version&gt; &lt;n...

2018-07-05 14:50:36 279

原创 私钥和证书的创建方法

方法一:(http://blog.csdn.net/fenglibing/article/details/8610280)1、使用OpenSSL生成私钥  常用的生成算法有RSA及DSA,RSA生成的私钥可以用来加密以及签名,而DSA生成的私钥只可以用来签名  1.1)、RSA算法生成key的示例  openssl genrsa -des3 -out privkey.pem 2048    gen...

2018-03-15 13:49:31 2606

转载 WebRTC视频接收缓冲区基于KalmanFilter的延迟模型

转载: https://www.jianshu.com/p/bb34995c549a在WebRTC的视频处理流水线中,接收端缓冲区JitterBuffer是关键的组成部分:它负责RTP数据包乱序重排和组帧,RTP丢包重传,请求重传关键帧,估算缓冲区延迟等功能。其中缓冲区延迟JitterDelay对视频流的单向延迟有重要影响,很大程度上决定着应用的实时性。本文不打算全面分析接收端缓冲区的实现细节,只...

2018-03-01 13:56:21 1900

转载 WebRTC的拥塞控制技术

转载: https://www.jianshu.com/p/9061b6d0a9011. 概述对于共享网络资源的各类应用来说,拥塞控制技术的使用有利于提高带宽利用率,同时也使得终端用户在使用网络时能够获得更好的体验。在协议层面上拥塞控制是TCP的一个总要的组成部分;但是对于非面向链接的传输层协议,如UDP,其在协议层面上并没有对拥塞控制进行强制性的要求,这样做保证了最优的传输性能,且在拥塞控制的设...

2018-03-01 12:02:24 567

原创 ffmpeg常见视频操作

ffmpeg版本号 3.1.2,以下操作都是亲自实践过:1. 推流到rtmp服务器 ffmpeg -re -i BigBuckBunny.mp4 -c copy -f flv rtmp://10.15.40.2/liveshow/test2. 从rtmp服务器dump文件 ffmpeg -i rtmp://10.15.40.5/liveshow/pc_pc_fo...

2018-02-06 20:48:03 1635

转载 音频自动增益(AGC)

转自: http://blog.sina.com.cn/s/blog_14b0817cb0102vykw.html当有对语音的响度进行调整的需要时,就要做语音自动增益(AGC)算法处理,当你在跟远方的朋友进行语音交流时,背后都有这个算法在默默的工作,如大名鼎鼎的QQ聊天软件、做语音起家的YY等,语音聊天时都会用到这个算法。最简单的硬性增益处理是对所有音频采样乘上一个增益因子,它也等同于在频域每个频...

2017-11-15 12:41:53 20777 1

原创 各种排序算法总结

/* Created by vencent on 2008.8.29 *//* 本文件列出了各种排序方法:1.插入排序1.1 一般插入排序 InsertSort(int* array, int length)1.2 折半插入排序 BinInsertSort(int* array, int length)1.3 希尔排序     ShellSort(int* array,

2017-10-10 16:45:47 285

原创 安装tensorflow1.2

centos7下安装tensorflow1. 安装相关库:     yum install -y python python-devel python2-pip    pip install wheel pillow    下载安装并安装:bazel-0.5.2-installer-linux-x86_64.sh2. 下载tensorflow代码:    git clone https://git...

2017-07-14 17:09:14 5346

转载 为啥显示器用RGB而打印机用CMYK

可见光是电磁波的一种,只要是波长在380纳米到740纳米之间(有多种说法,但大致都在这个范围附近)的电磁波就可以被人眼所感受,成为可见光。     人眼里有三种可以产生颜色感觉的神经细胞,分别对于波长在420纳米、534纳米、564纳米这三个值附近的光线最敏感,会让大脑分别产生蓝、绿、红三种颜色感觉。而如果蓝绿两种感受细胞同时受刺激,就产生了青色的感觉;同理,蓝红产生品红色,绿红产生黄色。而如

2017-07-05 11:30:36 3235

原创 webrtc 视频通话质量的评价方法

webrtc 视频通话质量的评价方法(待完善)评价内容:  视频通话画面质量基本KPI包括:PSNR,时延,丢帧,抖动等评价方法:  step1. 发送端和接收端视频帧信息采集     a. YUV frame dump:webrtc中,encoder之前及decoder之后,有提供专门的callback函数,用来对YUV frame做处理,这里只需将YUV保存到本地文件即可     b. fra...

2017-06-19 19:28:52 2141

原创 希腊字母简表

希腊字母简表字母名称国际音标大写字母小写字母字母名称国际音标大写字母小写字母alpha/'ælfə/Ααnu/nju:/Ννbeta/'bi:tə/

2017-05-27 18:04:06 754

转载 人工智能学习方法

转自:https://www.zhihu.com/question/49909565李嘉璇《TensorFlow技术解析与实战》作者。深度学习研发298 人赞同了该回答我明白很多入门深度学习者的疑惑。因为当初,我也是关注着这个问题进来的。其实,我在《TensorFlow技术解析与实战》当

2017-05-26 15:28:12 21096

原创 创建openssl pfx证书文件

1、生成key输入genrsa -out openssl.key 1024生成openssl.key文件。openssl.key为key的名字随意起,1024为密钥长度2、生成cer证书接着输入req -new -x509 -key openssl.key -out openssl.cer -days 3650 -subj /CN=***.websi

2017-05-23 14:59:54 13550

原创 世界标准时间(UTC) 常识

UTC是老的世界时和原子时协调出来的,GMT以前就是世界时而现在变成了时区的概念,UTC现在是民用时间基础,互联网设备通过NTP来和UTC时间对齐

2017-05-03 13:38:54 18019

原创 haproxy开启日志

Centos7.2下配置haproy日志:1.   haproxy.conf 配置:  global     # 配置local2事件    log    127.0.0.1  local22.  编辑/etc/rsyslog.conf  a) 开启514 UDP监听       # Provides UDP syslog reception       $ModLoad imudp       ...

2017-05-02 19:36:50 3534

转载 iptables 简易理解

Netfilter包含有三种表,三种表下共包含有五种链,链下面包含各种规则。即表包含若干链,链包含若干规则。(一)三种表为:filter   nat  mangle 1、filter:处理与本机有关的数据包,是默认表,包含有三种链:input   output forward 2、nat表:与本机无关。主要处理源与目的地址IP和端口的转换。有三种链:prerou

2017-01-23 10:43:55 592

转载 iptables防火墙原理详解

Home  Archives  Tags  Searchiptables防火墙原理详解Posted on 2014-02-23   |   In Linux   |   3条评论1. netfilter与iptablesNetfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架,该框架既简洁又灵活,

2017-01-13 11:41:38 371

转载 RTP音视频同步中NTP的作用

多媒体通信同步方法,主要有时间戳同步法、同步标记法、多路复用同步法三种。下面主要讨论时间戳同步法,特别是RTP时间戳同步。内容包括RTP媒体间同步的实现,为什么需要RTCP的NTP时间来实现媒体间同步?没有RTCP,能实现RTP媒体间的同步吗?DirectShow时间戳和RTP时间戳的区别,MPEG2-TS流的时间戳等。本文只简单讨论时间戳同步的原理,不涉及具体的实现方法,如音频帧和视频帧时间戳的

2016-12-28 11:15:20 2467

转载 出现23.97帧率的原因

http://raytao.lofter.com/post/3d177_185a386关于那些“格(Frame)”不得不说的事今天早上,鄙人在社交网络发了这一系列的问题:请解释以下名词之间的关系或差异。帧,格,帧率,时基,升格,降格;Timecode、frame、fps、3:2 pulldown……以上这些内容绝非无聊之举。实际是有鉴于这半年以来,工

2016-11-30 14:43:44 8085

转载 WebRTC 音视频同步方法

016-11-25 doraWebRTC编风网WebRTC编风网来源:编风网作者:weizhenwei,编风网专栏作家   音视频同步事关多媒体产品的最直观用户体验,是音视频媒体数据传输和渲染播放的最基本质量保证。音视频如果不同步,有可能造成延迟、卡顿等非常影响用户体验的现象。因此,它非常重要。一般说来,音视频同步维护媒体数据的时间线顺序,即发送端在某一时刻采集的音视频

2016-11-30 14:03:07 2584 2

原创 linux sed用法

linux之sed用法sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法sed命令行格式为:         sed [-nefri] ‘command’ 输入文本        常用选项:        -n∶使用安静(silent)模式。在一般 s

2016-11-09 10:16:40 319

原创 经典排序算法代码

总结以前学数据结构的排序算法,都亲自测试通过:/* 本文件列出了各种排序方法:1.插入排序1.1 一般插入排序 InsertSort(int* array, int length)1.2 折半插入排序 BinInsertSort(int* array, int length)1.3 希尔排序     ShellSort(int* array, int length)2.

2016-11-05 21:41:22 796

原创 Node.js Event-loop事件循环

node.js事件循环Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高。Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用,并处理并发。Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现。

2016-11-02 21:17:12 1706

转载 VIM常用用法

vim 选择文本,删除,复制,粘贴  文本的选择,对于编辑器来说,是很基本的东西,也经常被用到,总结如下:v    从光标当前位置开始,光标所经过的地方会被选中,再按一下v结束。 V    从光标当前行开始,光标经过的行都会被选中,再按一下V结束。 Ctrl + v   从光标当前位置开始,选中光标起点和终点所构成的矩形区域,再按一下Ctrl + v

2016-11-01 19:43:40 262

原创 shell:字符串截取方法总结

shell中截取字符串的方法有很多中,${expression}一共有9种使用方法。${parameter:-word}${parameter:=word}${parameter:?word}${parameter:+word} 上面4种可以用来进行缺省值的替换。${#parameter}上面这种可以获得字符串的长度。 ${parameter%word} 最小限

2016-10-26 15:59:15 358

原创 SIP服务器开发关注点

大规模高并发下sip服务器搭建,需要考虑的事情,先简单罗列,有空扩展1. 安全和认证2. sip注册,心跳保活优化3. 单聊,群聊的状态抽象和维护4. 同一账号多端支持 Android/iOS/PC5. 服务器集群搭建,集群间负载均衡和用户状态同步6. 客户端连接或状态的异常处理7. 支持iOS消息推送8. 特殊应用需求,例如单聊转群聊支持,桌面共享等相关特殊m

2016-10-24 17:17:54 390

转载 http认证原理和https

一.基础介绍        在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。        Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。http的连接很简单,是无状态的。 

2016-10-24 15:18:11 2331

转载 https原理:证书传递、验证和数据加密、解密过程解析

https原理:证书传递、验证和数据加密、解密过程解析标签: https加密证书解密2014-03-26 15:10 28045人阅读 评论(8) 收藏 举报 分类:服务器/架构(6)  网络/网络安全/缓存/消息队列(15) 目录(?)[+]写的太好了,就是我一直想找的内容,看了这个对https立马明白多了h

2016-10-24 14:48:37 444

转载 闲说HeartBeat心跳包和TCP协议的KeepAlive机制

很多应用层协议都有HeartBeat机制,通常是客户端每隔一小段时间向服务器发送一个数据包,通知服务器自己仍然在线,并传输一些可能必要的数据。使用心跳包的典型协议是IM,比如QQ/MSN/飞信等协议。学过TCP/IP的同学应该都知道,传输层的两个主要协议是UDP和TCP,其中UDP是无连接的、面向packet的,而TCP协议是有连接、面向流的协议。所以非常容易理解,使用UDP协议的

2016-10-17 21:23:14 456

原创 ssh 远程执行命令操作

target_ips=('10.15.241.21''10.15.241.22''10.15.241.23''10.15.241.24''10.15.241.25');function setupOneTarget(){   index=$1;   current_ip=${target_ips[$index]};   echo try to set

2016-08-24 11:46:31 2358

原创 linux网络监控常见命令

1. iftop -i eth1    查看网卡inteface上流量2. iftop -P -n -N -i eth1   查看某端口的流量3. netstat -ap | grep 8080   查看8080端口占用情况4. 网络带宽测速  UDP测速:服务器端:iperf -u -s ;客户端 iperf -u -c 192.168.1.1 -b 100M -i 1 -d   TCP测速:服...

2016-05-10 19:59:50 906

原创 Centos7配置本地Yum

我们经常在安装完Centos后,需要安装些软件包,但有时遇到网络故障,或者网速太慢,软件下载是个大问题。如果我们能用OS的镜像在制作Yum repo,实现软件包本地下载,将极大提高工作效率。以下以centos7为例,以下脚本本人已测试可正常工作(需先下载centos7的安装镜像文件CentOS-7-x86_64-DVD-1511.iso)#! /bin/bash1. 挂载Centos7 ISO镜像...

2016-04-01 14:37:42 3089

空空如也

空空如也

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

TA关注的人

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