首页 > 其他分享 >基于WebRTC的流式系统揭秘

基于WebRTC的流式系统揭秘

时间:2024-09-30 22:47:53浏览次数:12  
标签:视频 系统 支持 揭秘 流式 数据通道 WebRTC

序言

最近几年远程办公开始涌现之际,越来越多的应用在云端进行支持,从性能表现和画质表现来看,基于WebRTC开源框架的流式系统开始主流,用户数,开发人员,产品数量大幅上升。本文基于这种业界现状,向大家阐述各个方面的技术细节和内容,希望能给到大家一些产品研发过程中的心得和技术要点。

本文作者

董锋

作者简介

火晓青

作者简介

火晓青, 伊鲁生科技有限公司联合创始人

软件研发从业20多年,曾任职于恺英,游族,菲动多家上市公司,头部金融科技公司,历任架构师、平台研发负责人和技术总监。持续关注互联网技术、数据挖掘,及移动互联网技术实践。先后负责社交网络,微博,移动网络,社会化搜索等项目积累实战经验,从事大数据架构和应用,分布式框架,实时系统,数据统计分析,热衷于挖掘数据价值并将数据价值转化为企业价值。主导并参与青仓流式远程桌面软件等。

总览

什么是流式系统

流式这种叫法应该是从英文的说法上翻译过来的。英文原来的单词是Streaming . 一般有Video Streaming , Audio Streaming , 中文就是视频流,音频流,我们一般也称为流媒体。

当然实质上也被称为云系统,比如采用WebRTC同等架构的Google的云游戏平台Stadia,还有腾讯的云游戏平台,其实都是基于WebRTC或者同等架构或作用的产品,同时由于运行在公有云上,因此被称为云系统,流式系统,或者串流系统等各种叫法。

总体来看,流式系统可以开发成远程音视频平台,远程控制软件,云渲染服务等。

流式系统可以有很多技术实现方式,它的主要核心是使用视频流,将内容在服务器端以视频流的方式传递到前端,前端解码视频流进行内容显示和操作的一种系统。由于在这个领域WebRTC是使用最为广泛的一种开源框架,因此本文就详细介绍以WebRTC为主的流式系统的详细产品内容和技术实现细节。

效果图:

主要特性:

  1. 跨平台支持,支持Windows,Mac,Linux (Debian), Android, iPhone (Cross-platform supported)
  2. 无插件安装及运行 (web browser only, no plug installed)
  3. 多浏览器支持,支持Google Chrome , Firefox , Apple safari 等主流浏览器 (Multiple web browser supported)
  4. 一键部署配置。满足C/S应用快速部署到B/S模式 (One click deployment)
  5. 配置方式丰富,支持私有、公有云。可局域网,广域网部署。(Private /Public cloud system supported)
  6. 传送的数据经过协议加密,且支持端到端加密方式。 (Secure protocol and data layer supported)
  7. 支持将重度的三维应用,数字孪生等应用快速移植到Web平台 (Fast heavy native 3D application migration)
  8. 内置VP8,VP9,H264等编码方式,且支持GPU CUDA硬件加速 (Hardware acceleration)
  9. 支持额外自定义的数据通道用于传输数据 (Customized data channel transfer)
  10. 支持1对1 , 1对多,多对多客户端服务器方案 ( 1 to 1, 1 to multiple, multiple to multiple solution supported)
  11. 提供了额外参数和REST API等进行二次开发支持 (REST API interface)
  12. 支持VDI方案 (VDI support)
  13. 支持多屏幕方案 (Multiple screens )

学习能力要求

我们的课程前端主要使用Nodejs,Javascript ,后端主要使用C++ ,产品可能部分使用到QT框架。

常用开发工具是Visual Studio 2019 .

开发平台是Window , Linux 都有。

流式系统课程列表

我们可能没有办法在一系列课程中完全介绍如何做一款商业化的产品,但是我们尝试通过我们完全自研的流式产品的经验中,吸取最重要的内容,展示相关核心的技术点,让读者在前端,后端,通讯端,等方面学习到相关的专业技术点,从而掌握相关的技术研发能力。以下,我们罗列下后续的章节。

基础课程系列

  1. 基础框架介绍
  2. 整体架构
  3. 时序图
  4. 码率,分辨率,帧率
  5. 编码器/解码器
  6. ICE
  7. DataChannel数据通道
  8. SDP协议
  9. RTP/RTCP协议
  10. SRTP协议
  11. 各种协议

前端内容

  1. 浏览器中流式标准的演化史
  2. 会话流程和信令通讯
  3. Web端常用的API
  4. 音频和视频媒体的支持
  5. Web前端中鼠标键盘等事件处理
  6. 实现多通道音视频数据流支持
  7. 数据通道实时数据传输
  8. 如何高效和业务系统交互
  9. 前端引擎库比较
  10. 实战青龙流式系统问题总结

后端内容

  1. 编译WebRTC框架
  2. 如何开始
  3. 建立P2P 连接
  4. 心跳机制
  5. 消息数据传递机制
  6. 视频轨道和视频捕捉器
  7. 视频推流细节
  8. 各种编码器介绍和比较
  9. 硬件编码/编码
  10. 自定义编码器
  11. 视频内容检测和分析手段
  12. 实际使用数据通道
  13. 后端的鼠标键盘等事件实现

