自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

郑亚帅

热爱编程,享受生活!

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

转载 Licode(一):入门介绍

什么是webrtc?WebRTC(Web Real-Time Communication)是一个开源项目(2010年5月,Google以6820万美元收购VoIP软件开发商Global IP Solutions的GIPS引擎,并改为名为“WebRTC”),旨在让Web开发者能够基于Web浏览器轻易快捷开发出丰富的实时多媒体应用,而无需下载安装任何插件,Web开发者也无需关注多媒体的数字信号

2016-12-30 11:18:21 21252 1

转载 Licode(二):Nuve源码分析

Licode(二):Nuve源码分析Licode的Nove组件旨在对服务端资源进行管理(CRUD),服务端资源包括:会议房间(videoconference rooms)、加入凭证(tokens)、参与用户(User)。Nuve组件的gitHub地址:https://github.com/ging/licode/tree/master/nuve,官方对Nuve的说明如下:Devel

2016-12-30 11:16:54 7017

转载 Android之WebRTC介绍

WebRTC被誉为是web长期开源开发的一个新启元,是近年来web开发的最重要创新。WebRTC允许Web开发者在其web应用中添加视频聊天或者点对点数据传输,不需要复杂的代码或者昂贵的配置。目前支持Chrome、Firefox和Opera,后续会支持更多的浏览器,它有能力达到数十亿的设备。然而,WebRTC一直被误解为仅适合于浏览器。事实上,WebRTC最重要的一个特征是允许本地和web

2016-12-29 17:43:22 643

转载 Nodejs Native AddOn的编写

本文地址 http://blog.csdn.net/wangjia184/article/details/18940165如果要在nodejs中调用动态链接库中的导出方法,或者从动态链接库中回调nodejs中的某个方法,可以采用 node-ffi(https://github.com/rbranson/node-ffi )。不过我试了很久都没有成功,貌似ffi对于回调的支持有问

2016-12-28 13:50:56 1381

转载 STUN/TURN/ICE协议在P2P SIP中的应用(二)

1       说明2       打洞和穿越的概念... 13       P2P中的打洞和穿越... 24       使用STUN系列 协议穿越的特点... 25       STUN/ TURN/ICE协议的关系... 36       STUN协议(RFC 5389) 3        6.1             为什么会用到STUN协

2016-12-27 15:45:33 399

转载 STUN/TURN/ICE协议在P2P SIP中的应用(一)

1           说明       本文详细描述了基于STUN系列协议实现的P2P SIP电话过程,其中涉及到了SIP信令的交互,P2P的原理,以及STUN、TURN、ICE的协议交互       本文所提到的各个服务单元的交互均使用UDP,不涉及TCP的打洞及其他和TCP相关的操作。       本文假设通信双方均没有防火墙对协议以及端口的限制。      

2016-12-27 15:44:08 399

转载 netstat的10个基本用法

Netstat 简介Netstat 是一款命令行工具,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字。如果你想确认系统上的 Web 服务有没有起来,你可以查看80端口有没有打开。以上功能使 netstat 成为网管和系统管理员的必备利器。在这篇教程中,我会列出几个例子,教大家如何使用 netst

2016-12-27 15:35:47 240

翻译 licode API (译文)

概览:Api在浏览器中使用,作为一种javascript文件提供使用,可以在你的web应用中直接调用。典型的使用组合:想要连接的房间,使用后端函数,管理本地音视频,客户端事件管理等等。客户端API类列表类名描述Erizo.Stream在LicodeRoom提供本地和远程视频流,音频流和数据流Erizo.Room

2016-12-26 15:38:09 3767

转载 解决外网向内网通信方案--NAT穿透技术详解

在网络编码中会发现程序在局域网中是可以适用的,但是在外网与内网之间和内网与内网之间就不可行。问题就在于NAT。首先介绍下NAT。 NAT的作用NAT(Network Address Translator),网络地址转换。顾名思义,它是一种把内部私有网络IP地址翻译成公有网络IP地址的技术,如图5-1所示。NAT是在IP地址日益缺乏的情况下产生的,它的主要目的是使地址能够重用[9]。 

