WebRTC线程模型

在介绍WebRTC的线程模型之前,先介绍Webrtc线程模型中用到的几个简单、常用的模块或函数。 一、 设置线程名12345678910111213141516171819202122//platform_thread.ccvoid SetCurre...

音视频编程

Janus的编译部署及配置

Janus是一个开源的 WebRTC SFU 服务器,可以作为 WebRTC 的一个端将其收到的数据进行转发,同时提供了一些的控制能力。Janus 是基于插件架构的,其功能都是通过一个个插件来提供,我们可以为 Janus 开发插件,来扩展其功能。

音视频编程

WebRTC添加选择音频输入输出设备功能

我们先来看看 WebRTC 中提供音频设备输入输出功能的类结构:

音视频编程

WebRTC在直播领域应用的可行性分析

一、目前流行的直播技术架构目前主流的直播方案一般采用RTMP架构,首先客户端采集音视频流(如obs studio客户端),然后通过 RTMP 协议将流推到流媒体服务器,最后流媒体服务器将流处理后分发给各个直播客户端。

音视频编程

如何搭建WebRTC的TURN服务器

本文讲解如何在 Ubuntu 系统上采用coturn搭建 p2p 打洞服务器,coturn 是一个开源的 stun 和 turn 服务器实现。

音视频编程

WebRTC的三种架构

WebRTC 是基于 P2P 的实时通信技术,(如果 P2P 打洞失败,则会使用 TURN 服务器进行数据转发),在有 2 台客户端参与的情况下,网络拓扑结构如图:

音视频编程

Windows平台编译WebRTC源码

写作本文时使用的 webrtc 版本为:branch heads/67 一、 准备工作1.0 请确保可以访问国外网站1.1 系统语言切换到英文系统 Windows 7/10 都可以,在“控制面板”–>”区域和语言”–>”管理”–>”更改系统区域设置”中切换到“英语(美国)”,然后重启系统。

音视频编程

WebRTC官方示例apprtc搭建

系统环境 Ubuntu 16.04,在搭建之前建议关闭系统防火墙。 一. 房间服务器搭建1.1 安装依赖程序1apt-get install git unzip lrzsz nodejs npm automake autoconf libto...

音视频编程

初识WebRTC

WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC包含的这些标准使用户在无需安装任何插件或者第三方的软件的情况下,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能。 它并不是单一的协议,包含了媒体、加密、传输层等在内的多个协议标准以及一套基于 JavaScript 的 API。通过简单易用的 JavaScript API ,在不安装任何插件的情况下,让浏览器拥有了 P2P音视频和数据分享的能力。同时WebRTC 并不是一个孤立的协议,它拥有灵活的信令,可以便捷的对接现有的SIP 和电话网络的系统。 不同技术领域的人都可以从WebRTC中获取到需要的东西。

音视频编程

SDP格式解析

会话描述协议(Session Description Protocol 或简写 SDP)描述的是流媒体的初始化参数。此协议由 IETF 发表为 RFC 2327。 SDP 完全是一种会话描述格式,它不属于传输协议。 SDP 用于描述多媒体通信会话,包括会话建立、会话请求和参数协商。SDP 不用于传输媒体数据,只能用于两个通信终端的参数协商,包括媒体类型、格式以及所有其他和会话相关的属性。SDP 以字符串的形式描述上述初始化参数。

音视频编程

C++ 匿名对象

在WebRTC的源码中有如下函数: 1234template <typename T>std::unique_ptr<T> WrapUnique(T* ptr) { return std::unique_ptr<T>(ptr);}

C++语言

P2P及NAT穿透技术介绍

一、 P2P(peer to peer)P2P 是一个“点对点传输技术”,也就是 2 台计算机之间不需要第三台机器作为服务端就能实现数据的传输。每台计算机即是客户端又是服务端。如果每台计算机都有自己的独立的公网 IP,那么 P2P 技术就比较好实现了,但是现实中由于 NAT 的存在,使得 P2P 技术最大的难点就在于穿越 NAT 的限制,俗称“打洞”。

音视频编程