Re: WebRTC ¦b W3C »P IETF ¼Ð·Ç¤Æªº¶i®i

2011/7/16 pingooo <ping.nsr.yeh@gmail.com>:
> ¥u¦^À³¤@­ÓÂI¡G
>> ¡uWeb Real-Time Communication¡v½¦¨¡uWeb/¤¬Ápºô¹ê®É³q°T¡v¥i¥H¶Ü¡H
¡u¤¬Ápºô¡vÀ³¸Ó¬O internet ÁÙ¬O world wide web ªºÂ½Ä¶¡H

> ¡u¤¬Ápºô¡v¤T­Ó¦r¬O¦h¥X¨Óªº¡H­^¤å¸Ì¨S¦³ "Internet" ³o­Ó¦r¡C
> Real-time ¤@¦V¬OĶ¦¨¡u§Y®É¡v¡A³o¦b real-time OS, real-time system ¸Ì¥Î«Ü¤[¤F¡C¡u¹ê®É¡v¬Ý¤£À´¡C
> ©Ò¥Hª½Ä¶¦¨¡uWeb §Y®É³q°T¡v´N¦n¤F§a¡I
¥¿¦p pingooo ©Ò¨¥¡A¦L¶H¤¤¥xÆW¹ï real-time linux/system ªºÂ½Ä¶´N¬O §Y®É linux/¨t²Î¡C
©Ò¥H­Ó¤Hı±o´NĶ¦¨¡u§Y®É¡v¨ä¹ê¬O OK ªº¡C
¡u¹ê®É¡v¬O­»´äÁÙ¬O¤j³°ªºÂ½Ä¶¡H(¦L¶H¤¤­»´ä¬Y¤½¥qªº¦WºÙ)

¤£¹L instant ½¦¨¡u§Y®É¡v¨ä¹êÀ³¸Ó¤£ºâ¬OÁc¤¤ªºÂ½Ä¶¡H
²¦³º§Ú­Ì¨S¦³¡u§Y®ÉÄÑ¡v (instant noodles) ³o­Ó¦WºÙ¡C
¥u¬O Y! ¡u§Y®É³q¡]Instant Messenger¡^¡v³o¼Ë¤l¨ú¤¤¤å¦WºÙ¡A
¤]´N³o¼Ë¤lªu¥Î¤F¡H


