当前位置: 首页 > news >正文

zlmediakit的webrtc播放交互流程

一。webrtc视频播放的时序流程图image

 

二。浏览器发送的offer信息

v=0
o=- 3802064708842271905 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0 1 2
a=extmap-allow-mixed
a=msid-semantic: WMS
m=audio 9 UDP/TLS/RTP/SAVPF 111 63 9 0 8 13 110 126     // 浏览器音频流通道
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:ofY1
a=ice-pwd:ePn5fvGsV4xYHuzDpZbPbaBr
a=ice-options:trickle
a=fingerprint:sha-256 3C:E1:95:E7:CA:07:3A:9E:76:51:A2:AD:56:D6:64:53:CE:6E:F0:B0:30:6C:AE:B4:BD:E9:26:0B:8F:9F:9B:FB
a=setup:actpass
a=mid:0
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
a=recvonly                                             // 浏览器只接收
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:111 opus/48000/2                              // 浏览器支持的音频编码
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:63 red/48000/2
a=fmtp:63 111/111
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:126 telephone-event/8000
m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 35 36 37 38 103 104 107 108 109 114 115 116 117 118 39 40 41 42 43 44 45 46 47 48 119 120 121 122 49 50 51 52 123 124 125 53         // 浏览器视频流通道
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:ofY1
a=ice-pwd:ePn5fvGsV4xYHuzDpZbPbaBr
a=ice-options:trickle
a=fingerprint:sha-256 3C:E1:95:E7:CA:07:3A:9E:76:51:A2:AD:56:D6:64:53:CE:6E:F0:B0:30:6C:AE:B4:BD:E9:26:0B:8F:9F:9B:FB
a=setup:actpass
a=mid:1
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:13 urn:3gpp:video-orientation
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:10 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:11 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=recvonly                                            // 浏览器只接收
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000                                 // 浏览器支持的视频编码
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:98 VP9/90000
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=fmtp:98 profile-id=0
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:100 VP9/90000
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=fmtp:100 profile-id=2
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:35 VP9/90000
a=rtcp-fb:35 goog-remb
a=rtcp-fb:35 transport-cc
a=rtcp-fb:35 ccm fir
a=rtcp-fb:35 nack
a=rtcp-fb:35 nack pli
a=fmtp:35 profile-id=1
a=rtpmap:36 rtx/90000
a=fmtp:36 apt=35
a=rtpmap:37 VP9/90000
a=rtcp-fb:37 goog-remb
a=rtcp-fb:37 transport-cc
a=rtcp-fb:37 ccm fir
a=rtcp-fb:37 nack
a=rtcp-fb:37 nack pli
a=fmtp:37 profile-id=3
a=rtpmap:38 rtx/90000
a=fmtp:38 apt=37
a=rtpmap:103 H264/90000
a=rtcp-fb:103 goog-remb
a=rtcp-fb:103 transport-cc
a=rtcp-fb:103 ccm fir
a=rtcp-fb:103 nack
a=rtcp-fb:103 nack pli
a=fmtp:103 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
a=rtpmap:104 rtx/90000
a=fmtp:104 apt=103
a=rtpmap:107 H264/90000
a=rtcp-fb:107 goog-remb
a=rtcp-fb:107 transport-cc
a=rtcp-fb:107 ccm fir
a=rtcp-fb:107 nack
a=rtcp-fb:107 nack pli
a=fmtp:107 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f
a=rtpmap:108 rtx/90000
a=fmtp:108 apt=107
a=rtpmap:109 H264/90000
a=rtcp-fb:109 goog-remb
a=rtcp-fb:109 transport-cc
a=rtcp-fb:109 ccm fir
a=rtcp-fb:109 nack
a=rtcp-fb:109 nack pli
a=fmtp:109 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:114 rtx/90000
a=fmtp:114 apt=109
a=rtpmap:115 H264/90000
a=rtcp-fb:115 goog-remb
a=rtcp-fb:115 transport-cc
a=rtcp-fb:115 ccm fir
a=rtcp-fb:115 nack
a=rtcp-fb:115 nack pli
a=fmtp:115 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f
a=rtpmap:116 rtx/90000
a=fmtp:116 apt=115
a=rtpmap:117 H264/90000
a=rtcp-fb:117 goog-remb
a=rtcp-fb:117 transport-cc
a=rtcp-fb:117 ccm fir
a=rtcp-fb:117 nack
a=rtcp-fb:117 nack pli
a=fmtp:117 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f
a=rtpmap:118 rtx/90000
a=fmtp:118 apt=117
a=rtpmap:39 H264/90000
a=rtcp-fb:39 goog-remb
a=rtcp-fb:39 transport-cc
a=rtcp-fb:39 ccm fir
a=rtcp-fb:39 nack
a=rtcp-fb:39 nack pli
a=fmtp:39 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=4d001f
a=rtpmap:40 rtx/90000
a=fmtp:40 apt=39
a=rtpmap:41 H264/90000
a=rtcp-fb:41 goog-remb
a=rtcp-fb:41 transport-cc
a=rtcp-fb:41 ccm fir
a=rtcp-fb:41 nack
a=rtcp-fb:41 nack pli
a=fmtp:41 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=f4001f
a=rtpmap:42 rtx/90000
a=fmtp:42 apt=41
a=rtpmap:43 H264/90000
a=rtcp-fb:43 goog-remb
a=rtcp-fb:43 transport-cc
a=rtcp-fb:43 ccm fir
a=rtcp-fb:43 nack
a=rtcp-fb:43 nack pli
a=fmtp:43 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=f4001f
a=rtpmap:44 rtx/90000
a=fmtp:44 apt=43
a=rtpmap:45 AV1/90000
a=rtcp-fb:45 goog-remb
a=rtcp-fb:45 transport-cc
a=rtcp-fb:45 ccm fir
a=rtcp-fb:45 nack
a=rtcp-fb:45 nack pli
a=fmtp:45 level-idx=5;profile=0;tier=0
a=rtpmap:46 rtx/90000
a=fmtp:46 apt=45
a=rtpmap:47 AV1/90000
a=rtcp-fb:47 goog-remb
a=rtcp-fb:47 transport-cc
a=rtcp-fb:47 ccm fir
a=rtcp-fb:47 nack
a=rtcp-fb:47 nack pli
a=fmtp:47 level-idx=5;profile=1;tier=0
a=rtpmap:48 rtx/90000
a=fmtp:48 apt=47
a=rtpmap:119 H264/90000
a=rtcp-fb:119 goog-remb
a=rtcp-fb:119 transport-cc
a=rtcp-fb:119 ccm fir
a=rtcp-fb:119 nack
a=rtcp-fb:119 nack pli
a=fmtp:119 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=64001f
a=rtpmap:120 rtx/90000
a=fmtp:120 apt=119
a=rtpmap:121 H264/90000
a=rtcp-fb:121 goog-remb
a=rtcp-fb:121 transport-cc
a=rtcp-fb:121 ccm fir
a=rtcp-fb:121 nack
a=rtcp-fb:121 nack pli
a=fmtp:121 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=64001f
a=rtpmap:122 rtx/90000
a=fmtp:122 apt=121
a=rtpmap:49 H265/90000
a=rtcp-fb:49 goog-remb
a=rtcp-fb:49 transport-cc
a=rtcp-fb:49 ccm fir
a=rtcp-fb:49 nack
a=rtcp-fb:49 nack pli
a=fmtp:49 level-id=180;profile-id=1;tier-flag=0;tx-mode=SRST
a=rtpmap:50 rtx/90000
a=fmtp:50 apt=49
a=rtpmap:51 H265/90000
a=rtcp-fb:51 goog-remb
a=rtcp-fb:51 transport-cc
a=rtcp-fb:51 ccm fir
a=rtcp-fb:51 nack
a=rtcp-fb:51 nack pli
a=fmtp:51 level-id=180;profile-id=2;tier-flag=0;tx-mode=SRST
a=rtpmap:52 rtx/90000
a=fmtp:52 apt=51
a=rtpmap:123 red/90000
a=rtpmap:124 rtx/90000
a=fmtp:124 apt=123
a=rtpmap:125 ulpfec/90000
a=rtpmap:53 flexfec-03/90000
a=rtcp-fb:53 goog-remb
a=rtcp-fb:53 transport-cc
a=fmtp:53 repair-window=10000000
m=application 9 UDP/DTLS/SCTP webrtc-datachannel    // 浏览器数据通道流
c=IN IP4 0.0.0.0
a=ice-ufrag:ofY1
a=ice-pwd:ePn5fvGsV4xYHuzDpZbPbaBr
a=ice-options:trickle
a=fingerprint:sha-256 3C:E1:95:E7:CA:07:3A:9E:76:51:A2:AD:56:D6:64:53:CE:6E:F0:B0:30:6C:AE:B4:BD:E9:26:0B:8F:9F:9B:FB
a=setup:actpass
a=mid:2
a=sctp-port:5000
a=max-message-size:262144

