APP推广合作
联系“鸟哥笔记小乔”
自媒体运营协议(一文看懂音视频流媒体协议及信令技术)
2023-02-08 11:38:56

比如,前后处理环节有美颜、滤镜、回声消除、噪声抑制等,采集有麦克风阵列等,编解码有H263,H264、H265等,传输就涉及到了本文重点介绍的RTSP/RTMP/RTP/RTCP等流媒体协议以及相关的信令技术。

一文看懂音视频流媒体协议及信令技术

自媒体运营协议(一文看懂音视频流媒体协议及信令技术)

音视频通信完整流程有如下几个环节:采集、编码、前后处理、传输、解码、缓冲、渲染等。

每一个细分环节,还有更细分的技术模块。比如,前后处理环节有美颜、滤镜、回声消除、噪声抑制等,采集有麦克风阵列等,编解码有H.263,H.264、H.265等,传输就涉及到了本文重点介绍的 RTSP/RTMP/RTP/RTCP 等流媒体协议以及相关的信令技术。

流媒体协议一般分成传输控制报文的协议和传输媒体数据的协议。传输控制报文的协议一般用于协商流媒体通信建立的参数等,如SIP,RTSP等协议。传输媒体数据报文一般用于传输音视频媒体数据,如RTP/RTCP/SRTP/SRTCP等协议。此外,也有部分协议将控制信令和媒体信令放在一个连接里传输的,如RTMP等协议。下面会详细介绍这些具体的协议。

SIP(Session Initiation Protocol,会话初始协议)是由IETF(Internet Engineering Task Force,因特网工程任务组)制定的多媒体通信协议。它是一个基于文本的应用层控制协议,用于创建、修改和释放一个或多个参与者的会话。SIP 是一种源于互联网的IP 语音会话控制协议,具有灵活、易于实现、便于扩展等特点。

SIP作为控制信令一般要和RTP/RTCP媒体信令配合起来用在音视频通话上,整个音视频交互如上图所示。

【更多音视频学习资料,点击下方链接免费领取↓↓,先码住不迷路~】

「链接」

交互细节如下:

  1. Alice发起Invite请求(携带SDP,媒体初始化描述信息),邀请Bob进行音视频通话。
  2. 如果Bob在线,服务器将Alice的请求转发给Bob。
  3. Bob收到Alice的请求之后,回180 Ringing振铃以及200 ok的确认接入音视频通话。
  4. Alice收到确认后,使用RTP/RTCP进行音视频通话。
  5. Alice发Bye请求,挂断电话。
  6. Bob回200 ok,确认挂断电话。

SIP协议原来比较多的用于视频会议,现在基本上被RTMP协议取代了。

RTMP(Real Time Messaging Protocol, 实时消息传输协议)Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输 开发的开放协议。RTMP是基于TCP协议的一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种,主要用来在 Flash/AIR 平台和支持 RTMP 协议的流媒体/交互服务器之间进行音视频和数据通信。

如上图所示,RTMP的交互流程中,需要经过握手,建立连接,建立流,播放,停止等阶段。在播放流媒体之前,需要先创建网络连接(NetConnection)和网络流(NetStream)。网络连接表示客户端和服务器之间的连通关系,而网络流代表了发送多媒体的通道。所以,客户端和服务器之间只能建立一个网络连接,而基于这个网络连接可以创建很多网络流。

RTMP 是目前主流的流媒体传输协议,广泛用于直播领域,目前市面上绝大多数的直播产品都采用了这个协议。

RTSP(Real Time Streaming Protocol, 实时流传输协议),RFC2326,,是基于TCP或UDP的一个应用层协议,由哥伦比亚大学、网景和RealNetworks公司提交的IETF RFC标准。该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。SIP作为控制信令一般要和RTP/RTCP媒体信令配合起来用在音视频媒体传输上。

RTSP的交互流程如上图所示。其交互细节如下:

  1. 客户端询问(OPTIONS)服务器目前有哪些方法。
  2. 服务器提供所有可用的方法。
  3. 客户端请求(DESCRIBE)服务器提供SDP(媒体初始化描述信息)。
  4. 服务器提供SDP(媒体初始化描述信息)
  5. 设置(SETUP)音视频的会话属性,以及传输模式,提醒服务器建立会话。
  6. 服务器建立会话,返回会话描述标识符以及会话的相关信息。
  7. 客户端请求播放(PLAY)。
  8. 服务器响应请求。
  9. 服务求发送(RTP/RTCP)流媒体数据。
  10. 客户端请求关闭(TEARDOWN)会话。
  11. 服务器响应关闭请求。

