WebRTC
文章平均质量分 68
亢少军
资深开发者,创业者。专注于视频通讯技术领域。国内首本Flutter著作《Flutter技术入门与实战》作者,另著有《Dart语言实战》及《WebRTC音视频开发》等书籍。多年从事视频会议、远程教育等技术研发,对于Android、iOS以及跨平台开发技术有比较深入的研究和应用,作为主要程序员开发了多个应用项目,涉及医疗、交通、银行等领域。
展开
-
WebRTC视频会议案例-APP(Flutter+Golang)
WebRTC技术经过多年的发展,已经非常成熟,它提供了HTML5流媒体技术的一整套解决方案及API,可用来实现一对一视频通话,视频会议,远程教育以及远程会诊等应用。尤其现在5G时代已经到来,WebRTC技术为必备技能。本课程为WebRTC的实战案例课程,使用Flutter+Golang+WebRTC实现视频会议系统。使用Flutter实现APP Desktop Web跨平台会议终端,Golang实现房间管理及转发消息。流媒体采用RTC领域流行开源流媒体ion-sfu.讲师介绍讲师:亢少军资深开发者,原创 2021-08-03 11:34:30 · 2607 阅读 · 1 评论 -
WebRTC视频会议H5(React+Golang+ION-SFU)
WebRTC技术经过多年的发展,已经非常成熟,它提供了HTML5流媒体技术的一整套解决方案及API,可用来实现一对一视频通话,视频会议,远程教育以及远程会诊等应用。尤其现在5G时代已经到来,WebRTC技术为必备技能。本课程为WebRTC的实战案例课程,使用React+Golang+WebRTC实现视频会议系统。使用React实现浏览器PC Web,Golang实现房间管理及转发消息。流媒体采用RTC领域流行开源流媒体ion-sfu.讲师介绍讲师:亢少军资深开发者,创业者。专注于视频通讯技术领域。国原创 2021-07-13 11:13:19 · 2124 阅读 · 0 评论 -
ion-sfu架构与模块
上面给一个简单架构图,很多细节表示不出来,需要看代码。1、简介得益于GO,ion-sfu整体代码精简,拥有极高的开发效率。结合现有SDK使用,可以避免很多坑:ion-sdk-js等。ion-sfu基于pion/webrtc,所以代码风格偏标准webrtc,比如:PeerConnection因为是使用了标准API,熟悉了之后很容易看懂其他工程,比如:ion-sdk-go/js/flutter。这样从前到后,整体门槛都降低了。2、工程组织这里给出主要模块列表├── Makefile //用来.转载 2021-06-19 14:18:32 · 1771 阅读 · 0 评论 -
ION的来由和发展
ION的来由和发展项目地址:https://github.com/pion/ionstar 数量:2.5K一、行业发展作为ION的发起人之一,同时也是PION的核心开发者。作者一直从事互联网直播和在线教育行业的研发,一直在关注流媒体开源项目的发展,也一直关注LVS等行业论坛。行业内有个趋势:传统RTMP+FLV+FLASH的技术栈在逐渐向RTMP+FLV+RTC,甚至纯RTC发展。二、语言发展开发语言是底子,底子好才能发展好;语言决定项目的整体发展和方方面面的成本和效率;比如,CNCF里毕转载 2021-06-16 17:31:18 · 515 阅读 · 0 评论 -
如何运行PION/ION(分布式流媒体系统)
相信很多小伙伴不知道如何将PION/ION项目跑起来,这里整理了一些具体步骤,希望能帮助到大家。依赖基础环境nats.ioredisGolang (latest version)1. 安装 Nats.ioMacOS> brew update> brew install nats-serverWindows> choco install nats-serverLinux> curl -L https://github.com/nats-io/nats-s原创 2021-04-19 14:46:33 · 2332 阅读 · 14 评论 -
WebRTC通话原理-信令服务-连接建立
作者: 亢少军信令服务从上面我们知道了2个客户端协商媒体信息和网络信息,那怎么去交换?是不是需要一个中间商去做交换?所以我们需要一个信令服务器(Signal server)转发彼此的媒体信息和网络信息。我们在基于WebRTC API开发应用(App)时,可以将彼此的App连接到信令服务器(Signal Server,一般搭建在公网,或者两端都可以访问到的局域网),借助信令服务器,就可以实现SDP媒体信息及Candidate网络信息交换。信令服务器不只是交互媒体信息SDP和网络信息Candidate,原创 2021-03-24 13:43:10 · 871 阅读 · 0 评论 -
WebRTC通话原理-网络协商-NAT-ICE-STUN-TURN
作者: 亢少军彼此要了解对方的网络情况,这样才有可能找到一条相互通讯的链路。需要做以下两个处理。获取外网IP地址映射。通过信令服务器(signal server)交换“网络信息”。理想的网络情况是每个浏览器的电脑都是公网IP,可以直接进行点对点连接。如图所示。实际情况是我们的电脑和电脑之间都是在某个局域网中并且有防火墙,需要NAT(Network Address Translation,网络地址转换),如图所示。在解决WebRTC使用过程中的上述问题的时候,我们需要用到STUN和TURN原创 2021-03-24 13:38:51 · 894 阅读 · 0 评论 -
WebRTC通话原理-SDP协议
作者: 亢少军会话描述协议Session Description Protocol (SDP) 是一个描述多媒体连接内容的协议,例如分辨率,格式,编码,加密算法等。所以在数据传输时两端都能够理解彼此的数据。本质上,这些描述内容的元数据并不是媒体流本身。从技术上讲,SDP并不是一个真正的协议,而是一种数据格式,用于描述在设备之间共享媒体的连接。SDP包含内容非常多,如下面内容所示为一个SDP信息。//版本v=0//<username> <sess-id> <sess-v原创 2021-03-23 11:31:59 · 476 阅读 · 0 评论 -
WebRTC通话原理-媒体协商
作者: 亢少军首先两个客户端(Peer-A和Peer-B)想要创建连接,一般来说需要有一个双方都能访问的服务器来帮助它们交换连接所需要的信息。有了交换数据的中间人之后,它们首先要交换的数据是Session Description Protocol(SDP),这里面描述了连接双方想要建立怎样的连接。彼此要了解对方支持的媒体格式。比如,PeerA端可支持VP8、H264多种编码格式,而PeerB端支持VP9、H264,要保证二端都正确的编解码,最简单的办法就是取它们的交集H264。如下图所示。有一个原创 2021-03-22 11:10:56 · 694 阅读 · 0 评论 -
WebRTC通话原理-基本流程
WebRTC通话最典型的应用场景就是一对一音视频通话,如微信或QQ音视频聊天。通话的过程是比较复杂的,这里我们简化这个流程,把最主要的步骤提取出来,如图所示。通话原理基本流程假定通话的双方为Peer-A和Peer-B。双方要建立起通话,主要的步骤如下所示。1 PeerA与PeerB通过信令服务器进行媒体协商,如双方使用的音视频编码格式。双方交换的媒体数据由SDP协议描述。2 PeerA与PeerB通过STUN服务器获取到各自自己的网络信息,如IP和端口。然后通过信令服务器转发互相交换各种的网络信息原创 2021-03-20 09:32:43 · 1129 阅读 · 0 评论 -
WebRTC一对一视频通话(Flutter+React+Go+WebRTC方案)
一对一视频通话学习: https://ke.qq.com/course/package/29474?tuin=2c77f7f0WebRTC交流学习群:425778886WebRTC技术经过多年的发展,已经非常成熟,它提供了HTML5流媒体技术的一整套解决方案及API,可用来实现一对一视频通话,视频会议,远程教育以及远程会诊等应用。尤其现在5G时代已经到来,WebRTC技术为必备技能。课程介绍:本课程为WebRTC音视频开发系列课程,包含了PC Web iOS Android终端以及中转及信令服务器的原创 2021-03-17 09:06:57 · 2067 阅读 · 0 评论 -
WebRTC音视频开发-多对多视频通话SFU方案(Flutter+React+Go+WebRTC)
学习地址:https://ke.qq.com/course/3134372?tuin=2c77f7f0WebRTC技术经过多年的发展,已经非常成熟,它提供了HTML5流媒体技术的一整套解决方案及API,可用来实现一对一视频通话,视频会议,远程教育以及远程会诊等应用。尤其现在5G时代已经到来,WebRTC技术为必备技能。本课程为WebRTC的实战案例课程,使用Flutter+React+Golang+WebRTC实现多对多通话的完整解决方案。使用React实现浏览器PC Web,Flutter实现移原创 2020-12-18 14:40:55 · 2179 阅读 · 3 评论