三。ZLM回复的answer信息

v=0
o=- 3802064708842271905 2 IN IP4 172.23.57.90
s=-
t=0 0
a=group:BUNDLE 0 1 2
a=msid-semantic: WMS
a=ice-lite                                       // ZLM服务端采用ICE LITE模式
m=audio 8000 UDP/TLS/RTP/SAVPF 8                 // ZLM的音频流
c=IN IP4 172.23.57.90
a=rtcp:8000 IN IP4 172.23.57.90
a=ice-ufrag:rBIABB9AH0A=_1427
a=ice-pwd:j9BnFnaGJTZuQ5xLlz8sP5Jb
a=ice-options:trickle
a=fingerprint:sha-256 5D:43:0F:2C:BD:82:BB:C5:B4:77:42:D3:8C:2B:D5:1A:32:59:39:1D:78:7A:BB:88:E2:EF:2A:60:37:AD:6E:A3
a=setup:passive
a=mid:0
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=inactive                                      // ZLM中未包含音频流
a=rtcp-mux
a=rtpmap:8 PCMA/8000/1
a=msid:zlmediakit-mslabel zlmediakit-label-0
a=ssrc:2 cname:zlmediakit-rtp
a=ssrc:2 msid:zlmediakit-mslabel zlmediakit-label-0
a=ssrc:2 mslabel:zlmediakit-mslabel
a=ssrc:2 label:zlmediakit-label-0
a=candidate:udpcandidate 1 udp 120 172.23.57.90 8000 typ host                   // ZLM的候选地址UDP
a=candidate:tcpcandidate 1 tcp 115 172.23.57.90 8000 typ host tcptype passive   // ZLM的候选地址TCP
m=video 8000 UDP/TLS/RTP/SAVPF 103 104         // ZLM的视频流
a=mid:1
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset
a=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space
a=extmap:10 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:11 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=sendonly                                    // ZLM只发送视频流
a=rtpmap:103 H264/90000                       // ZLM协商出来支持的视频编码格式
a=rtcp-fb:103 ccm fir
a=rtcp-fb:103 goog-remb
a=rtcp-fb:103 nack
a=rtcp-fb:103 nack pli
a=rtcp-fb:103 transport-cc
a=fmtp:103 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
a=rtpmap:104 rtx/90000
a=fmtp:104 apt=103
a=msid:zlmediakit-mslabel zlmediakit-label-1
a=ssrc:1 cname:zlmediakit-rtp
a=ssrc:1 msid:zlmediakit-mslabel zlmediakit-label-1
a=ssrc:1 mslabel:zlmediakit-mslabel
a=ssrc:1 label:zlmediakit-label-1
a=ssrc:3 cname:zlmediakit-rtp
a=ssrc:3 msid:zlmediakit-mslabel zlmediakit-label-1
a=ssrc:3 mslabel:zlmediakit-mslabel
a=ssrc:3 label:zlmediakit-label-1
a=ssrc-group:FID 1 3
m=application 8000 UDP/DTLS/SCTP webrtc-datachannel     // ZLM的数据通道
a=mid:2
a=sctp-port:5000

  

 

 

 

