webrtc

音视频通信加餐 —— WebRTC一肝到底

最近需要搭建一个在线课堂的直播平台,考虑到清晰度和延迟性,我们一致认为使用 WebRTC 最合适。

原因有两点:首先是“点对点通信”非常吸引我们,不需要中间服务器,客户端直连,通信非常方便;再者是 WebRTC 浏览器原生支持,其他客户端支持也很好,不像传统直播用 flv.js 做兼容,可以实现标准统一。

然而令我非常尴尬的是,社区看了好几篇文章,理论架构写了一堆,但没一个能跑起来。WebRTC 里面概念很新也很多,理解它的通信流程才是最关键,这点恰恰很少有描述。

于是我就自己捣鼓吧。捣鼓了几天,可算是整明白了。下面我结合自己的实践经验,按照我理解的关键步骤,带大家从应用场景的角度认识这个厉害的朋友 —— WebRTC。…

    

什么是 STUN、TURN 和 ICE?

我们技术人员喜欢我们的首字母缩略词,但 ICE、STUN、TURN、TURN... 可能有点多。这些东西到底是什么?它们为什么存在,LiveSwitch 如何使用它们?本文的目的是揭开这些技术及其使用的神秘面纱。

最终,实时应用程序的目标是各种客户端之间的高吞吐量、低延迟通信,这些客户端可能(或可能不会)在限制性防火墙规则之后。这意味着以下网络通信协议的首选优先级:

  1. UDP - 直接在媒体流的源和目标之间。
  2. UDP - 媒体流的源和目标之间的间接(中继)。
  3. TCP - 通过 TCP 在媒体流的源和目标之间间接(中继)。
  4. TCP/TLS - 媒体流的源和目标之间的间接(中继),通过 TCP,具有额外的加密层。

什么是 STUN/TURN 服务器?

现实世界连接中的 WebRTC 通信需要处理多方呼叫并与 STUN 和 TURN 服务器交互。


我们的视频网关 (WebRTC)平台通过传输所有音频/视频/数据流,为所有客户提供先进的视频实时通信解决方案。通常,视频网关必须部署在公共互联网上,因此任何用户都必须通过 RTP(实时传输协议)端口连接和发送媒体片段,而不会出现特定的网络问题。

Ubuntu环境搭建Coturn(stun和turn服务器)

一、gitHub下载coturn源码

https://github.com/coturn/coturn.git

二、进入到源码目录,编译源码

./configure --prefix=/usr/local/coturn

2-1:编译异常

image.png

2-2:下载相关库文件:libevent和libssl

sudo apt-get install libssl-dev libevent-dev

2-3:编译通过

image.png

2-4:安装

make -j 4 
sudo make install

2-5:进入安装路径,查看相关文件

cd /usr/local/coturn

image.png

2-6:配置环境变量

vim ~/.bashrc
2-6-1:插入以下内容
export coturn_home=/usr/local/coturn
export PATH=$PATH:$coturn_home/bin
2-6-2:使配置的环境变量生效,执行以下命令
source ~/.bashrc

三、配置turnserver.conf

3.1修改配置文件

进入安装目录**(/usr/local/coturn)**下的etc文件件,里面会默认一个turnserver.conf.default,直接拷贝一份,命名为turnserver.conf,然后打开turnserver.conf,找到下面的内容,修改为自己的真实数据即可

    

WebRTC 终极指南

webrtc-图标  什么是 WebRTC?

Web 实时通信 (WebRTC) 既是一个开源项目,也是一个规范,它支持实时媒体通信,如语音、视频和数据在浏览器和设备之间的本地传输。这使用户无需复杂的插件或额外的硬件就可以在他们的主要 Web 浏览器中进行通信。

WebRTC 项目于 2011 年 5 月由 Google 首次宣布,作为开发一套通用协议的一种手段,用于在浏览器、移动平台和物联网设备中启用高质量的 RTC 应用程序。当时,Flash 和插件是提供实时通信的唯一方法。两年后,经过大量工作,Chrome 和 Firefox 之间建立了第一个跨浏览器视频通话。随着越来越多的组织增加对规范的支持,开发者社区对 WebRTC 的支持也随之飙升。今天,WebRTC 在 Chrome、Firefox、Safari、Edge、Android 和 iOS 中本地(不同程度地)可用,并且是一种广受欢迎的视频通话工具。…

    

