<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://130.wiki/index.php?action=history&amp;feed=atom&amp;title=WebRTC</id>
	<title>WebRTC - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://130.wiki/index.php?action=history&amp;feed=atom&amp;title=WebRTC"/>
	<link rel="alternate" type="text/html" href="https://130.wiki/index.php?title=WebRTC&amp;action=history"/>
	<updated>2026-10-31T00:40:00Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://130.wiki/index.php?title=WebRTC&amp;diff=6371&amp;oldid=prev</id>
		<title>IdleTap-bot：​由旧格式Infobox转换为新参数格式（label/data），修复空信息框（由IdleTap-bot执行）</title>
		<link rel="alternate" type="text/html" href="https://130.wiki/index.php?title=WebRTC&amp;diff=6371&amp;oldid=prev"/>
		<updated>2026-08-11T10:29:48Z</updated>

		<summary type="html">&lt;p&gt;由旧格式Infobox转换为新参数格式（label/data），修复空信息框（由IdleTap-bot执行）&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年8月11日 (二) 10:29的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;第1行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第1行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Infobox&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Infobox&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;标题 &lt;/del&gt;= WebRTC&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;title &lt;/ins&gt;= WebRTC&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;内容 &lt;/del&gt;=  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{!}}-&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;label1 &lt;/ins&gt;= 全称&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;! &lt;/del&gt;全称&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| data1 = &lt;/ins&gt;Web Real-Time Communication&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{!}} &lt;/del&gt;Web Real-Time Communication&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{!}}-&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| label2 = &lt;/ins&gt;类型&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;! &lt;/del&gt;类型&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| data2 = &lt;/ins&gt;开放标准 / 通信协议&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{!}} &lt;/del&gt;开放标准 / 通信协议&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{!}}-&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| label3 = &lt;/ins&gt;标准化机构&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;! &lt;/del&gt;标准化机构&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| data3 = &lt;/ins&gt;W3C、IETF&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{!}} &lt;/del&gt;W3C、IETF&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{!}}-&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| label4 = &lt;/ins&gt;标准化时间&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;! &lt;/del&gt;标准化时间&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| data4 = &lt;/ins&gt;2021年1月（W3C Recommendation）&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{!}} &lt;/del&gt;2021年1月（W3C Recommendation）&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{!}}-&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| label5 = &lt;/ins&gt;首次开源&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;! &lt;/del&gt;首次开源&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| data5 = &lt;/ins&gt;2011年5月&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{!}} &lt;/del&gt;2011年5月&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{!}}-&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| label6 = &lt;/ins&gt;开发者&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;! &lt;/del&gt;开发者&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| data6 = &lt;/ins&gt;Google（初始）&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{!}} &lt;/del&gt;Google（初始）&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{!}}-&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| label7 = &lt;/ins&gt;传输层&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;! &lt;/del&gt;传输层&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| data7 = &lt;/ins&gt;UDP（RTP/DTLS）、TCP（信令）&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{!}} &lt;/del&gt;UDP（RTP/DTLS）、TCP（信令）&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{!}}-&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| label8 = &lt;/ins&gt;核心API&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;! &lt;/del&gt;核心API&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| data8 = &lt;/ins&gt;getUserMedia、RTCPeerConnection、RTCDataChannel&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{!}} &lt;/del&gt;getUserMedia、RTCPeerConnection、RTCDataChannel&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l34&quot;&gt;第34行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第33行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;WebRTC的技术根基可追溯至1990年代末成立的瑞典公司Global IP Solutions（GIPS），该公司专注于开发高鲁棒性的实时音视频编解码与网络传输引擎，其技术曾应用于Skype等早期VoIP产品。&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;[https://blog.portaone.com/sip-is-dead-long-live-webrtc/ SIP Is Dead. Long Live WebRTC! - PortaOne]&amp;lt;/ref&amp;gt; 2010年，[[Google]]以约6820万美元收购GIPS，同时收购了拥有VP8视频编解码技术的On2 Technologies。&amp;lt;ref name=&amp;quot;:3&amp;quot;&amp;gt;[https://cloudinary.com/guides/video-formats/vp8-vs-vp9-8-key-differences-and-how-to-choose VP8 vs. VP9: 8 Key Differences &amp;amp; How to Choose - Cloudinary]&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;WebRTC的技术根基可追溯至1990年代末成立的瑞典公司Global IP Solutions（GIPS），该公司专注于开发高鲁棒性的实时音视频编解码与网络传输引擎，其技术曾应用于Skype等早期VoIP产品。&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;[https://blog.portaone.com/sip-is-dead-long-live-webrtc/ SIP Is Dead. Long Live WebRTC! - PortaOne]&amp;lt;/ref&amp;gt; 2010年，[[Google]]以约6820万美元收购GIPS，同时收购了拥有VP8视频编解码技术的On2 Technologies。&amp;lt;ref name=&amp;quot;:3&amp;quot;&amp;gt;[https://cloudinary.com/guides/video-formats/vp8-vs-vp9-8-key-differences-and-how-to-choose VP8 vs. VP9: 8 Key Differences &amp;amp; How to Choose - Cloudinary]&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2011年5月&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;，Google&lt;/del&gt;将相关代码开源并正式提出WebRTC项目，同年IETF成立rtcweb工作组，W3C成立WebRTC工作组，两个标准化机构开始了长达十年的协同标准化工作。&amp;lt;ref name=&quot;:4&quot;&amp;gt;[https://www.forasoft.com/learn/video-streaming/articles-streaming/webrtc-explained WebRTC Explained Without Arcana - ForaSoft]&amp;lt;/ref&amp;gt; 2013年，首个跨浏览器WebRTC视频通话演示成功。2021年1月26日，W3C与IETF联合宣布WebRTC成为正式标准，使其成为继插件时代终结后唯一 survived 的浏览器原生媒体传输标准。&amp;lt;ref name=&quot;:0&quot; /&amp;gt;&amp;lt;ref name=&quot;:4&quot; /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2011年5月&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;，[[Go]]ogle&lt;/ins&gt;将相关代码开源并正式提出WebRTC项目，同年IETF成立rtcweb工作组，W3C成立WebRTC工作组，两个标准化机构开始了长达十年的协同标准化工作。&amp;lt;ref name=&quot;:4&quot;&amp;gt;[https://www.forasoft.com/learn/video-streaming/articles-streaming/webrtc-explained WebRTC Explained Without Arcana - ForaSoft]&amp;lt;/ref&amp;gt; 2013年，首个跨浏览器WebRTC视频通话演示成功。2021年1月26日，W3C与IETF联合宣布WebRTC成为正式标准，使其成为继插件时代终结后唯一 survived 的浏览器原生媒体传输标准。&amp;lt;ref name=&quot;:0&quot; /&amp;gt;&amp;lt;ref name=&quot;:4&quot; /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 技术架构 ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 技术架构 ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key 130.wiki::diff:1.41:old-1598:rev-6371:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>IdleTap-bot</name></author>
	</entry>
	<entry>
		<id>https://130.wiki/index.php?title=WebRTC&amp;diff=1598&amp;oldid=prev</id>
		<title>云云：​创建页面，内容为“{{Infobox | 标题 = WebRTC | 内容 =  {{!}}- ! 全称 {{!}} Web Real-Time Communication {{!}}- ! 类型 {{!}} 开放标准 / 通信协议 {{!}}- ! 标准化机构 {{!}} W3C、IETF {{!}}- ! 标准化时间 {{!}} 2021年1月（W3C Recommendation） {{!}}- ! 首次开源 {{!}} 2011年5月 {{!}}- ! 开发者 {{!}} Google（初始） {{!}}- ! 传输层 {{!}} UDP（RTP/DTLS）、TCP（信令） {{!}}- ! 核心API {{!}} getUserMedia、RTCPeerConnection、RTCDataChan…”</title>
		<link rel="alternate" type="text/html" href="https://130.wiki/index.php?title=WebRTC&amp;diff=1598&amp;oldid=prev"/>
		<updated>2026-07-22T03:56:35Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“{{Infobox | 标题 = WebRTC | 内容 =  {{!}}- ! 全称 {{!}} Web Real-Time Communication {{!}}- ! 类型 {{!}} 开放标准 / 通信协议 {{!}}- ! 标准化机构 {{!}} W3C、IETF {{!}}- ! 标准化时间 {{!}} 2021年1月（W3C Recommendation） {{!}}- ! 首次开源 {{!}} 2011年5月 {{!}}- ! 开发者 {{!}} Google（初始） {{!}}- ! 传输层 {{!}} UDP（RTP/DTLS）、TCP（信令） {{!}}- ! 核心API {{!}} getUserMedia、RTCPeerConnection、RTCDataChan…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox&lt;br /&gt;
| 标题 = WebRTC&lt;br /&gt;
| 内容 = &lt;br /&gt;
{{!}}-&lt;br /&gt;
! 全称&lt;br /&gt;
{{!}} Web Real-Time Communication&lt;br /&gt;
{{!}}-&lt;br /&gt;
! 类型&lt;br /&gt;
{{!}} 开放标准 / 通信协议&lt;br /&gt;
{{!}}-&lt;br /&gt;
! 标准化机构&lt;br /&gt;
{{!}} W3C、IETF&lt;br /&gt;
{{!}}-&lt;br /&gt;
! 标准化时间&lt;br /&gt;
{{!}} 2021年1月（W3C Recommendation）&lt;br /&gt;
{{!}}-&lt;br /&gt;
! 首次开源&lt;br /&gt;
{{!}} 2011年5月&lt;br /&gt;
{{!}}-&lt;br /&gt;
! 开发者&lt;br /&gt;
{{!}} Google（初始）&lt;br /&gt;
{{!}}-&lt;br /&gt;
! 传输层&lt;br /&gt;
{{!}} UDP（RTP/DTLS）、TCP（信令）&lt;br /&gt;
{{!}}-&lt;br /&gt;
! 核心API&lt;br /&gt;
{{!}} getUserMedia、RTCPeerConnection、RTCDataChannel&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[[Web]]RTC&amp;#039;&amp;#039;&amp;#039;（全称：Web Real-Time Communication）是一套由[[W3C]]与IETF联合标准化的开放技术框架，包含一组[[Java]]Script API及底层通信协议，支持[[浏览器]]与移动应用在不依赖插件的情况下实现点对点实时音视频通话与[[数据]]传输。&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;[https://www.ietf.org/blog/webrtc-standardized/ WebRTC transforms the communications landscape as it becomes a W3C Recommendation and IETF standards - IETF Blog]&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;[https://sheerbit.com/webrtc-vs-voip-whats-the-difference/ WebRTC vs VoIP: What&amp;#039;s the Difference? - Sheerbit Technologies]&amp;lt;/ref&amp;gt; 该框架于2021年1月被W3C正式采纳为Recommendation，同时其协议栈被IETF确立为[[互联网]]标准，标志着WebRTC成为Web平台原生实时通信的基础性技术。&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 历史 ==&lt;br /&gt;
&lt;br /&gt;
WebRTC的技术根基可追溯至1990年代末成立的瑞典公司Global IP Solutions（GIPS），该公司专注于开发高鲁棒性的实时音视频编解码与网络传输引擎，其技术曾应用于Skype等早期VoIP产品。&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;[https://blog.portaone.com/sip-is-dead-long-live-webrtc/ SIP Is Dead. Long Live WebRTC! - PortaOne]&amp;lt;/ref&amp;gt; 2010年，[[Google]]以约6820万美元收购GIPS，同时收购了拥有VP8视频编解码技术的On2 Technologies。&amp;lt;ref name=&amp;quot;:3&amp;quot;&amp;gt;[https://cloudinary.com/guides/video-formats/vp8-vs-vp9-8-key-differences-and-how-to-choose VP8 vs. VP9: 8 Key Differences &amp;amp; How to Choose - Cloudinary]&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2011年5月，Google将相关代码开源并正式提出WebRTC项目，同年IETF成立rtcweb工作组，W3C成立WebRTC工作组，两个标准化机构开始了长达十年的协同标准化工作。&amp;lt;ref name=&amp;quot;:4&amp;quot;&amp;gt;[https://www.forasoft.com/learn/video-streaming/articles-streaming/webrtc-explained WebRTC Explained Without Arcana - ForaSoft]&amp;lt;/ref&amp;gt; 2013年，首个跨浏览器WebRTC视频通话演示成功。2021年1月26日，W3C与IETF联合宣布WebRTC成为正式标准，使其成为继插件时代终结后唯一 survived 的浏览器原生媒体传输标准。&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;&amp;lt;ref name=&amp;quot;:4&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 技术架构 ==&lt;br /&gt;
&lt;br /&gt;
=== 核心API ===&lt;br /&gt;
&lt;br /&gt;
WebRTC在浏览器端通过三个核心[[JavaScript]] API暴露其功能。MediaStream API（又称getUserMedia）负责访问本地摄像头、麦克风及屏幕捕获设备，输出MediaStream对象供后续处理。&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;&amp;lt;ref name=&amp;quot;:5&amp;quot;&amp;gt;[https://dialiqo.com/how-webrtc-works-basics-real-time-peer-to-peer/ Understanding WebRTC: Real-Time Peer Communication - Dialiqo]&amp;lt;/ref&amp;gt; R[[TCP]]eerConnection API管理点对点连接的完整生命周期，包括编解码协商、带宽自适应、丢包恢复、回声消除及加密握手等。&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;&amp;lt;ref name=&amp;quot;:6&amp;quot;&amp;gt;[https://www.shareviawifi.com/blog/how-webrtc-works-file-sharing How WebRTC Works for Peer-to-Peer File Sharing - Share Via WiFi]&amp;lt;/ref&amp;gt; RTCDataChannel API则提供双向、低延迟的任意数据传输通道，支持可靠与不可靠两种传输模式，适用于实时游戏状态同步、文件传输及即时消息等场景。&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;&amp;lt;ref name=&amp;quot;:5&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 协议栈 ===&lt;br /&gt;
&lt;br /&gt;
WebRTC的底层协议栈由IETF标准化。会话描述协议（SDP）用于在通信双方间交换媒体能力、编解码偏好及传输参数，遵循offer/answer模型。&amp;lt;ref name=&amp;quot;:5&amp;quot; /&amp;gt; 交互式连接建立（ICE）框架负责在复杂网络环境下发现最优通信路径，其通过STUN[[服务器]]协助对等端发现公网IP地址与端口，并在直接连接不可行时借助TURN服务器中继媒体流量。&amp;lt;ref name=&amp;quot;:6&amp;quot; /&amp;gt;&amp;lt;ref name=&amp;quot;:7&amp;quot;&amp;gt;[https://www.videosdk.live/developer-hub/webrtc/webrtc-protocol WebRTC Protocol in 2025: The Backbone of Real-Time Peer-to-Peer Communication - VideoSDK]&amp;lt;/ref&amp;gt; 所有媒体流均强制采用D[[TLS]]-SRTP进行端到端加密，其中DTLS用于密钥交换与身份验证，SRTP用于加密RTP媒体包，该加密机制为规范强制要求而非可选配置。&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 信令机制 ===&lt;br /&gt;
&lt;br /&gt;
WebRTC规范本身不定义信令协议，开发者可自行选择[[WebSocket]]、[[HTTP]]或SIP等传输方式完成初始握手。信令阶段需交换三类信息：会话控制消息、网络地址（ICE候选）及媒体元数据（SDP offer/answer）。&amp;lt;ref name=&amp;quot;:5&amp;quot; /&amp;gt; 一旦ICE完成路径选择并建立安全通道，媒体与数据即可直接在peer间传输，信令服务器不再参与实际通信。&amp;lt;ref name=&amp;quot;:8&amp;quot;&amp;gt;[https://github.com/abhiram-ar/webRTC-from-scratch-to-scale GitHub - abhiram-ar/webRTC-from-scratch-to-scale]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 安全性 ==&lt;br /&gt;
&lt;br /&gt;
WebRTC从设计之初即将安全性作为核心原则。所有媒体流强制启用端到端加密，无法通过API禁用或降级。&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt; 浏览器在访问摄像头与麦克风前必须获得[[用户]]明确授权。此外，ICE候选收集过程可能暴露用户本地IP地址，引发隐私关切，现代浏览器已逐步采用mDNS候选替代私有IP地址以缓解该问题。&amp;lt;ref name=&amp;quot;:8&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 与VoIP的比较 ==&lt;br /&gt;
&lt;br /&gt;
WebRTC与传统VoIP技术存在显著差异。WebRTC为浏览器原生技术，无需安装插件或专用客户端，而传统VoIP通常依赖桌面应用或硬件终端。&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt; WebRTC基于开放标准且无授权费用，传统VoIP生态则常涉及SIP服务器、媒体网关及编解码许可等成本。&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt; 在[[架构]]上，WebRTC优先采用点对点直连以降低延迟与服务器负载，传统VoIP多采用集中式服务器架构。&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 应用领域 ==&lt;br /&gt;
&lt;br /&gt;
WebRTC已成为现代实时通信的基础设施。在视频会议领域，Google Meet、[[Microsoft]] Teams及Zoom的Web客户端均基于WebRTC构建。&amp;lt;ref name=&amp;quot;:7&amp;quot; /&amp;gt; 在协作工具中，它支持文档协同编辑与屏幕共享。在物联网与远程医疗场景中，WebRTC为设备远程监控与实时健康数据传输提供低延迟通道。&amp;lt;ref name=&amp;quot;:7&amp;quot; /&amp;gt; 此外，在线多人游戏、P2P文件传输、直播流媒体及客户支持嵌入式音视频通话等场景亦广泛采用该技术。&amp;lt;ref name=&amp;quot;:9&amp;quot;&amp;gt;[https://www.daydreamsoft.com/blog/webrtc-for-browser-based-multiplayer-games-building-real-time-gaming-experiences WebRTC for Browser-Based Multiplayer Games - Daydreamsoft]&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;:10&amp;quot;&amp;gt;[https://webrtc.ventures/2026/01/webrtc-tech-stack-guide-architecture-for-scalable-real-time-applications/ WebRTC Tech Stack Guide: Architecture for Scalable Real-Time Applications - WebRTC Ventures]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 扩展架构 ==&lt;br /&gt;
&lt;br /&gt;
纯点对点WebRTC在多方会议场景中存在带宽瓶颈——每增加一个参与者，各端的上行带宽需求线性增长。为此，生产级应用通常引入媒体服务器扩展架构。&amp;lt;ref name=&amp;quot;:10&amp;quot; /&amp;gt; 选择性转发单元（SFU）接收各参与者的媒体流后选择性转发给其他 peer，显著降低客户端带宽压力，支持数十至数百人规模的会议。&amp;lt;ref name=&amp;quot;:8&amp;quot; /&amp;gt; 多点控制单元（[[MC]]U）则将所有输入流混合为单一输出流，适用于传统视频会议终端兼容场景，但服务器计算开销较高。&amp;lt;ref name=&amp;quot;:10&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 参考文献 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>云云</name></author>
	</entry>
</feed>