Skip to content

Latest commit

 

History

History
95 lines (48 loc) · 3.5 KB

README.md

File metadata and controls

95 lines (48 loc) · 3.5 KB

webrtc

2011年Google将WebRTC项目开源,让许多开发者眼前一亮,忍不住的加入了研究WebRTC的队伍中。作为Google开源的技术,WebRTC并不是一个可以拿来就用,并且性能很好的产品

webrt-opensource

image

webrtc协议栈

webrtc并不是单一的协议,包含了媒体、加密、传输层等在内的多个协议标准以及一套基于 JavaScript 的 API,它包括了音视频的采集、编解码、网络传输、显示等功能。通过简单易用的 JavaScript API ,在不安装任何插件的情况下,让浏览器拥有了 P2P音视频和数据分享的能力。

image

image

webrtc技术框架

image

简要过程

image

  • 交换SDP,获取各自媒体配置信息
  • STUN服务器交换网络地址和端口等网络信息
  • Turn中转音视频媒体流数据

工作流

image

webrtc P2P视频通话

image

基于ffmpeg c++ 后端 音视频处理工具

2416242a2585740da599ca5b3652447

FAQ

  • 卡顿
  • 花屏

webrtc技术使用

WebRTC在被Google开源之前,其价值就已经得到了充分的认可。比如QQ就使用了WebRTC的部分技术

RTP SDP(Session Describe Protocol),会话描述协议 能否携带token鉴权信息?

  • 可以自定义字段,携带token信息

webrtc 2路流混流,有时会非常模糊,有什么好的解决方法?

  • 如果是同步虚拟摄像头播放的,可能片源就是低画质的;然后在画面放大的情况下播放。

webrtc推流时怎样设置固定宽高?

  • webrtc推流过程中,宽高 会发生变化。webrtc推流时怎样设置固定宽高?
  • 视频编码时 分辨率发生变化 怎么办?

webrtc分辨率分析

chrome://webrtc-internals/

image

webrtc 点对点视频如何固定码率传输 达到视频播放分辨率不变的效果?

设置了720p 1080p 分辨率 在网络抖动的情况下 分辨率发生了变话 如何让分辨率不变呢?

  • 方法1:RTCConfiguration enableCpuOveruseDetection=false 关闭分辨率变换;
  • 方法2:修改源码,调整固定帧率、定分辨率、自适应调整策略;

参考链接