技术解码 | 深入解析Web OBS的实现

Web 上实现直播推流的方式主要有两种,一种是通过 Flash 推流,一种是通过 WebRTC 推流。目前主流浏览器已经放弃了对 Flash 的支持,Chrome 从 88 版本开始彻底禁用了 Flash。因此,使用 WebRTC 进行直播推流成为了 Web 上最好的选择。

通过 WebRTC 可以让网站在不借助中间媒介的情况下,建立浏览器和浏览器、浏览器和服务器之间的点对点连接,实现视频流和音频流或者其他任意数据的传输。

用在直播的场景下,通过 WebRTC 推流,用户不需要借助 OBS 等推流软件,打开网页就可以发起直播。…

    

WebRTC 系列之视频辅流

作者:网易云信资深客户端开发工程师 陶金亮

近几年,实时音视频领域越来越热,业界很多音视频引擎都是基于 WebRTC 进行实现的。本文主要介绍 WebRTC 在视频辅流上的需求背景以及相关技术实现。

WebRTC 中的 SDP 支持两种方案: PlanB 方案 和 Unified Plan 方案。早期我们使用多PeerConnection的 Plan B 方案中只支持一条视频流发送,这条视频流,我们称之为”主流”。目前我们使用单 PeerConnection 的 Unified Plan 方案,新增一条视频辅流,何为视频”辅流”?视频辅流是指第二条视频流,一般用于屏幕共享。…

来自具有低延迟的 RTSP IP 摄像机的基于浏览器的 WebRTC 流

来自具有低延迟的 RTSP IP 摄像机的基于浏览器的 WebRTC 流

rtsp-低延迟-webrtc

据报道,如今已安装数亿台视频监控 IP 摄像机。当然,并非所有这些都需要低延迟视频播放。视频监控通常是静态的——流记录到存储中并被分析以检测运动。有很多软件和硬件视频监控解决方案可以很好地完成它们的工作。

在本文中,我们将介绍IP 摄像机的稍微不同的用法,即 -需要低延迟通信的应用程序中的在线广播。

首先,让我们来解决关于网络摄像头和 IP 摄像头的常见术语误解。

 

网络摄像头是一种没有自己的 CPU 和网络接口的视频捕获设备。网络摄像头需要连接到计算机、智能手机或任何其他设备才能使用其网络功能和 CPU。

应用程序中的在线广播

IP 摄像机是一个独立的设备,具有自己的网络接口和一个 CPU,用于压缩捕获的视频并将其发送到网络。因此,IP 摄像机是一台独立的微型计算机,可以连接到网络,不需要任何其他设备。也就是说,它直接向 Internet 广播。

低延迟是 IP 摄像机和在线广播的罕见要求。当视频信号源与该流的观众交互时,就会出现对低延迟连接的需求。

IP 摄像机和在线广播

低延迟通常是各种游戏使用场景的要求。例如:实时视频拍卖、真人荷官视频赌场、带主播的交互式在线电视节目、远程四轴飞行器控制等。

游戏使用场景

现场赌场经销商在工作。

    

在html5页面上播放 RTSP 的 7 种方法

在页面上流式传输 RTSP 的 7 种方法

在页面上流式传输 RTSP 的 7 种方法

在本文中,我们展示了 7 种不同的技术方法,用于在浏览器的网页上显示来自支持 RTSP 的 IP 摄像机的视频流。

通常,浏览器不支持 RTSP,因此使用中间服务器为浏览器转换视频流。

 

方法 1 – RTMP

浏览器不支持 RTMP 协议,但猜猜谁支持?忠实的老版Flash Player,虽然不支持所有浏览器,但运行良好,因此可以显示视频流。

Flash播放器

播放器的代码基于 Action Script 3 构建,如下所示:

1
2
3
var nc:NetConnection = nc.connect("rtmp://192.168.88.59/live",obj);
var subscribeStream:NetStream =