[webrtc] RTX的处理

以前笔记,整理

webrtc中默认开启rtx用于丢包重传,rtx的介绍可以参考rfc4588,https://tools.ietf.org/html/rfc4588#section-4

rtx使用额外的ssrc传输,ssrc在sdp中会标识出来。

↵a=rtpmap:97 rtx/90000
↵a=ssrc-group:FID 2736695910 239189782

类似这样。

一个RTX包,在turnserver中是这样的,原始udp数据->turn/stun协议头->RTP header1 ->RTP header2

在RTP header1中根据payload type进行区别RTP、RTX数据,如果是RTX的话,需要srtp解出后面的数据,再解析。

在客户端中,RTX封包的关键函数是:

https://code.google.com/p/webrtc/source/detail?r=4692
Channel::IsPacketRetransmitted
Channel::HandleRtxPacket
rtp_payload_registry_->IsRtx
RTPPayloadRegistry::RestoreOriginalPacket    移除RTX头, 还原原始的RTP

链接是,webrtc加入rtx的issue

目前webrtc的服务器,例如licode,janus是禁止rtx的。以避免复杂的处理。

时间: 2024-10-10 08:38:19

[webrtc] RTX的处理的相关文章

Android IOS WebRTC 音视频开发总结(三十)

本文主要介绍ICE与SDP交互过程中的一些知识,支持原创,文章来博客园RTC.Blacker,转载请说明出处. 用过libjingle模块的同学都知道连接过程中candidate的获取与连接流程,一边获取candidate,一边进行连接,所以整个过程很快, 但我们有时候用一些其他基于webrtc的产品来测试时发现很久才能看到对方的画面,这是啥原因呢?是不是程序有漏洞? 不是的,主要是他们采用了不同类型的ICE,详细区别见下图: 如上:右边就是libjingle所采用的ICE连接模式,左边是传统模

WebRTC iOS平台的基本实现

前面介绍了如何下载编译WebRTC,现在介绍如何利用WebRTC在iOS客户端上简单实现音视频通话. 对下载编译还有问题的,请先查看:WebRTC(iOS)下载编译. 不需要下载源码只需要库文件的也可以用CocoaPods下载编译好的库:pod 'libjingle_peerconnection' 开始编写之前,我们首先要搭建一个服务器,此服务器主要用于信令交互.我们这里采用github上的开源项目:SkyRTC项目. 完整Demo下载:FLWebRTCDemo. 开始iOS客户端的实现: 1.

第21章 RTX 低功耗之睡眠模式

低功耗是 MCU 的一项非常重要的指标,比如某些可穿戴的设备,其携带的电量有限,如果整个电路消耗的电量特别大的话,就会经常出现电量不足的情况,影响用户体验. 本章节为大家讲解 M3/4的低功耗方式之睡眠模式在 RTX 操作系统上面的实现方法(RTX 本身支持的 tickless 低功耗模式在第 24 章节讲解) STM32F103 睡眠模式介绍说明:在 RTX 系统上面实现睡眠方式仅需了解这里讲解的知识基本就够用了,更多睡眠方式的知识请看 STM32F103 参考手册和 Cortex-M3 权威

crosswalk 快速入门,利用WebRTC(html)开始开发视频通话

crosswalk 快速入门,利用WebRTC(html)开始开发视频通话 安装Python 从http://www.python.org/downloads/ 下载安装程序 安装完后,再添加到环境变量. 安装Oracle JDK 下载页面: http://www.oracle.com/technetwork/java/javase/downloads/ 选择要下载的Java版本(推荐Java 7). 选择一个JDK下载并接受许可协议. 一旦下载,运行安装程序. 安装Ant Ant:下载http

国内如何下载code.google、googlecode上的源码webrtc

Github下载代码确实很方便,直接下载那个zip包就OK,无奈有很多开源代码只在googlecode上有,googlecode又只能通过svn下载.在国内需要翻墙才能下载.本人常用的翻墙手段GoAgent和某某门,GoAgent只能在chrome中用,看看网页:某某门穿透力还是差了点.于是在baidu上有搜索到了一个新方法,成功下载googlecode上的webrtc代码,步骤如下: Step1: 打开https://code.google.com/p/smarthosts/,下载hosts文

腾讯通RTX 手机安卓版试用

提到腾讯通RTX,很多朋友都耳熟能详,因为这是每天工作联络的必须品,同事间交流及传送文件都需要用到的工具.但提到RTX腾讯通手机版,不免会产生很多疑问.RTX还有手机版?带着这样的疑问,接下来就由昆明国防路百信手机大全为大家分享. 首先安装到手机.RTX手机版也延续了腾讯众多手机产品的特点,体积小权限多.安装完毕之后首次打开会看到"企业通讯录"的大Logo. 进行登录了,由于是需要"总机号",而非PC端的服务器地址,不清楚总机号的同学请询问本公司网管.登录后会看到底

Webrtc服务器搭建

1.WebRTC后台服务: 通话的房间服务器(Room Server) 房间服务器是用来创建和管理通话会话的状态维护,是双方通话还是多方通话,加入与离开房间等等,我们暂时沿用Google部署在GAE平台上的AppRTC这个房间服务器实现,该GAE App的源码可以在github.com上获取.该实现是一个基于Python的GAE应用,我们需要下载Google GAE的离线开发包到我们自己的Linux服务器上来运行该项目,搭建大陆互联网环境下的房间服务器. 通话的信令服务器(Signaling S

关于在android层释放webrtc资源的问题

最近一段时间在做基于webrtc的android应用在释放资源时遇到一些问题,现在记录下来用于备忘. 官方给出的AppRTCDemo太过于简单很多问题没涉及到. 1.释放peerconnection资源的问题. 场景:A和B进行通话(视频通话) 现在B中终止通话 错误:在B终止通话之后,A端的程序程序会意外退出. 分析:在A和B进行通话的时候会见了相应的PeerConnection类实例,这个实例保存的有stream的引用(localstream和remote stream等等). B在终止通话

Android IOS WebRTC 音视频开发总结(七六)-- 探讨直播低延迟低流量的粉丝连麦技术

本文主要探讨基于WebRTC的P2P直播粉丝连麦技术 (作者:郝飞,亲加云CTO,编辑:dora),最早发表在[这里] 支持原创,转载必须注明出处,欢迎关注微信公众号blacker(微信ID:blackerteam  或 webrtcorgcn) 到目前为止,直播行业继续如预期的那样如火如荼的发展着,在先后竞争完延迟,高清,美 颜,秒开等功能后,最近各大直播平台比拼的一个热点就是连麦.什么是连麦? 简单??述 就是当主播直播期间,可以与其中某一个粉丝进行互动,并且其他粉丝能够观看到这个互动 过程