2016-12-26 14:08:11 1129

转载 ffmpeg常用基本命令(转)

ffmpeg常用基本命令(转)【FFmpeg】FFmpeg常用基本命令1.分离视频音频流ffmpeg -i input_file -vcodec copy -an output_file_video  //分离视频流 ffmpeg -i input_file -acodec copy -vn output_file_audio  //分离音频流 2.视频解复用

2016-12-23 18:49:22 241

转载 用ffmpeg拉流HLS转推至nginx-rtmp-module没有声音的问题

命令行很简单,如下ffmpeg -re -analyzeduration 8000 -probesize 200000 -i http://ip1/test.m3u8 -strict -2 -c:v copy -c:a copy -bsf:a aac_adtstoasc -f flv rtmp://ip2/test/1从ip1所在的服务器拉一路HLS直播流,转推给ip2所在的服务器上的

2016-12-23 18:48:10 3642

转载 ffmpeg常用基本命令(转)

ffmpeg常用基本命令(转)【FFmpeg】FFmpeg常用基本命令1.分离视频音频流ffmpeg -i input_file -vcodec copy -an output_file_video  //分离视频流 ffmpeg -i input_file -acodec copy -vn output_file_audio  //分离音频流 2.视频解复用

2016-12-23 17:49:30 198

转载 ffmpeg常用基本命令(转)

ffmpeg常用基本命令(转)【FFmpeg】FFmpeg常用基本命令1.分离视频音频流ffmpeg -i input_file -vcodec copy -an output_file_video  //分离视频流 ffmpeg -i input_file -acodec copy -vn output_file_audio  //分离音频流 2.视频解复用

2016-12-23 17:47:49 289

转载 基于python+ffmpeg的视频并发直播压力测试

通过Python与ffmpeg结合使用,可生成进行视频点播、直播的压力测试脚本。可支持不同类型的视频流,比如rtmp或者hls形式。 通过如下方式执行脚本:python multiRealPlay.py [rtmp|http] [thread counts] [interval Time] [rtmp | http]:视频播放的不同形式 [thread counts]:并发线程数 

2016-12-23 17:46:11 4352

转载 RTCP协议详解

2.3. RTCP的封装RTP需要RTCP为其服务质量提供保证,因此下面介绍一下RTCP的相关知识。RTCP的主要功能是:服务质量的监视与反馈、媒体间的同步,以及多播组中成员的标识。在RTP会话期 间,各参与者周期性地传送RTCP包。RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,各参与者可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和R

2016-12-23 14:57:32 527

转载 WebRTC中丢包重传NACK实现分析

在WebRTC中,前向纠错(FEC)和丢包重传(NACK)是抵抗网络错误的重要手段。FEC在发送端将数据包添加冗余纠错码,纠错码连同数据包一起发送到接收端;接收端根据纠错码对数据进行检查和纠正。RFC5109[1]定义FEC数据包的格式。NACK则在接收端检测到数据丢包后,发送NACK报文到发送端;发送端根据NACK报文中的序列号,在发送缓冲区找到对应的数据包,重新发送到接收端。NACK需要发送端

2016-12-21 15:18:14 1400

转载 WebRTC中RTP/RTCP协议实现分析

一 前言RTP/RTCP协议是流媒体通信的基石。RTP协议定义流媒体数据在互联网上传输的数据包格式,而RTCP协议则负责可靠传输、流量控制和拥塞控制等服务质量保证。在WebRTC项目中,RTP/RTCP模块作为传输模块的一部分,负责对发送端采集到的媒体数据进行进行封包,然后交给上层网络模块发送;在接收端RTP/RTCP模块收到上层模块的数据包后,进行解包操作,最后把负载发送到解码模块。

2016-12-21 15:01:13 851

转载 WebRTC Native APIs

