从0打造音视频直播系统
李超
前新东方音视频直播技术专家,前沪江音视频架构师
立即订阅
2827 人已学习
课程目录
已完结 40 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 5G的到来将会为音视频插上飞翔的翅膀
免费
WebRTC 1对1通话 (23讲)
01 | 原来通过浏览器访问摄像头这么容易
02 | 如何通过WebRTC进行音视频设备检测呢?
03 | 如何使用浏览器给自己拍照呢?
04 | 可以把采集到的音视频数据录制下来吗?
05 | 原来浏览器还能抓取桌面?
06 | WebRTC中的RTP及RTCP详解
07 | 你竟然不知道SDP?它可是WebRTC的驱动核心!
08 | 有话好商量,论媒体协商
09 | 让我们揭开WebRTC建立连接的神秘面纱
10 | WebRTC NAT穿越原理
11 | 如何通过Node.js实现一套最简单的信令系统?
12 | RTCPeerConnection:音视频实时通讯的核心
13 | 在WebRTC中如何控制传输速率呢?
14 | 如何打开/关闭音视频?
15 | WebRTC中的数据统计原来这么强大(上)
16 | WebRTC中的数据统计原来这么强大(下)
17 | 如何使用Canvas绘制统计图表(上)?
18 | 如何使用Canvas绘制统计图表(下)?
19 | WebRTC能不能进行文本聊天呢?
20 | 原来WebRTC还可以实时传输文件?
21 | 如何保证数据传输的安全(上)?
22 | 如何保证数据传输的安全(下)?
23 | 实战演练:通过WebRTC实现一个1对1音视频实时直播系统
WebRTC多人音视频实时通话 (7讲)
24 | 多人音视频实时通讯是怎样的架构?
25 | 那些常见的流媒体服务器,你该选择谁?
26 | 为什么编译Medooze Server这么难?
27 | 让我们一起探索Medooze的具体实现吧(上)
28 | 让我们一起探索Medooze的具体实现吧(下)
29 | 如何使用Medooze 实现多方视频会议?
30 | 实战演练:通过WebRTC实现多人音视频实时互动直播系统
支持上万人同时在线的直播系统 (8讲)
31 | 一对多直播系统RTMP/HLS,你该选哪个?
32 | HLS:实现一对多直播系统的必备协议
33 | FLV:适合录制的多媒体格式
34 | 如何使用Nginx搭建最简单的直播服务器?
35 | 如何构建云端一对多直播系统?
36 | 如何使用 flv.js 播放 FLV 多媒体文件呢?
37 | 如何使用 video.js 播放多媒体文件?
38 | 实战推演:带你实现一个支持万人同时在线的直播系统
结束语 (1讲)
结束语 | 路漫漫其修远兮,吾将上下而求索
从0打造音视频直播系统
登录|注册

07 | 你竟然不知道SDP?它可是WebRTC的驱动核心!

李超 2019-07-30
在前面《01 | 原来通过浏览器访问摄像头这么容易》《04 | 可以把采集到的音视频数据录制下来吗?》等文章中,我向你讲解了 WebRTC 如何采集音视频数据,以及如何将它们录制成文件等相关内容。但那些知识不过是个“开胃菜”,WebRTC 真正核心的知识将从本文开始陆续向你展开。不过从本文开始,知识的难度会越来越高,你一定要做好心理准备。
说到 WebRTC 运转的核心,不同的人可能有不同的理解:有的人认为 WebRTC 的核心是音视频引擎,有的人认为是网络传输,而我则认为 WebRTC 之所以能很好地运转起来,完全是由 SDP 驱动的,因此 SDP 才是 WebRTC 的核心
掌握了这个核心,你就知道 WebRTC 都支持哪些编解码器、每次通话时都有哪些媒体(通话时有几路音频 / 视频)以及底层网络使用的是什么协议,也就是说你就相当于拿到了打开 WebRTC 大门的一把钥匙。
由此可见,SDP 在 WebRTC 中是何等重要。下面就让我们正式进入正题吧!

SDP 是什么

在正式讲解 SDP 之前,你首先要弄清楚 SDP 是什么?SDP(Session Description Protocal)说直白点就是用文本描述的各端(PC 端、Mac 端、Android 端、iOS 端等)的能力。这里的能力指的是各端所支持的音频编解码器是什么,这些编解码器设定的参数是什么,使用的传输协议是什么,以及包括的音视频媒体是什么等等。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《从0打造音视频直播系统》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(13)

  • 诸葛亮了
    浏览器和ios app之间用webrtc建立视频直播,ios app退出到后台,再次进入时浏览器的直播会卡住是什么原因呢?

    作者回复: 因为你的网络连接断了,切回来之后要重新来一遍。你想你都切到后台了,如果应用程序还在跑着流量,而且流量要花钱你乐意吗?

    2019-07-31
    1
    4
  • helloa
    这一节的标题太网红了
    2019-08-30
  • just so so
    当用户发送数据量太大超过评估的带宽时,要及时减少数据包的发送:这是不是代表着视频的质量就下降了,或者会出现马赛克的情况?

    作者回复: 视频的质量会下降,但不一定会出现马赛克哈。你可以想想这是为甚么

    2019-08-26
  • David
    在流媒体描述中改变码率吧,a=rtpmap:96 VP8/90000,不过我好奇怎么更改SDP

    作者回复: 通过 SDP 是可以的,但不是你现在写的这个。另外 SDP 是可以修改的,你自己一定可能找到修改的办法的,偿试一下!

    2019-08-15
    1
  • Geek_1ae6d0
    看了sdp 但是sdp是怎么用呢 web端要我们自己去打出来吗 还是调用api

    作者回复: 自己可以将 sdp打印出来

    2019-08-14
  • Geek_855fe4
    可以使用b=AS:xxx来限制传输码率,应该是这样子的吧;
    另外,老师是否可以增加些candidate、ssrc-group、ice-ufrag、ice-pwd、fingerprint、setup等属性的深入讲解呢,以及这些属性在哪些地方会被用到。有些属性一直没能很清楚的理解,没能很好的通RTP包关联起来,谢谢老师。

    作者回复: 这些属于比较高级一些地知识了,会在其它的课程中讲解哈!

    2019-08-08
  • Geek_miao
    这里边设置传输码率 a=rtcp-fb:100 后边

    2019-08-02
  • Jason
    a=fmtp:122 profile-level-id=008016;max-mbps=42000;max-fs=3600;max-smbps=323500
    --max-mbps=42000
    2019-07-31
    1
  • 良师益友
    多个用户加入一个房间,需要sdp关于编解码部分必须一样吗?

    作者回复: 不需要,每路流都有它自己的PayloadType, webrtc会根据 PayloadType进行解码

    2019-07-30
  • 许童童
    短期记忆已经记住了SDP,晚上再回顾一下。

    作者回复: 这个一定要弄清楚,清楚之后才能对 WebRTC有更深入的理解

    2019-07-30
  • 佛学渣
    是在fmtp下设置传输码率吗?

    作者回复: 不是,你再找找答案

    2019-07-30
    1
  • 佛学渣
    l传输协议好像还有RTP/SAVP吧...

    作者回复: RTP/RTCP 、SRTP/SRTCP,后面会有讲到!

    2019-07-30
  • Beast-Of-Prey
    打卡 一遍过去记不住 明天再读一遍

    作者回复: 这块一定要多看几遍

    2019-07-30
收起评论
13
返回
顶部