
webrtc
文章平均质量分 72
云卷云舒么么哒
以前c++为主, 现在喜欢golang. 使用过c, delphi, c#, swift, objective-c, python, lua, js, php......等编程语言. 熟悉windows客户端编程, 流媒体编程, webrtc, linux服务器编程, 云风skynet服务器编程, 比特币以太坊区块链研究. 移动端android, ios客户端编程.
展开
-
WebRTC之STUN、TURN和ICE研究
准备查看WebRTC源码对应以下这些文章中的协议格式深入研究一下ICE。这三篇文章是目前我看过的最好的ICE文章: P2P通信标准协议(一)之STUN P2P通信标准协议(二)之TURN P2P通信标准协议(三)之ICE这个可以做为补充: P2P技术详解(三):P2P技术之STUN、TURN、ICE详解先学习上面文章的基础知识,然后开始分析WebRTC创建PeerConne...原创 2018-05-05 00:46:34 · 2543 阅读 · 0 评论 -
WebRTC源码分析之RTP/RTCP(二)
WebRTC中RTP和RTCP共用一个UDP端口WebRTC中的RTP和RTCP都使用udp传输,并且RTP和RTCP混合使用同一个udp端口,因为打通NAT本来就不是一件容易的事,如果还分开两个端口的话更增加程序复杂度和NAT打洞成功的难度。WebRTC怎么区分RTP/RTCP包webrtc/call/call.cc:PacketReceiver::Deliver...原创 2018-05-08 12:58:20 · 1616 阅读 · 0 评论 -
WebRTC源码分析之RTP/RTCP(一)
首先学习一下RTP/RTCP的基础知识。RTP/RTCP协议RTP报头当没有CSRC时RTP报头一共12个字节。 报头格式如下: 版本号(V):2比特,用来标志使用的RTP版本,当前协议版本号为2。 填充位(P):1比特,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。 扩展位(X):1比特,如果X=1,RTP固定头部后面就跟有一个...原创 2018-05-08 12:57:41 · 1288 阅读 · 0 评论 -
RFC3550 RTP 中文版(转载)
原文地址:RFC3550 RTP 中文版英文版原文:RFC3550英文版 - RTP: A Transport Protocol for Real-Time Applications字符描述的表格不对齐懒得换成截图,所以还是请参看英文原版表格。转载过来后修改了一部分错别字。这个翻译的中文版不全。RTP:实时应用程序传输协议 摘要 本文描述RTP(real-time tran...转载 2018-05-08 12:57:08 · 1411 阅读 · 0 评论 -
WebRTC源码分析之IOS Audio Unit
本来没想要写这篇,毕竟不是什么关键技术,但是实在是因为苹果的文档和API实在太烂了,网上关于Audio Unit的文章也太少,写下来就算当个笔记。WebRTC与声音设备有关的代码在modules/audio_device目录下面,包括各个平台的录音采集和播放声音的代码。 其中windows上的使用了Core Audio API。 Core Audio API 应该是Vista之后才支持的A...原创 2018-05-07 22:09:17 · 2151 阅读 · 1 评论 -
coTurn配置(主要是客户端登录验证)及验证原理分析
想支持WebRTC服务器coTurn必须开启long-term credentials mechanism,也就是加上-a选项。一、最简单不使用数据库直接设置密码./turnserver -a --no-tls --no-dtls --no-stun -u testuser:testpwd -r myrealm -v./turnutils_peer -v./tu...原创 2018-05-06 02:59:51 · 4932 阅读 · 0 评论 -
coTurn的附加程序命令行测试
turnadmin看了代码以后发现turnadmin和turnserver其实是一个程序,代码中判断了第一个命令行参数是否”turnadmin”来区别。 trunadmin的入口为:mainrealy.c的adminmain函数 1) For the long-term credentials there must be keys “turn/realm//user//k...原创 2018-05-06 02:59:23 · 1037 阅读 · 0 评论 -
修改mosquitto-auth-plug的Redis支持模块
修改mosquitto-auth-plug支持Redis数据库,但是没有mysql模块支持的功能全面。 README.md里说如果使用Redis数据库,将不支持superusers和acl权限控制功能不支持(+/#)通配符,这真的太愚蠢了。如果一个用户属于superusers,表示这个用户是超级用户,不受acl权限模块控制,这个功能挺有用。而且看mysql的数据库表结构,其实只是多了...原创 2018-05-06 02:58:25 · 828 阅读 · 0 评论 -
mosquitto鉴权插件mosquitto-auth-plug的加密算法
mosquitto-auth-plugPBKDF2加密PBKDF2其实就是选择一种哈希算法,把密码加盐后经过多次迭代计算进行加密。当然肯定是不可逆的,可以防止碰撞破解,迭代次数越多越安全。mosquitto-auth-plug使用了PBKDF2加密,编译后得到的np可执行程序可以进行加密:(下面假设密码为admin)./np -p admin得到加密密码:PBKD...原创 2018-05-06 02:57:49 · 1659 阅读 · 0 评论 -
WebRTC offer - answer交换sdp流程分析
被WebRTC自带oc版本的例子恶心到了,不做笔记还真不行。两端开启音视频通讯时,一方做为offer主动发出邀请,另一方做为answer被动等待offer的邀请做出反应。 代码中的流程:Offer:1. offerForConstraints,得到sdp后回调 <第1.1步>。 1.1. didCreateSessionDescription,如果有错直接返回...原创 2018-05-16 19:08:57 · 6848 阅读 · 1 评论