和RTMP协议一样,RTSP也经常用于直播。但RTSP协议一般传输的是ts,mp4格式的流,而RTMP协议一般传输的是flv,f4v格式流。

RTSP传输一般需要2-3个通道,命令和数据通道分离,RTMP一般在TCP一个通道上传输命令和数据。

目前使用比较多的浏览器和Flash都不支持rtsp支持。所以,RTSP在直播领域,没有RTMP使用广泛。

RTP(real-time transport protocol, 实时传输协议),在多点传送(多播)或单点传送(单播)的网络服务上,提供端对端的网络传输功能,适合应用程序传输实时数据,如:音频,视频或者仿真数据。RTP没有为实时服务提供资源预留的功能,也不能保证QoS(服务质量)。

数据传输功能由一个控制协议(RTCP)来扩展,通过扩展,可以用一种方式对数据传输进行监测控制,该协议(RTCP)可以升级到大型的多点传送(多播)网络,并提供最小限度的控制和鉴别功能。

RTP和RTCP被设计成和下面的传输层和网络层无关。协议支持RTP标准的转换器和混合器的使用。

RTP由IETF的多媒体传输工作小组1996年在RFC 1889中公布,现行版本为RFC3550,详见:https://tools.ietf.org/html/rfc3550。

自媒体运营协议(一文看懂音视频流媒体协议及信令技术)

RTCP(Real-time Transport Control Protocol或RTP Control Protocol,实时传输控制协议)是实时传输协议(RTP)的一个姐妹协议,由RFC 3550定义(取代作废的RFC 1889)。

RTP 使用一个 偶数 UDP port ;而RTCP 则使用 RTP 的下一个 port,也就是一个奇数 port。RTCP与RTP联合工作,RTP实施实际数据的传输,RTCP则负责将控制包送至电话中的每个人。其主要功能是就RTP正在提供的服务质量做出反馈。

RTCP协议处理机根据定义了五种类型的报文:

  • SR: sender report
  • RR: receiver report
  • SDES: source description items.
  • BYE: indicates end of participation.
  • APP: application specific functions

SR报文用于发送端报告本端的数据发送统计信息和数据接收统计信息,RR报文用于报告本端的数据接收统计信息,SDES报文用于报告本端的描述性信息,BYE在本端离开会话时发送,而APP则是特定于应用的数据。

SRTP(Secure Real-time Transport Protocol,安全实时传输协议)是在实时传输协议RTP基础上所定义的一个协议,旨在为单播和多播应用程序中的实时传输协议的数据提供加密、消息认证、完整性保证和重放保护。它是由David Oran(思科)和Rolf Blom(爱立信)开发的,并最早由IETF于2004年3月作为RFC3711发布。

由于RTP协议和RTCP协议有着紧密的联系,SRTP同样也有一个伴生协议RTCP(Secure RTCP或SRTCP, 安全实时传输控制协议)。SRTCP为RTCP提供类似的与安全有关的特性,就像SRTP为RTP提供的那些一样。

在使用RTP或RTCP时,使不使用SRTP或SRTCP协议是可选的;但即使使用了SRTP或SRTCP,所有它们提供的特性(如加密和认证)也都是可选的,这些特性可以被独立地使用或禁用。唯一的例外是在使用SRTCP时,必须要用到其消息认证特性。

目前主流的音视频方案商都会提供包括流媒体信令协议在内的音视频方案SDK,不需要开发者重新移植开发流媒体协议。

一般厂商会同步提供端侧和云侧的SDK,SDK使用的流媒体协议可能是SIP/RTMP/RTSP/RTCP/SRTP/SRTCP等协议, 也可能是厂商私有自定义的协议,但基本流媒体协议的原理几乎都是类似的。

大多数时候,只需要在厂商SDK的流媒体协议的基础上做信令的开发,就可以完成一个完整的流媒体通信。

如上图所示,设计了一套基于MQTT的SIP协议的信令,目的是为了用这套信令去协商获取厂商SDK流媒体通信的参数。具体流程如下:

  1. Alice向服务器发SIP Invite消息邀请Bob通话。
  2. 服务器收到SIP Invite消息请求后,通过厂商SDK,确认Bob是否处于在线状态。
  3. 如果Bob不在线,直接返回异常给Alice,如果Bob在线,将Invite请求转发给Bob。
  4. Bob无论同意还是拒绝都发出回复给服务器,由服务器转发给Alice。
  5. 如果Bob同意接收Alice的视频通话,服务器同时向Alice和Bob发送厂商流媒体通信的参数,如聊天房间号等信息。
  6. Alice和Bob使用服务器发送的流媒体通信的参数,配置到集成流媒体通信端侧SDK的应用上。Alice和Bob就可以正常进行通信。
  7. Alice发起SIP bye请求断开整个通话,服务器和Bob收到请求后,同步断开连接,并回收对应的资源。