The WebRTC Native APIs implementation is based on W3C’s WebRTC 1.0: Real-time Communication Between Browsers.The code that implements WebRTC Native APIs (including the Stream and PeerConnection AP

2016-12-21 12:19:00 597

转载 WebRtc 音频引擎-linux demo

Google收购了著名的音频技术公司GIPS后,基于其强大的音频技术,实现了WebRtc的Voice Engine,即语音处理引擎。本文主要介绍WebRTC 中Voice Engine中音频技术相关的实现,并结合具体实例,介绍如何利用voice engine实现自己的VoIP音频处理引擎。本文主要介绍如何在linux下搭建一个可以自己调试的基于WebRTC的voiceEngine。

2016-12-09 14:25:25 969

转载 WebRTC VoiceEngine综合应用示例(二)——音频通话的基本流程

下面将以实现一个音频通话功能为示例详细介绍VoiceEngine的使用,在文末将附上相应源码的下载地址。这里参考的是voiceengine\voe_cmd_test。第一步是创建VoiceEngine和相关的sub-apis[cpp] view plain copy //      // Create VoiceEngine relate

2016-12-09 13:50:46 421

转载 WebRTC VoiceEngine综合应用示例(一)——基本结构分析

把自己这两天学习VoiceEngine的成果分享出来,供大家参考,有什么问题也欢迎大家指出,一起学习一起进步。本文将对VoiceEngine的基本结构做一个分析,分析的方法是自底向上的:看一个音频编码器是如何一层层被封装到VoiceEngine中的。首先我们来看一下VoiceEngine的核心API,基本上就在webrtc\voiceengine\include的几个头文件中了。具体来

2016-12-09 13:50:45 398

转载 WebRTC VideoEngine综合应用示例(三)——集成X264编码和ffmpeg解码

总述在前一篇文章中,讲解了如何将OPENH264编解码器集成到WebRTC中,但是OPENH264只能编码baseline的H264视频,而且就编码质量而言,还是X264最好,本文就来讲解一下如何将X264编码器集成到WebRTC中,为了实现解码,同时要用到ffmpeg。总体流程和之前一样,分为重新封装编解码器和注册调用两大步骤,注册调用这一步没有任何不同,主要是重新封装这一步骤有较大区别。

2016-12-09 13:26:27 362

转载 WebRTC VideoEngine综合应用示例(二)——集成OPENH264编解码器

总述WebRTC原生支持VP8和VP9,但也可以自行集成H264编解码器,比较常见的是OPENH264和X264(X264自身只有编码功能,如果要加入解码功能,可以再结合ffmpeg),总体来说,集成H264编解码器的流程和直接使用它们的库的流程类似,但是要先将相应功能依照WebRTC中对编解码器的封装形式重新封装,然后再通过注册外部编解码器的方法在主流程中使用它们。下面先看一下WebRT

2016-12-09 13:25:07 561

转载 WebRTC VideoEngine综合应用示例(一)——视频通话的基本流程

WebRTC技术的出现改变了传统即时通信的现状,它是一套开源的旨在建立浏览器端对端的通信标准的技术,支持浏览器平台,使用P2P架构。WebRTC所采用的技术都是当前VoIP先进的技术,如内部所采用的音频引擎是Google收购知名GIPS公司获得的核心技术:视频编解码则采用了VP8。大家都说WebRTC好,是未来的趋势,但是不得不说这个开源项目对新手学习实在是太不友好,光是windows平台下的

2016-12-09 13:23:30 528

转载 WebRTC源码分析四:视频模块结构

本文在上篇的基础上介绍WebRTC视频部分的模块结构,以进一步了解其实现框架,只有了解了整体框架结构,对局部算法修改才能够胸有成竹。一、对外接口       对外接口有ViEBase,ViECapture,ViECodec,ViEEncryption,ViEFile,ViEImageProcess,ViENetwork,ViERender和ViERTP_RTCP。主要接口有:1)ViE

2016-12-09 13:21:50 267

转载 WebRTC源码分析三:视频处理流程