> Kang-Hao (Kenny) Lu <kennyluck@w3.org> ©ó 2011¦~7¤ë16¤é¤U¤È1:35 ¼g¹D¡G
>>
>> ¤§«e¸Îªi¦b°Ý§Ú HTML5 ¦³¨S¦³¯A¤Î¬y´CÅ骺³¡¥÷¡A¨ä¹ê WHATWG ªº HTML5 ¸Ì­±¦³
>> ÂI¹ïÂI¶Ç¿é¡]PeerConnection¡^¤w¸g«Ü¤[¤F¡A­è¦n´X¤Ñ«e Mozilla »P Cisco ¦X§@
>> ±À¥X¤F¤@¥÷·sªº API¡A¦b³o¸Ìµy·L¾ã²z¤@¤U¦UºØ¶i®i¡C½Ð°Ñ¦Ò¡G
>>
>> http://www.w3.org/html/ig/zh/wiki/WebRTC
>>
>> ¦³³W½dµ¥µ¥ªº³sµ²¡C
>>
>> ¥Ø«e¦³¨â¥÷ API ªº´£®×¡A°ò¥»¤W®t¶Z¤ñ°_¤§«e´£¨ì Google ¸ò Mozilla ªº¨â­Ó
>> Audio API ªº®t¶Z[1]¤ñ°_¨Ó¥i¥H»¡¤£¬O«Ü¤j¡A´X¶µ¤ñ¸û¤jªº®t²§¥]¬A¡G
>>
>> * ·í±q»·ºÝ¡]PeerConnection¡^©Î¬O±q¦Û¤vªºÄá¼v¾÷¡]getUserMedia¡^¨ú±o¤@­Ó
>> stream ¤§«á¡A¥Î <video> Åã¥Üªº¤è¦¡¡C
>>
>> Google ª©¡G
>> video.src = window.URL.getObjectURL(stream);
>>
>> Mozilla/Cisco ª©¡G
>> video.stream = stream;
>>
>> §Ú­Ó¤H¬O¤ä«ù Moziila/Cisco ª©ªº¡A¦]¬°¤ñ¸û¦nÀ´¦Ó¥B¦Ñ¹ê»¡ window.URL ¬Ý°_
>> ¨Ó¯uªº¤£¤Ó¶¶²´¡C¥t¤@¤èªºÁ¿ªk¬O³o­«½Æ¤F File API ªº¼Ò¦¡
>> ¡]window.URL.getObjectURL¡^¤£»Ý­n·sÄݩʩάO©w¸q¦P®É¦³ src ¸ò stream ±¡§Î
>> ³B²z¤è¦¡ªº¥²­n¡C
>>
>> ¥t¥~¡AMozilla/Cisco ª©ªº stream ÄÝ©ÊÁÙ¥i¥H¥Î¨Ó¨ú±o <video> ¡B<audio> ¸ò
>> <canvas>¡]¡I¡^ªº¦ê¬y¡A<canvas> + PeerConnection ´N¥i¥H°µ¨S¦³¦øªA¾¹ºÝªº¦h
>> ¤H¹CÀ¸¤F¡A¤Q¤À¥O¤H¿³¾Ä¡C½Ð°Ñ¦Ò Mozilla/Cisco ª©³W½d¨Ò¤l¡uSimulcast
>> Video¡vªºµ{¦¡½X¡C
>>
>> Google ª©ªº³W½d¦n¹³¨S¦³±q¤¸¯ÀŪ¥X stream ªº¤èªk¡]¦³¿ù½Ð§ó¥¿¡^¡A§Ú·Q¥i¯à
>> ¬O¸Ó½s¿è¡]Hixie¡^§Æ±æ¥ý§â³Ì°ò¥»ªº¨Ï¥Î®×¨Ò--µø°T·|ij--·dí©w¡A¨º¥÷³W½d¤]¤ñ
>> Moziila/Cisco ª©ªº¸Ô²Ó«Ü¦h¡C
>>
>> * ¦h¤H PeerConnection ªº³s½u¤è¦¡
>>
>> Moziila/Cisco ªº PeerConnection ªº API ¬O¥ÎÃþ¦ü Socket ªº open()
>> listen() accept() ¼Ò¦¡¡A¥i¥H accept() «Ü¦h¨Ï¥ÎªÌ¤@¦¸¼s¼½¡CGoogle ª©ªº«h
>> ¬O¤@­Ó PeerConnection ´N¬O¤@¹ï¤@¡A¤]´N¬O­n«Ø¥ß¤@¹ï¦h³s½u´N»Ý­n«Ø¥ß¦h­Ó
>> PeerConnection¡AHixie ªº¸ÑÄÀ¬O WebRTC ¨ó©w¥Îªº ICE ¤£¤ä´©¤@¹ï¦h¡A¥t¥~´N
>> ¬O¥Lªº³]­p¸Ì­±­þÃä¬O¶}±Ò³s½u¤è¡A­þÃä¬O±µ¨ü³s½u¤è¬O¦Û°Ê§P©wªº¡C¡]¦ý¬O¥Ø«e
>> Á٬ݤ£À´¡A¼x¨D¹ï ICE¡BTURN¡BSTUN¡BSDP ³o¨ÇªF¦è¼ôªºªB¤Í­Ì¸Ñ´b¤@¤U¡ã¡ã¡^
>>
>> * ¨ä¥LÁÙ¦³¹³¬O¤@¨Ç¤p®t²§¹³¬O»yªk¤£¦P
>>
>> Google: new PeerConection("audio, video") ¸ò
>> Mozilla/Cisco: new PeerConnection({audio: {}, video: {}})
>>
>> µ¥µ¥¡A§¹¾ã§âªº½Ð°Ñ¦Ò[2]ªº°Q½×¡C
>>
>> ³o¸Ì¦³´X¥ó¨Æ±¡¬O¤¤¤å¿³½ì¤p²Õ¥i¥H°µªº¡G
>>
>> * ½T©w¤@¤U½Ķ
>>
>> ¡uWeb Real-Time Communication¡v½¦¨¡uWeb/¤¬Ápºô¹ê®É³q°T¡v¥i¥H¶Ü¡H
>>
>> ¥xÆW³oÃä¦n¹³¤£¤Ó±`Å¥¨ì¡u¹ê®É¡v³o­Ó¦r²´¡A¤£¹L½¦¨¡u§Y®É¡v¦n¹³¬O¡u§Y®É³q
>> ¡]Instant Messenger¡^¡vªº instant ¤£¤Ó¹ï¡C
>>
>> * ¤j®a¥i¥H¤@°_¨Ó½Ķ¦b IETF ªº WebRTC ¨Ï¥Î®×¨Ò¤åÀÉ
>>
>> ³o¥÷¤å¥ó´£¨ì¤F¤@¨Ç¨Ï¥Î WebRTC ªº¨ó©w¸ò API ªº±¡¸`¡A½Ķ³o¥÷¤å¥ó¦³§U©ó¤F
>> ¸Ñ¥¼¨Ó³o­Ó API ªº¼ç¤O¡A¨Ã¥B¥i¥H¬Ý¬Ý³o¨Ç±¡¸`¦b¤¤¤å¥@¬É¬O¤£¬O¤£¾A¥Î¡C§Ú¤w
>> ¸g¶}¤F¤@­Ó½Ķªº¦a½L¡A¤´µM¦b§Ú­Ìªº wiki[3] ¤W¡A¤åÀɪºµ²ºc°ò¥»¤W¸ò HTML5
>> «ÜÃþ¦ü¡A´N¬OÁà¤F¤@ÂI :p ¸Îªi¡A§A»¡­n§ä¤H½Ķ¬y´CÅé¬ÛÃöªº¨º´N¨Ó½³o­Ó§a¡I
>>
>> * À°¦£¤¬¬Û¸Ñ´b¤@¤U¡A¤U­±´£¤@¨Ç§Úªº°ÝÃD¡C¤]Åwªï¦h´£¤@¨Ç§ó³o­Ó³Ì·s¼Ð·Ç¬ÛÃö
>> ªº°ÝÃD¡C
>>
>> [1] http://lists.w3.org/Archives/Public/public-html-ig-zh/2011Apr/0064
>> [2] http://lists.w3.org/Archives/Public/public-webrtc/2011Jul/0012
>> [3]
>>
>> http://www.w3.org/html/ig/zh/wiki/Draft-ietf-rtcweb-use-cases-and-requirements
>>
>> == WebRTC °ÝÃD ==
>>
>> * PeerConnection.send() ªº§@¥Î¬O¡H©Ò¿×ªº out-of-band signaling ¬O¤°»ò¡H
>>
>> ¡]³o¥i¯à¬O«Ü°ò¥»ªº°ÝÃD¡A¤£¹L¦pªG¦³¤H¯à¬°§Ú¸Ñ´b«h·P¿E¤£ºÉ¡^
>>
>> * ³o­Ó API ¥i¥H®³¨Ó°µÂI¹ïÂI IM ¶Ü¡H
>>
>> ·Pı¦n¹³¥i¥H¡AÁöµM PeerConnection.send() ¬O UDP À³¸Ó¤£¯à°µ IM¡A¤£¹L¦pªG
>> ¥Î STUNS ªº¸Ü¦n¹³¬O TLS-over-TCP ©Ò¥H¸ê®Æ¤£·|º|¡H
>>
>> ¥t¤@ºØ¥i¯à©Ê¡A¦³¤H´£Ä³ PeerConnection ¸Ì­±ªº°Ñ¼Æ³Ì²×·|Åܦ¨¤@­Ó TURN ªº
>> URL¡A¹³¬O¡Gnew Connection("turn:xxx.xxx.xx...")¡A¨º¥H«á¬O¤£¬O¥H«á¦³¥i¯à
>> ¥i¥Hª½±µ new WebSocket("turn:xxx.xxx.xx..")¡H
>>
>> * MediaStreamRecorder.getRecordedData ·|±o¨ìªº¬O¸Óª«¥ó±q¥X¥Í¨ì©I¥s³o­Ó¤è
>> ªk¬°¤îªº¦ê¬y¸ê®Æ¡C§Ú¨S¬Ý¨ì¾P·´¤@­Ó MediaStreamRecorder ªº¤èªk¡A¨º¤£¬O¥N
>> ªíÂsÄý¾¹­n¤@ª½°O¿ý³o­Ó¦ê¬y¡H³o¯uªº¦³¿ìªk¹ê§@¶Ü¡H
>>
>> * ¦pªG§Ú¨S·d¿ùªº¸Ü¡AGoogle ª© 2.5 ¸`[4]¤§«eªº¨Ò
>> ¤l¡Alocal.signalingChannel À³¸Ó¬O local.processSignalingChannel ¤~¹ï
>>
>> [4]
>>
>> http://www.whatwg.org/specs/web-apps/current-work/webrtc.html#the-data-stream
>>
>> == ¨ä¥L°Q½×°Ï ==
>>
>> * W3C WebRTC ¤u§@²Õ¶l¥ó¸s[5]
>> * IETF rtcweb ¤u§@²Õ¶l¥ó¸s[6]
>> * WHATWG ªº¶l¥ó¸s[7]°Q½×¹L«Ü¦h¦¸[8]
>>
>> [5] http://lists.w3.org/Archives/Public/public-webrtc/
>> [6] http://www.ietf.org/mail-archive/web/rtcweb/current/maillist.html ÂI
>> "rtcweb List Information" §Y¥i­q¾\
>> [7] http://lists.whatwg.org/pipermail/whatwg-whatwg.org/
>> [8]
>>
>> http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2011-March/thread.html#30873
>>
>>
>> http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2011-March/thread.html#30941
>>     ª½±µ¦b [7] ªº·j´M±ø·j¯Á "peer" ¥i¥H±o¨ì¦h¦~ªºµ²ªG
>>
>>
>> ¦¹­P
>>
>> §f ±d»¨¡]Kenny¡^, ¤¤¤å¿³½ì¤p²ÕW3C³sµ¸¤H
>> ±À¯S: http://twitter.com/kanghaolu
>> Google+: https://plus.google.com/112088462407783855918/posts
>> ·s®ö·L³Õ: http://t.sina.com.cn/1950042164
>>
>
>



-- 
Best regards,
Yuan Chao

Received on Saturday, 16 July 2011 20:59:32 UTC