http://www.jsqmd.com/news/321654/

相关文章:

  • 2026年手机膜工厂推荐:智能制造趋势排名,涵盖研发与品控全链路痛点解析
  • cf div2 1077 CDE
  • 2026年手机膜工厂推荐:多场景生产实力评价,针对定制化与产能痛点精准指南
  • 豆包能做广告吗?豆包AI推广服务推荐(2026年2月)
  • 2026年全屋定制品牌推荐:五大权威报告交叉验证终极排名与选型指南(2026版)
  • 2026年全屋定制品牌专项测评:选型指引
  • CF1056E Check Transcription 题解
  • 2026年手机膜工厂推荐:基于跨境与代工场景深度评测,解决品质与交付核心痛点
  • 2026热门的全面预算管理系统源头厂家哪家好
  • 厦门室内装修公司大揭秘:实力榜单助你打造理想家
  • 2026年高端酒店设计公司推荐:打造品质旅居空间
  • 长沙小学私立学校哪家靠谱,年度排名为您揭晓优质学校
  • 天津一鑫时尚假发补发私人定制 联系方式:客观评估定制需求与风险
  • 基于单片机的数字时钟设计(有完整资料)
  • 2026年全屋定制品牌专项测评:选型指引方向
  • 高性价比的旧房翻新品牌企业哪家好,廊坊富迪装饰值得关注
  • 2026年手机膜工厂推荐:跨境与定制化需求深度评价,直击产能与合规痛点
  • 衣柜除湿照明(有完整资料)
  • 搭便车,是实用的生活智慧
  • 2026年众信旅游推荐:基于行业地位与资源整合能力的深度评测与排名
  • 2026年手机膜工厂推荐:多场景应用深度评价,针对定制化与产能痛点精准指南
  • 分享艺术涂料漆代理加盟经验,玛斯涂成行业热门选择
  • ‌AI驱动的竞品App对比测试用例自动生成
  • 基于大数据hadoop+spark二手房房价预测与分析系统 机器学习实战
  • VMware替换关键技术:核心业务系统中,访存密集型应用的性能优化
  • 支付宝红包套装闲置不用慌,高效盘活攻略请收好
  • 解锁工业制造黑科技:在线视觉检测与激光工艺闭环控制
  • 仿石漆选购,推荐玛斯涂这个性价比高的靠谱品牌
  • 2026年抛丸机推荐:基于多行业应用场景评价,针对清理效率与定制化需求
  • CTF选手必藏的100个实战解题思路,从零基础到精通,收藏这篇就够了!