`

webrtc项目笔记

 
阅读更多

1.WebRtc介绍

这个网上一大堆,主要是谷歌开源的技术,实时通信技术。

废话不多说,主要是涉及两个服务器:

  • 信令服务器(Signal Server)

     信令服务器主要是将两个或多个需要通信的拉到一起然后帮他们握手连接,相当于大家先认识一下。

     然后,大家在进行通信。

 

  • STUN/TURN服务器

      在通过信令服务器的引导握手后就需要将webrtc接口提供的数据传输给对方,此时如何将处于不同网络里的双方进行连接就需要TURN/STUN服务器,网上俗称打洞服务器,其实这个turn/stun是一个网络协议可以参见ref5766,但是主要是配置问题,不好配置正确,下面说明turnserver下载,安装,配置过程:

     (1)下载turnserver

       http://turnserver.open-sys.org/downloads/

      自己选择版本,针对不同的Linux下载不同的包(我使用的是centos7)

      http://www.blogjava.net/linli/archive/2015/06/18/418935.html

    (2)安装turnserver

      下载好后,直接通过Linux命令安装,此处我使用yum 进行安装

      如果有依赖包未安装,安装即可。

    (3)配置turnserver[关键]

 

     turnserver的默认配置放到/etc/turnserver/turnserver.conf里面

   修改配置如下:

turnserver监听端口

listening-port=3478

turnserver监听ip地址(默认本机)

listening-ip=192.168.11.1

udp模式自动优化

udp-self-balance

同一私有网段的不需要turnserver

relay-ip=192.168.88.203

如果网络架构是nat模式需要配置为外网的那个ip

external-ip=11.22.33.44

长回话必须开启,同时需要配置用户名密码

lt-cred-mech

user=username:password或者user=username:签名后的password(签名方法在/usr/bin/下运行turnadmin -k -u username-r 会话范围如baidu.com -p password)

sqlite数据库存放路径,主要存放用户名及密码到用户表,可将上面的username,password加到表中,添加方式自己百度sqlite3使用

userdb=/var/db/turndb

 会话范围

realm=baidu.com

 

客户端配置

'iceServers': [
    {
      'url': 'turn:192.168.11.1:3478',
      'credential': 'password',
      'username': 'username'
    }
  ]

 

提醒一下如果使用phonertc时,phonertc的browser版本有bug,其中的password改为credential即可

 

turnserver 启动:

systemctl start turnserver.service

分享到:
评论

相关推荐

    webrtc学习笔记一 (视频流)

    Google开源了WebRTC项目,可以在GitHub上找到。 5. **挑战与优化**: - **网络适应性**:WebRTC需要处理各种网络条件,如丢包、延迟和带宽变化,需要有效的策略来保证视频质量。 - **安全问题**:WebRTC支持DTLS...

    WebRtc-Freeswitch介绍

    WebRTC(Web Real-Time Communication)是一项由Google发起的开源项目,旨在使Web开发者能够轻松地在浏览器环境中构建实时多媒体应用程序,无需用户安装任何插件。WebRTC支持HTML5和JavaScript,允许开发者通过...

    音视频公开课WebRTC

    WebRTC(Web Real-Time ...通过学习这些资源,你可以深入了解WebRTC的工作原理、应用实践以及如何在实际项目中有效利用这一技术。对于希望在音视频领域有所建树的开发者来说,WebRTC是不可忽视的重要技能。

    webrtc_momo环境搭建.pdf

    基于github开源项目momo实现rtsp流经webrtc推送到web端(momo仅实现本地资源推送到web),实测延时500ms左右,本资源为实现过程笔记

    graceup系列--WebRTC

    "graceup系列--WebRTC"可能是一个关于WebRTC的学习资源集合,包括文档和笔记,旨在帮助学习者深入理解和掌握WebRTC的相关知识。 WebRTC主要包含以下几个关键组件和技术: 1. **getUserMedia**:这是一个JavaScript...

    Yew-WebRTC-Chat:与Yew进行的简单WebRTC聊天

    该项目展示了使用WebRTC进行的简单HTML聊天,并使用Rust进行了编程并编译为WASM。 阅读了,我想看看是否可以使用WASM使用“纯” Rust进行相同的操作。 因为从头开始做游戏太复杂了,所以我的第一步是通过聊天应用...

    毕业设计-基于WebRTC的在线视频会议-美米会议---源码、笔记、文档、可以答疑解答在线调试

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...

    webrtcchatde

    该项目源码和文档下载地址是http://ishare.iask.sina.com.cn/f/35083616.html,源码在https://github.com/zsj2145676。 经修改后在本人公司局域网成功运行,试过两个手机和一个笔记本电脑同时视频通信OK。修改和...

    webrtc-jingle-client

    该项目始于webrtc刚刚起步时,并且存在许多错误并且sdp实施甚至没有完成代码,并且不同手机的驱动程序无法正常工作,并且ios / android的版本已从一个版本转换为另一个版本,而且该代码有时甚至与数百​​个修订版本...

    Backup 2023-10-26.zip

    在压缩包中,多个文件带有“.goodnotes”扩展名,意味着它们是GoodNotes应用中的笔记文件,可能包含个人的工作记录、学习笔记或项目资料。 2. **Support Sites**:文件名中出现“support.google.com”和“support....

    图灵商城 代码,笔记,资料

    这个压缩包可能包含与图灵商城相关的各种代码实现、学习笔记和相关资料,对于深入理解图灵商城的运作机制,以及音视频处理技术的学习都有很大的帮助。 在图灵商城中,音视频部分可能涉及到的技术包括但不限于: 1....

    webkit开发学习笔记(全面)_第一版

    2. **最新技术动态**:跟踪 WebKit 的最新发展,如 WebAssembly、Service Worker、WebRTC 等。 3. **最佳实践**:学习业界对 WebKit 开发的最佳实践,提升开发效率和代码质量。 这份“WebKit 开发学习笔记”全面...

    MyNote:日常学习笔记

    这个标题暗示了一个个人知识管理的项目,其中包含了作者在日常学习过程中的各种笔记。"MyNote"可能是作者自己创建的一个笔记系统或者存储笔记的文件夹,用于整理和归类他在不同IT领域的学习心得。 【描述】:“My...

    mediasoup学习整理

    - **WebRTC**: Web Real-Time Communication(WebRTC)是一种开源项目,允许在浏览器和其他应用程序之间进行实时通信,无需插件或下载额外的软件。 - **媒体服务器**: 在WebRTC中,媒体服务器是处理媒体流的核心组件...

    JavaScript学习笔记.doc

    3. **Web即时通讯**:WebRTC等技术允许开发者使用JavaScript实现实时通信,如聊天应用和视频会议平台。 4. **股市网站**:JavaScript用于实时更新股票价格、绘制图表,提供用户实时交易体验。 5. **表单验证**:在...

    secretary:我的笔记、日记、协作白板

    总的来说,"secretary"项目展示了JavaScript在构建复杂Web应用中的强大能力,结合现代前端框架(如React或Vue.js)和各种库,可以实现功能丰富的笔记、日记和协作平台。对于开发者而言,这是一个深入了解JavaScript...

    前端开源库-gvcp

    这个项目旨在提供一个自由、开放源码的解决方案,允许开发者和组织创建自己的定制化视频会议平台,满足特定需求和安全标准。 在前端开发领域,gvcp 提供了丰富的功能集,包括: 1. **实时音视频通信**:gvcp 利用...

    Python基于Django网络健身俱乐部网站设计毕业源码案例设计.zip

    项目中包含的"README.md"文件通常会提供项目的安装指南、运行步骤以及开发者笔记等内容,帮助读者理解并运行此项目。而"HeaClub"可能是项目的主要代码目录,包含了应用、模型、视图、模板、URL配置等文件。 总结而...

    大华摄像头前端demo

    WebRTC是一个开放的项目,它为浏览器和移动应用程序提供了原生的实时通信能力。在大华摄像头前端demo中,开发者可能使用了getUserMedia API来获取摄像头的视频流,然后通过RTCPeerConnection API建立与其他用户的...

    firsthtmlproject.zip

    10. **新API和元素**:例如WebRTC(实时通信)用于实现浏览器间的视频通话,WebSocket提供持久化的双向通信,以及Web Animations API用于创建复杂的动画效果。 综上所述,“firsthtmlproject”的内容可能包含了这些...

Global site tag (gtag.js) - Google Analytics