信令服务器和中转服务器

  1. 信令服务器基础知识
  2. STUN/TURN基础知识
  3. 开源方案和部署

跨平台情况

  1. CentOS下的情况
  2. Ubuntu或Debian下的情况
  3. Linux下编译的一些注意事项
  4. 生成QTCreator项目进行编译

高级内容

  1. 发送方码率预估揭秘
  2. 码率控制
  3. RTSP媒体流的录制方案
  4. 带宽估计和拥塞控制算法
  5. P2P打洞原理
  6. ICE高级交互流程介绍
  7. 视频帧概念
  8. 智能指针
  9. 添加滤镜能力
  10. 视频编码后修改帧数据
  11. iOS15.4版本以上丢帧情况
  12. 从源代码的角度分析视频采集架构和流程

流式系统质量评价体系和标准

  1. 流式系统质量评价体系和一些标准建议
  2. 流式系统质量评价标准细节

流式系统商业化应用

  1. 云游戏方向
  2. 数据通道的7种创意用途
  3. VID领域的应用

标签:视频,系统,支持,揭秘,流式,数据通道,WebRTC
From: https://blog.csdn.net/ms44/article/details/142635284

相关文章

  • 第一章 WebRTC基础框架介绍
    什么是WebRTCWebRTC(WebReal-TimeCommunication——网页实时通信)是一个基于浏览器的实时多媒体通信技术。该项技术旨在使Web浏览器具备实时通信能力;同时,通过将这些能力封装并以JavaScriptAPI的方式开放给Web应用开发人员,使得Web应用开发人员能够通过HTML标签和JavaScript......
  • 【机器学习】揭秘反向传播:深度学习中神经网络训练的奥秘
      目录......
  • 独家揭秘:舰娘后宫养成秘籍,Alas云手机助你免肝免氪,轻松称霸海域!
    在广阔海域中,每一位指挥官都梦想着拥有一支强大的后宫舰娘队伍。但传统的刷图方式,不仅耗时耗力,更可能让你与健康渐行渐远。今天,我们为你揭开免肝免氪的舰娘养成秘籍——Alas云手机,让你轻松称霸海域!舰娘后宫,不再是梦24小时挂机:Alas云手机让你告别熬夜刷图的痛苦,它能够全天候运......
  • 探索AI新纪元:揭秘Mammoth库的神秘面纱
    文章目录探索AI新纪元:揭秘Mammoth库的神秘面纱背景:为何选择Mammoth?简介:Mammoth是什么?安装:如何获取Mammoth?使用:Mammoth的基本函数场景应用:Mammoth在实际中的运用常见问题:Bug及其解决方案总结:Mammoth的价值所在探索AI新纪元:揭秘Mammoth库的神秘面纱背景:为何选择Mamm......
  • 揭秘巨量千川涨粉的完整操作步骤 快速涨1000粉 10000粉 安全可靠不影响账号
    在当今竞争激烈的环境下,创作者们面临着巨大的用户增长挑战,快速涨粉成为一道难题。而抖音巨量千川投流则为大家带来了完美解决方案,以官方真实投放的优势,实现每日涨粉1000至10万的真实活跃粉丝效果,让创作者们获得官方认可流量,亲身体验抖音涨粉的魅力。千川投流快速起飞下面......
  • 一文详解WebRTC、RTSP、RTMP、SRT
     背景好多开发者,希望对WebRTC、RTSP、RTMP、SRT有个初步的了解,知道什么场景该做怎样的方案选择,本文就四者区别做个大概的介绍。WebRTC提到WebRTC,相信好多开发者第一件事想到的就是低延迟,WebRTC(WebReal-TimeCommunication)是一项实时通讯技术,它允许网络应用或者站点在不借助中间媒......
  • 高热导率!揭秘碳化硅在电子领域的价值
    随着现代社会对高效能电子器件需求的迅速增加,材料科学的进步为电子领域带来了革命性的变化。特别是在高功率、高频率和高温环境下运行的电子器件中,对材料的热导率、耐高温性和电子迁移率等物理性能的要求愈发严格。碳化硅(SiC)作为一种新兴的宽禁带半导体材料,以其优异的热导率和热稳......
  • 三大硬核方式揭秘:Java如何与底层硬件和工业设备轻松通信!
    大家好,我是V哥,程序员聊天真是三句不到离不开技术啊,这不前两天跟一个哥们吃饭,他是我好多年前的学员了,一直保持着联系,现在都李总了,在做工业互联网相关的项目,真是只要Java学得好,能干一辈子,卷死的是那些半吊子。感谢李总给我分享了工业互联网项目的事情,收获很多,今天的内容来聊一聊......
  • 揭秘 JS 中的闭包
    需要掌握才能理解语言的复杂细节。不像我们创建数组或函数那样创建。一个fn返回另一个存储在lhs变量中的fn。constsecurebooking=function(){letpassengercount=0;returnfunction(){passengercount++;console.log(`${passengercount}passengers`);}}co......
  • 揭秘合并排序:分治排序初学者指南
    归并排序由约翰·冯·诺依曼于1945年提出,主要是为了提高大型数据集的排序效率。冯·诺依曼的算法旨在使用分而治之的方法提供一致且可预测的排序过程。这种策略允许归并排序有效地处理小型和大型数据集,保证在所有情况下都能实现稳定的排序,时间复杂度为o(nlogn)。合并排序采用......