音视频通信涉及的协议技术,远远不止以上这些,包括NAT,TURN,STUN和ICE等很多技术本文并未涉及,未来会进一步深入研究这些技术细节。

原文链接:https://mp.weixin.qq.com/s?__biz=MzA4MjU1MDk3Ng==&mid=2451533009&idx=1&sn=82da45d9ebf6029a56fb975b27640448&chksm=886fc57ebf184c688e7830535775e684bdf74bf58e0764a86320a176dd7febea497ca3a45035&mpshare=1&scene=23&srcid=0107x4yzPhAujnL6gdqRm4r0&sharer_sharetime=1673020902002&sharer_shareid=a96e9b09ebf11547090dd99009e597bb#rd

最后欢迎大家加入「链接」 C++音视频开发交流君羊这里有知识干货、还能跟技术大佬们一起讨论交流。


#音视频开发##流媒体##程序员##只精通一门C语言的人,算不算程序员#

自媒体运营协议(一文看懂音视频流媒体协议及信令技术)
关键词
赵同学
分享到朋友圈
收藏
收藏
评分

综合评分:

我的评分
Xinstall 15天会员特权
Xinstall是专业的数据分析服务商,帮企业追踪渠道安装来源、裂变拉新统计、广告流量指导等,广泛应用于广告效果统计、APP地推与CPS/CPA归属统计等方面。
20羽毛
立即兑换
一书一课30天会员体验卡
领30天VIP会员,110+门职场大课,250+本精读好书免费学!助你提升职场力!
20羽毛
立即兑换
顺丰同城急送全国通用20元优惠券
顺丰同城急送是顺丰推出的平均1小时送全城的即时快送服务,专业安全,准时送达!
30羽毛
立即兑换
赵同学
赵同学
发表文章20874
确认要消耗 羽毛购买
自媒体运营协议(一文看懂音视频流媒体协议及信令技术)吗?
考虑一下
很遗憾,羽毛不足
我知道了

我们致力于提供一个高质量内容的交流平台。为落实国家互联网信息办公室“依法管网、依法办网、依法上网”的要求,为完善跟帖评论自律管理,为了保护用户创造的内容、维护开放、真实、专业的平台氛围,我们团队将依据本公约中的条款对注册用户和发布在本平台的内容进行管理。平台鼓励用户创作、发布优质内容,同时也将采取必要措施管理违法、侵权或有其他不良影响的网络信息。


一、根据《网络信息内容生态治理规定》《中华人民共和国未成年人保护法》等法律法规,对以下违法、不良信息或存在危害的行为进行处理。
1. 违反法律法规的信息,主要表现为:
    1)反对宪法所确定的基本原则;
    2)危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一,损害国家荣誉和利益;
    3)侮辱、滥用英烈形象,歪曲、丑化、亵渎、否定英雄烈士事迹和精神,以侮辱、诽谤或者其他方式侵害英雄烈士的姓名、肖像、名誉、荣誉;
    4)宣扬恐怖主义、极端主义或者煽动实施恐怖活动、极端主义活动;
    5)煽动民族仇恨、民族歧视,破坏民族团结;
    6)破坏国家宗教政策,宣扬邪教和封建迷信;
    7)散布谣言,扰乱社会秩序,破坏社会稳定;
    8)宣扬淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪;
    9)煽动非法集会、结社、游行、示威、聚众扰乱社会秩序;
    10)侮辱或者诽谤他人,侵害他人名誉、隐私和其他合法权益;
    11)通过网络以文字、图片、音视频等形式,对未成年人实施侮辱、诽谤、威胁或者恶意损害未成年人形象进行网络欺凌的;
    12)危害未成年人身心健康的;
    13)含有法律、行政法规禁止的其他内容;


2. 不友善:不尊重用户及其所贡献内容的信息或行为。主要表现为:
    1)轻蔑:贬低、轻视他人及其劳动成果;
    2)诽谤:捏造、散布虚假事实,损害他人名誉;
    3)嘲讽:以比喻、夸张、侮辱性的手法对他人或其行为进行揭露或描述,以此来激怒他人;
    4)挑衅:以不友好的方式激怒他人,意图使对方对自己的言论作出回应,蓄意制造事端;
    5)羞辱:贬低他人的能力、行为、生理或身份特征,让对方难堪;
    6)谩骂:以不文明的语言对他人进行负面评价;
    7)歧视:煽动人群歧视、地域歧视等,针对他人的民族、种族、宗教、性取向、性别、年龄、地域、生理特征等身份或者归类的攻击;
    8)威胁:许诺以不良的后果来迫使他人服从自己的意志;