文本介绍视频的处理流程。图1中显示了两路视频会话视频信号流过程。图1 视频流程示意图以一路视频会话为例,主要分为以下几个线程:1)视频源产生线程:Camera生产视频画面,封装成视频帧,以一定帧率投递到下一个模块。;2)采集线程:由Capturer负责采集视频帧,并对视频帧进行一定处理,如调整画面亮度。并送入各个发送链路的编码模块编码并发送出去;3)接收线程:R

2016-12-09 13:20:56 260

转载 WebRTC源码分析二:音频模块结构

本文介绍WebRTC音频模块组成和结构,详细介绍音频引擎的配置和启动,相信看完本文后,很多人可以利用WebRTC完成一个音频通话程序开发。一、对外接口      音频部分的对外主要接口如下,各个接口之间的关系如图1所示。1)VoiceEngine:负责引擎的所有接口查询,存储共享数据信息ShareData。2)VoEBase:负责音频处理的基本操作。3)VoEAudioProc

2016-12-09 13:20:10 287

转载 WebRTC源码分析一:音频处理流程

本文概要介绍WebRTC的音频处理流程,见下图:webRTC将音频会话抽象为一个通道Channel,譬如A与B进行音频通话,则A需要建立一个Channel与B进行音频数据传输。上图中有三个Channel,每个Channel包含编解码和RTP/RTCP发送功能。以一个Channel而言,应用程序中将包含三个活动线程,录音线程,音频接收线程和播放线程。1)录音线程:负责麦克风音频的

2016-12-09 13:19:14 490

转载 WebRTC代码目录结构

├── ./base  //基础平台库,包括线程、锁、socket等├── ./build //编译脚本,gyp├── ./common_audio  //基础公共的音频处理│   ├── ./common_audio/include  //就一个类型转换头文件│   ├── ./common_audio/resampler    //音频重采样代码│   ├── ./comm

2016-12-08 19:45:49 892

转载 WebRTC通信流程

WebRTC是HTML5支持的重要特性之一,有了它,不再需要借助音视频相关的客户端,直接通过浏览器的Web页面就可以实现音视频对聊功能。而且WebRTC项目是开源的,我们可以借助WebRTC源码快速构建自己的音视频对聊功能。无论是使用前端JS的WebRTC API接口,还是在WebRTC源码上构建自己的对聊框架,都需要遵循以下执行流程: 上述序列中,WebRTC并不提供Stun服务

2016-12-08 15:14:23 666

原创 libjingle 部分(P2P传输)

1, libjing 基本结构。下图仅描述视频部分的传输,音频部分有所不同,但是基本结构类似。图中虚线表示媒体数据流向。VideoCapture: 视频捕捉功能抽象, 通过SignalVideoFrame信号传输捕捉的Frame数据。MediaChannel: 媒体相关功能的抽象,接收capture/network的数据,处理后发送给其他模块。实际的处理工作需要有继承类调用其他模块实现

2016-12-08 15:11:34 1047

转载 NAT与NAT穿透(二)

5. NAT穿透5.1 转发     最可靠但又是最低效的点对点通信方法,莫过于将p2p网络通信看作一个C/S结构,通过服务器来转发信息.如下图,两个客户端A和B,均与服务器S初始化了一个TCP或UDP连接,服务器S具有公网固定IP地址,两个客户端分布在不同的私网中,这样,他们各自的NAT代理服务器将不允许他们进行直连.                                 

2016-12-08 14:46:01 290

转载 NAT与NAT穿透(一)

1. NAT简介前面的文章说到了针对IP不足的许多技术,但这些技术基本都不会增加可用的IP地址数.NAT(Network Address Translation)又称"网络地址转换",它是一种把内部私有网络地址翻译成合法网络IP地址的技术,个人认为该技术是解决IP地址不足最有效的方法.它是一个IETF(Internet Engineering Task Force,Internet工程任务组)

2016-12-08 14:44:55 654

空空如也

空空如也

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

TA关注的人

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