3. 发布垃圾广告信息:以推广曝光为目的,发布影响用户体验、扰乱本网站秩序的内容,或进行相关行为。主要表现为:
    1)多次发布包含售卖产品、提供服务、宣传推广内容的垃圾广告。包括但不限于以下几种形式:
    2)单个帐号多次发布包含垃圾广告的内容;
    3)多个广告帐号互相配合发布、传播包含垃圾广告的内容;
    4)多次发布包含欺骗性外链的内容,如未注明的淘宝客链接、跳转网站等,诱骗用户点击链接
    5)发布大量包含推广链接、产品、品牌等内容获取搜索引擎中的不正当曝光;
    6)购买或出售帐号之间虚假地互动,发布干扰网站秩序的推广内容及相关交易。
    7)发布包含欺骗性的恶意营销内容,如通过伪造经历、冒充他人等方式进行恶意营销;
    8)使用特殊符号、图片等方式规避垃圾广告内容审核的广告内容。


4. 色情低俗信息,主要表现为:
    1)包含自己或他人性经验的细节描述或露骨的感受描述;
    2)涉及色情段子、两性笑话的低俗内容;
    3)配图、头图中包含庸俗或挑逗性图片的内容;
    4)带有性暗示、性挑逗等易使人产生性联想;
    5)展现血腥、惊悚、残忍等致人身心不适;
    6)炒作绯闻、丑闻、劣迹等;
    7)宣扬低俗、庸俗、媚俗内容。


5. 不实信息,主要表现为:
    1)可能存在事实性错误或者造谣等内容;
    2)存在事实夸大、伪造虚假经历等误导他人的内容;
    3)伪造身份、冒充他人,通过头像、用户名等个人信息暗示自己具有特定身份,或与特定机构或个人存在关联。


6. 传播封建迷信,主要表现为:
    1)找人算命、测字、占卜、解梦、化解厄运、使用迷信方式治病;
    2)求推荐算命看相大师;
    3)针对具体风水等问题进行求助或咨询;
    4)问自己或他人的八字、六爻、星盘、手相、面相、五行缺失,包括通过占卜方法问婚姻、前程、运势,东西宠物丢了能不能找回、取名改名等;


7. 文章标题党,主要表现为:
    1)以各种夸张、猎奇、不合常理的表现手法等行为来诱导用户;
    2)内容与标题之间存在严重不实或者原意扭曲;
    3)使用夸张标题,内容与标题严重不符的。


8.「饭圈」乱象行为,主要表现为:
    1)诱导未成年人应援集资、高额消费、投票打榜
    2)粉丝互撕谩骂、拉踩引战、造谣攻击、人肉搜索、侵犯隐私
    3)鼓动「饭圈」粉丝攀比炫富、奢靡享乐等行为
    4)以号召粉丝、雇用网络水军、「养号」形式刷量控评等行为
    5)通过「蹭热点」、制造话题等形式干扰舆论,影响传播秩序


9. 其他危害行为或内容,主要表现为:
    1)可能引发未成年人模仿不安全行为和违反社会公德行为、诱导未成年人不良嗜好影响未成年人身心健康的;
    2)不当评述自然灾害、重大事故等灾难的;
    3)美化、粉饰侵略战争行为的;
    4)法律、行政法规禁止,或可能对网络生态造成不良影响的其他内容。


二、违规处罚
本网站通过主动发现和接受用户举报两种方式收集违规行为信息。所有有意的降低内容质量、伤害平台氛围及欺凌未成年人或危害未成年人身心健康的行为都是不能容忍的。
当一个用户发布违规内容时,本网站将依据相关用户违规情节严重程度,对帐号进行禁言 1 天、7 天、15 天直至永久禁言或封停账号的处罚。当涉及欺凌未成年人、危害未成年人身心健康、通过作弊手段注册、使用帐号,或者滥用多个帐号发布违规内容时,本网站将加重处罚。


三、申诉
随着平台管理经验的不断丰富,本网站出于维护本网站氛围和秩序的目的,将不断完善本公约。
如果本网站用户对本网站基于本公约规定做出的处理有异议,可以通过「建议反馈」功能向本网站进行反馈。
(规则的最终解释权归属本网站所有)

我知道了
恭喜你~答对了
+5羽毛
下一次认真读哦
成功推荐给其他人
+ 10羽毛
评论成功且进入审核!审核通过后,您将获得10羽毛的奖励。分享本文章给好友阅读最高再得15羽毛~
(羽毛可至 "羽毛精选" 兑换礼品)
好友微信扫一扫
复制链接