ÄÄÇ»ÅÍ°øÇкΠ2000-30294 ±ÇÁø¹é
2 ±¸Çö ¸ðµ¨
2.1 ±â´É Á¤ÀÇ
LSS°¡ Á¦°øÇÏ´Â ±â´ÉÀº ´ÙÀ½°ú °°´Ù.
2.1 ½ºÆ®¸®¹Ö(Streaming)
½ºÆ®¸®¹ÖÀº ÀÎÅͳݰú °°Àº ³×Æ®¿÷À» ÅëÇØ ¼¹ö¿¡¼ Ŭ¶óÀ̾ðÆ®·Î ºñµð¿À ¶Ç´Â ¿Àµð¿À¸¦ Àü¼ÛÇÏ´Â °ÍÀ» ÀǹÌÇÑ´Ù. ¼¹ö´Â ºñµð¿À¸¦ ³×Æ®¿÷À¸·Î º¸³¾ ¼ö ÀÖµµ·Ï ÆÐŶÀ¸·Î ÂÉ°µ´Ù. Ŭ¶óÀ̾ðÆ®´Â ±× ÆÐŶµéÀ» ´Ù½Ã ¸ð¾Æ¼ ¿ø·¡ ÇüÅ·Π¸¸µç ÈÄ Àç»ýµÈ´Ù. ÀÌ ¶§, Àç»ý°ú ÆÐŶ ¼ö½ÅÀº µ¿½Ã¿¡ ÀϾÙ. ¿©±â¼ ¿¬°üµÈ ÀÏ·ÃÀÇ ÆÐŶµéÀ» ½ºÆ®¸²(stream)À̶ó°í ÇÑ´Ù.
½ºÆ®¸®¹ÖÀº Ŭ¶óÀ̾ðÆ®°¡ ºñµð¿À µ¥ÀÌÅ͸¦ ¹ÞÀ¸¸é¼ Àç»ýÇÑ´Ù´Â Á¡¿¡¼, Àüü ºñµð¿À¸¦ ¹ÞÀº ÈÄ Àç»ýÇÏ´Â ´Ü¼øÇÑ ÆÄÀÏ Àü¼Û°ú ±¸º°µÈ´Ù. »ç½Ç, ½ºÆ®¸®¹Ö Ŭ¶óÀ̾ðÆ® ÆÐŶÀ» ¹ÞÀ¸¸é¼ Àç»ýÀ» ÇÏ°í, Àç»ýµÈ µ¥ÀÌÅÍ´Â ¹ö¸°´Ù. ÆÄÀÏÀ» ½ºÆ®¸®¹ÖÇÏ´Â µ¥ ´ÙÀ½°ú °°Àº ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
À¯´Ïij½ºÆ®(Unicast) ½ºÆ®¸®¹Ö
À¯´Ïij½ºÆ®¿¡¼´Â Ŭ¶óÀ̾ðÆ®°¡ RTSP(Real Time Streaming ProtocolÀ»
»ç¿ëÇØ ºñµð¿À¿¡ ´ëÇÑ ¿äû(request)À» ¼¹ö¿¡ ¾Ë¸°´Ù. ¼¹ö´Â ±× ºñµð¿À¿¡ ´ëÇÑ
Á¤º¸¸¦ ´ã°í ÀÖ´Â ½ºÆ®¸®¹Ö ¼¼¼Ç(streaming session)À¸·Î Ŭ¶óÀ̾ðÆ®¿¡
ÀÀ´äÇÑ´Ù. ÇϳªÀÇ ½ºÆ®¸®¹Ö ¼¼¼ÇÀº ºñµð¿À ½ºÆ®¸²°ú ¿Àµð¿À ½ºÆ®¸²°ú °°Àº ÇÑ °³
ÀÌ»óÀÇ ½ºÆ®¸²À¸·Î ±¸¼ºµÈ´Ù. ¼¹ö´Â Ŭ¶óÀ̾ðÆ®¿¡°Ô ÇÊ¿äÇÑ ½ºÆ®¸²ÀÇ °³¼ö¿Í
°¢ ½ºÆ®¸²ÀÇ Á¤º¸(¿¹, ¹Ìµð¾î ŸÀÔ, ÄÚµ¦ µî)¸¦ ¾Ë·ÁÁØ´Ù. ±×¸®°í ³ª¼ ½ÇÁ¦
½ºÆ®¸²µéÀÌ RTP¸¦ ÅëÇØ Å¬¶óÀ̾ðÆ®·Î Àü¼ÛµÈ´Ù.
±×¸² 1. RTSP¿Í RTP¸¦ ÀÌ¿ëÇÑ À¯´Ïij½ºÆ® |
RTSP´Â TCP/IP¸¦ »ç¿ëÇÏ°í, RTP´Â Àú¼öÁØÀÇ UDP/IP¸¦ »ç¿ëÇÑ´Ù.
2.3 ±¸¼º ¿ä¼Ò
2.4 °³¹ß ¹æ¹ý
3.1 Real Time Streaming Protocol (RTSP)
RTSP´Â ¿Àµð¿À³ª ºñµð¿À °°Àº ¿¬¼ÓÇü ¹Ìµð¾îÀÇ ½Ã°£¿¡ µ¿±âÈµÈ ½ºÆ®¸²µéÀ»
¼³Á¤ÇÏ°í Á¦¾îÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù. ÇÏÁö¸¸, RTSP°¡ ¿¬¼ÓÇü ¹Ìµð¾î ÀÚü¸¦ Àü´ÞÇÏÁö´Â
¾Ê´Â´Ù. Áï, RTSP´Â ¸ÖƼ¹Ìµð¾î ¼¹öÀÇ ¸®¸ðÆ® ÄÁÆ®·ÑÀÌ´Ù.
ÇϳªÀÇ RTSP ¼¼¼Çµ¿¾È, ¼¹ö·Î RTSP ¿äûÀ» º¸³»±â À§ÇØ ¿©·¯°³ÀÇ TCP(¶Ç´Â
UDP) ¿¬°áÀ» ¿°í ´ÝÀ» ¼ö ÀÖ´Ù.
RTSP¿¡ ÀÇÇØ Á¦¾îµÇ´Â ¹Ìµð¾î ½ºÆ®¸²Àº RTPÀÏ ¼ö ÀÖÁö¸¸, RTSP´Â ¹Ìµð¾î ½ºÆ®¸²À»
À§ÇÑ Æ®·£½ºÆ÷Æ® ¸ÞÄ«´ÏÁò¿¡ ÀÇÁ¸ÇÏÁö ¾Ê´Â´Ù. ÀÌ ÇÁ·ÎÅäÄÝÀº HTTP/1.1°ú ¸Å¿ì
Èí»çÇÏ´Ù. µû¶ó¼, HTTPÀÇ È®ÀåÀÌ ´ëºÎºÐÀÇ °æ¿ì¿¡ RTSP¿¡µµ Ãß°¡µÉ ¼ö ÀÖ´Ù.
RTSP¿¡¼ Á¦°øÇÏ´Â ¸Þ¼Òµå(method)´Â ¾Æ·¡¿Í °°´Ù.
OPTIONS | »ç¿ë°¡´ÉÇÑ ¸Þ¼Òµå¸¦ ¾ò´Â´Ù. |
SETUP | Æ®·£½ºÆ÷Æ® ¿¬°áÀ» ¼³Á¤ÇÑ´Ù. |
ANNOUNCE | ¹Ìµð¾î °³Ã¼ÀÇ ¼³¸í(description)À» º¯°æÇÑ´Ù. |
DESCRIBE | ¹Ìµð¾î °³Ã¼ÀÇ ¼³¸íÀ» ¾ò´Â´Ù. |
PLAY | Àç»ýÀ» ½ÃÀÛÇÑ´Ù. |
REDIRECT | Ŭ¶óÀ̾ðÆ®¸¦ »õ·Î¿î ¼¹ö·Î ¸®´ÙÀÌ·ºÆ®(redirect) |
PAUSE | ½ºÆ®¸² Àü¼ÛÀ» Áß´ÜÇÑ´Ù(»óÅ´ À¯Áö). |
SET_PARAMETER | ÀåÄ¡ ¶Ç´Â ÀÎÄÚµùÀ» Á¦¾îÇÑ´Ù. |
TEARDOWN | ¼¼¼Ç »óŸ¦ Áö¿î´Ù. |
... |
±×¸² 2´Â À§ÀÇ ¸Þ¼Òµå¸¦ ÀÌ¿ëÇÑ RTSPÀÇ ±âº»ÀûÀÎ µ¿ÀÛ °úÁ¤À» º¸¿©ÁØ´Ù.
±×¸² 2. RTSPÀÇ µ¿ÀÛ°úÁ¤ |
±×¸²¿¡¼, Ŭ¶óÀ̾ðÆ®´Â ¸ÕÀú OPTIONS ¸Þ¼Òµå¸¦ »ç¿ëÇؼ ¼¹ö¿¡¼ Á¦°øÇÏ´Â ¸Þ¼ÒµåµéÀ» ¾ò°í, DESCRIBE ¸Þ¼Òµå¸¦ »ç¿ëÇØ ¼¹ö¿¡°Ô ¿äûÇÒ ¹Ìµð¾î °³Ã¼ÀÇ ¼³¸í(description)À» ¾ò´Â´Ù. ±×¸®°í ³ª¼, SETUP ¸Þ¼Òµå¸¦ »ç¿ëÇØ ¹Ìµð¾î ½ºÆ®¸² Àü¼ÛÀ» À§ÇÑ Æ®·£½ºÆ÷Æ® ¿¬°áÀ» ¼³Á¤ÇÏ°í, PLAY ¸Þ¼Òµå¸¦ º¸³»°í ÀÀ´äÀ» ´äÀº ÈÄ RTP ä³ÎÀ» ÅëÇØ ½ºÆ®¸²À» ¹Þ¾Æ¼ Àç»ýÇÑ´Ù. RTSP ¼¼¼ÇÀ» ³¡³¾ ¶§´Â PAUSE ¸Þ¼Òµå¸¦ »ç¿ëÇØ ½ºÆ®¸² Àü¼ÛÀ» ÁߴܽÃŲ ÈÄ, TEARDOWN ¸Þ¼Òµå·Î ¼¼¼ÇÀ» ¿ÏÀüÈ÷ ¾ø¾Ø´Ù.
3.2 Real-Time Protocol (RTP)
RTP´Â ½Ç½Ã°£ Ư¼ºÀ» °®´Â µ¥ÀÌÅÍÀÇ "end-to-end" Àü¼Û ¼ºñ½º(´ëÈÇü ¿Àµð¿À¿Í ºñµð¿À)¸¦ Á¦°øÇÑ´Ù. ÀÌ·± ¼ºñ½º´Â "payload type identification", "sequence numbering", "timestamping"°ú "delivery monitoring"À» Æ÷ÇÔÇÑ´Ù. ¾îÇø®ÄÉÀ̼ǵéÀº º¸Åë UDP À§¿¡¼ RTP¸¦ »ç¿ëÇÔÀ¸·Î½á ´ÙÁßÈ¿Í Ã¼Å©½æ(checksum) ¼ºñ½º¸¦ ÀÌ¿ëÇÑ´Ù. ÇÏÁö¸¸, RTP´Â ´Ù¸¥ ³×Æ®¿÷ À̳ª Æ®·£½ºÆ÷Æ® ÇÁ·ÎÅäÄÝ À§¿¡¼µµ »ç¿ëµÉ ¼ö ÀÖ´Ù. RTP´Â ÇϺÎÀÇ ³×Æ®¿÷¿¡¼ Á¦°øÇÑÇϸé, ¸ÖƼij½ºÆ® ±â´ÉÀ» ÀÌ¿ëÇؼ ¿©·¯°³ÀÇ Å¬¶óÀ̾ðÆ®·ÎÀÇ µ¥ÀÌÅÍ Àü¼ÛÀ» Áö¿øÇÑ´Ù.
RTP´Â Àß ¾Ë·ÁÁø HTTP¿Í FTPÀÇ ÆÄÀÏ Àü¼Û ÇÁ·ÎÅäÄÝ°ú ºñ½ÁÇÏÁö¸¸, ½Ç½Ã°£ ½ºÆ®¸²¿¡ ÀûÇÕÇÏ°Ô ¼³°èµÇ¾ú´Ù. RTP´Â, HTTP¿Í FTP¿Í ´Þ¸®, Ŭ¶óÀ̾ðÆ®·Î ¹Ìµð¾î °³Ã¼ Àüü¸¦ ´Ù¿î·ÎµåÇÏÁö ¾Ê´Â´Ù. ´ë½Å, ´Ü¹æÇâ µ¥ÀÌÅÍ ½ºÆ®¸²À» Àç»ý µ¥ÀÌÅÍÀ²·Î ½Ç½Ã°£À¸·Î Àü¼ÛÇÑ´Ù. ¿¬°áÀÌ µ¥ÀÌÅÍ ½ºÆ®¸²À» °¨´çÇÒ Á¤µµ·Î ÃâºÐÇÑ ´ë¿ªÆøÀ» °¡Áö°í ÀÖ´Â ÇÑ, ±× ¹Ìµð¾î´Â Á¤»óÀûÀ¸·Î Àç»ýµÈ´Ù. ±× µ¥ÀÌÅÍ´Â Àç»ýµÈ ÈÄ¿¡ Áö¿öÁø´Ù. ½ÃûÀÚ°¡ ´Ù½Ã ±× ¹Ìµð¾î¸¦ Àç»ýÇϱâ À§Çؼ´Â ½ºÆ®¸®¹Ö ¼¹ö¿¡ ´Ù½Ã ¿äûÇØ¾ß ÇÑ´Ù.
3.3 WAVE ÆÄÀÏ Æ÷¸Ë
WAVE ÆÄÀÏ Æ÷¸ËÀº MicrosoftÀÇ RIFF ½ºÆåÀÇ Á¤ÀÇµÈ ÆÄÀÏ Æ÷¸ËÀÌ´Ù.
RIFF ½ºÆåÀº ¸ÖƼ¹Ìµð¾î ÆÄÀÏÀ» À§ÇÑ ½ºÆåÀ¸·Î¼ ´Ù¸¥ Á¾·ùÀÇ µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÒ ¼ö
ÀÖ´Ù.
RIFF´Â ¸¹Àº Á¾·ùÀÇ µ¥ÀÌÅÍ(ƯÈ÷, ¿Àµð¿À¿Í ºñµð¿À °°Àº ¸ÖƼ¹Ìµð¾î µ¥ÀÌÅÍ)¸¦
ÀúÀåÇϱâ À§ÇÑ ÆÄÀÏ Æ÷¸ËÀÌ´Ù. ±×°ÍÀº ûũ(chunks)¿Í
¼¹ö-ä³Î(sub-channel)¿¡ ±â¹ÝÀ» µÐ´Ù. ÆÄÀÏ¿¡¼ ûũ ŸÀÔ°ú ûũ Å©±â°¡
¸ÕÀú ³ª¿À°í, ±× ´ÙÀ½ ½ÇÁ¦ ûũ ³»¿ëÀÌ ³ª¿Â´Ù. RIFF ÆÄÀÏ Àüü°¡ ¸ðµç ´Ù¸¥
ûũ¸¦ ´ã°í ÀÖ´Â °Å´Ù¶õ ûũÀÌ´Ù. RIFF ûũÀÇ ÄÁÅÙÃ÷¿¡¼ °¡Àå ¸ÕÀú ³ª¿À´Â °ÍÀÌ
"Æû ŸÀÔ(form type)"ÀÌ´Ù. ÀÌ °ÍÀÌ ÆÄÀÏ ³»¿ëÀÇ Àüü ŸÀÔÀ» Ç¥ÇöÇÑ´Ù. µû¶ó¼,
RIFF ÆÄÀÏÀÇ ±¸Á¶´Â ¾Æ·¡¿Í °°´Ù.
Offset Contents (hex) 0000 'R', 'I', 'F', 'F' 0004 Length of the entire file - 8 (32-bit unsigned integer) 0008 form type (4 characters) 000B first chunk type (4 character) 0010 first chunk length (32-bit unsigned integer) 0014 first chunk's data ... ...¹ÙÀÌÆ®µéÀÇ ÀúÀå ¼ø¼´Â "Little-Endian"ÀÌ´Ù.
WAVE Æ÷¸ËÀº µðÁöÅÐ ¿Àµð¿À¸¦ ÀúÀåÇÏ´Â RIFFÀÇ ºÎºÐÁýÇÕÀÌ´Ù. ±×°ÍÀÇ Æû ŸÀÔÀº "WAVE"ÀÌ°í, ´ÙÀ½ µÎ Á¾·ùÀÇ Ã»Å©°¡ ÇÊ¿äÇÏ´Ù.
Offset Length Contents 0 4 bytes 'RIFF' 4 4 bytes8 4 bytes 'WAVE' 12 4 bytes 'fmt ' 16 4 bytes 0x00000010 // Length of the fmt data (16 bytes) 20 2 bytes 0x0001 // Format tag: 1 = PCM 22 2 bytes <channels> // Channels: 1 = mono, 2 = stereo 24 4 bytes <sample rate> // Samples per second: e.g., 44100 28 4 bytes <bytes/second> // sample rate * block align 32 2 bytes <block align> // channels * bits/sample / 8 34 2 bytes <bits/sample> // 8 or 16 36 4 bytes 'data' 40 4 bytes <length of the data block> 44 bytes <sample data>
4.1 LSSP ¼¹ö ±¸Á¶
RTSP¿¡ µû¶ó µ¿ÀÛÇÏ´Â ¼¹ö ºÎºÐÀÌ´Ù. óÀ½¿¡ TCP Æ÷Æ®¸¦ "listen"ÇÏ°í ÀÖ´Ù°¡
Ŭ¶óÀ̾ðÆ®ÀÇ Á¢¼Ó ¿äûÀÌ ÀÖÀ¸¸é "À̺¥Æ® ·çÇÁ(event loop)"·Î µé¾î°£´Ù(±×¸² 3).
Å×½ºÆ® ¹öÀüÀ¸·Î¼, ÇöÀç´Â ÇÑ °³ÀÇ Å¬¶óÀ̾ðÆ®¸¸ Áö¿øÇϵµ·Ï ±¸ÇöµÇ¾ú´Ù.
¿©·¯ Ŭ¶óÀ̾ðÆ®¸¦ Áö¿øÇϵµ·Ï ÇÏ´Â °ÍÀº ÇÁ·Î¼¼½º³ª ½º·¹µå¸¦ »ç¿ëÇؼ ½±°Ô
±¸ÇöµÉ ¼ö ÀÖ´Ù.
±×¸² 3. RTSP ¼¹öÀÇ À̺¥Æ® ·çÇÁ |
À̺¥Æ® ·çÇÁ¿¡¼´Â Ŭ¶óÀ̾ðÆ®¿¡¼ ¿À´Â RTSP ¸Þ½ÃÁö¸¦ ¹Þ°í ó¸®ÇÏ°í ÀÀ´äÇÏ´Â ±â´ÉÀÌ ±¸ÇöµÇ¾î ÀÖ´Ù. Ãß°¡·Î, À̺¥Æ® ·çÇÁ¿¡¼ RTP ¼¼¼Ç ½ºÄÉÁì·¯¸¦ ½ÃÀÛ½ÃŲ´Ù. ¾Æ·¡´Â À̺¥Æ® ·çÇÁÀÇ ÁÖ¿ä ±â´ÉÀÌ´Ù.
±×¸² 4´Â LSSP ¼¹öÀÇ Àüü ±¸Á¶ÀÌ´Ù.
±×¸² 4. LSSP ¼¹ö Àüü ±¸Á¶ |
RTSP ¸Þ½ÃÁö Çڵ鷯(Message Handler)´Â RTSP ¸Þ½ÃÁö¸¦ ÆĽÌÇÏ°í ±× °á°ú¿¡ ÀÇÇØ ¼¼¼Ç °ü¸®ÀÚ¸¦ Á¦¾îÇÏ°í, ó¸® ÈÄ ÀÀ´äÀ» º¸³»´Â ¿ªÇÒÀ» ÇÑ´Ù. RTSP ¼¼¼Ç °ü¸®ÀÚ(Session Manager)´Â ¼¼¼ÇµéÀ» °ü¸®ÇÏ°í °¢ ¼¼¼Ç¿¡ ÇØ´çÇÏ´Â ½ºÆ®¸²À» »ý¼ºÇÏ°í ÃʱâÈÇÑ´Ù. RTSP ¸Þ½ÃÁö¿¡ µû¶ó °¢ ¼¼¼ÇÀ» Á¦¾îÇÑ´Ù. RTP ½ºÆ®¸®¸Ó(Streamer)´Â ¹Ìµð¾î µ¥ÀÌÅ͸¦ ÆÄÀÏ¿¡¼ Àоî RTPÆÐŶµéÀ» ¸¸µé¾î ½ºÄÉÁì·¯¿¡°Ô Àü´ÞÇÑ´Ù. ½ºÄÉÁì·¯(Scheduler)´Â ½ºÆ®¸®¹ÖÀ» ½ºÄÉÁìÇؼ RTP ÆÐŶÀ¸·Î ¸¸µé¾î UDP Æ÷Æ®·Î º¸³»´Â ±â´ÉÀ»ÇÑ´Ù.
4.1 RTSP ¸Þ½ÃÁö Çڵ鷯(Message Hander)
¼¹ö´Â Ŭ¶óÀ̾ðÆ®°¡ óÀ½ Á¢¼ÓÇϸé INIT »óÅ¿¡ ÀÖ°Ô µÈ´Ù. ±× ´ÙÀ½ SETUP ¸Þ¼Òµå
¿äûÀ» ¹ÞÀ¸¸é READY »óÅ·ΠÀüÀÌÇÏ°í, PLAY ¸Þ¼Òµå ¿äûÀ» ¹ÞÀ¸¸é PLAY »óÅ·Î
ÀüÀÌÇÏ°í TEARDOWN ¸Þ¼Òµå ¿äûÀÌ ¿À¸é ´Ù½Ã INIT »óÅ·Π°¡°Ô µÈ´Ù.
±×¸² 5. RTSP ¼¹öÀÇ »óÅ ÀüÀÌ |
4.2 RTSP ¼¼¼Ç °ü¸®ÀÚ(Session Manager)
Ŭ¶óÀ̾ðÆ®·Î ºÎÅÍ SETUP ¸Þ¼Òµå ¿äûÀ» ¹Þ°ÔµÇ¸é ¼¼¼ÇÀ» »ý¼º, ÃʱâÈÇÏ°í ±× ¼¼¼ÇÀ» ¼¹öÀÇ ¼¼¼Ç ¸®½ºÆ®¿¡ Ãß°¡ÇÑ´Ù. °¢ ¼¼¼ÇÀº ¼¼¼Ç ID¿Í ÇöÀç »óÅÂ(±×¸² 5), WAV ÆÄÀÏÀÇ URL µîÀÇ Á¤º¸¸¦ À¯ÁöÇÑ´Ù. ¶ÇÇÑ URL·Î ºÎÅÍ RTP ½ºÆ®¸²À» ÃʱâÈÇÏ°í ½ºÆ®¸²¿¡ ´ëÇÑ Á¤º¸¸¦ °¡Áø´Ù. ¼¼¼ÇÀÌ À¯ÁöÇÏ´Â RTP ½ºÆ®¸²°ú °ü·ÃµÈ Á¤º¸´Â µ¥ÀÌÅÍ Æ÷Æ®¹øÈ£, µ¥ÀÌÅÍÀ², ½Ã°£ Á¤º¸µîÀ» °®´Â´Ù. ½ºÆ®¸²ÀÇ ¸ðµç »ó¼¼ÇÑ Á¤º¸´Â RTP ½ºÆ®¸²¿¡¼ °¡Áö°í ÀÖ´Ù.
ÀÌ ¼¼¼ÇÀº °è¼ÓÇؼ ½ºÆ®¸²ÀÇ »óÅ °üÂûÇÏ°í RTSP ¸Þ¼Òµå ¿äû À̺¥Æ®·ÎºÎÅÍ ¼¹öÀÇ »óŸ¦ ÀüÀ̽ÃŲ´Ù. ±× °á°ú¿¡ µû¶ó ½ºÆ®¸²À» Á¦¾îÇÑ´Ù. READY »óÅ¿¡¼ PLAY ¸Þ¼Òµå ¿äûÀ» ¹ÞÀ¸¸é, µåµð¾î ½ºÆ®¸²ÀÇ Àü¼ÛÀ» ½ÃÀÛÇÑ´Ù.
4.3 ½ºÆ®¸®¸Ó(Streamer)
PLAY ¸Þ¼Òµå ¿äûÀ» ¹Þ°Ô µÇ¸é ÇØ´çµÇ´Â ¼¼¼ÇÀº ±× °ÍÀÇ ½ºÆ®¸²À» ½ÃÀÛ½ÃŲ´Ù. ½ºÆ®¸²Àº ÀÌ¹Ì ¾Ë·ÁÁø Ŭ¶óÀ̾ðÆ®ÀÇ RTP Æ÷Æ®¹øÈ£·Î UDP ¿¬°áÀ» ¼³Á¤ÇÏ°í, WAV ÆÄÀÏÀ» ¿°í, RTP ÆÐŶ¸¦ À§ÇØ ÇÊ¿äÇÑ Á¤º¸(SSRC,Àü¼Û·ü,ÀϷùøÈ£,ÆÐŶũ±â)¸¦ °áÁ¤ÇÑ´Ù. ±×¸®°í ³ª¼ ½ÇÁ¦ Àü¼ÛÀ» À§ÇØ ½ºÄÉÁì ¸®½ºÆ®¿¡ ±× ½ºÆ®¸²À» µî·ÏÇÑ´Ù. (³ªÁß¿¡ ½ºÄÉÁì·¯¿¡ ÀÇÇØ ½ÇÁ¦ Àü¼ÛÀÌ ÇàÇØÁø´Ù.) PAUSEÀÇ °æ¿ì¿¡´Â ½ºÄÉÁì ¸®½ºÆ®¿¡¼ ½ºÆ®¸²ÀÌ Á¦°ÅÇÔÀ¸·Î½á, ½ºÄÉÁì·¯´Â ±× ½ºÆ®¸²À» ´õ ÀÌ»ó ½ºÄÉÁìÇÏÁö ¾Ê°Ô µÈ´Ù.
4.4 ½ºÄÉÁì·¯(Scheduler)
½ºÄÉÁì·¯´Â À̺¥Æ® ·çÇÁ¿¡¼ ¸Å¹ø È£ÃâµÈ´Ù. È°¼ºÈµÇ¸é, ½ºÄÉÁì·¯´Â ½ºÄÉÁì ¸®½ºÆ®¿¡ ÀÖ´Â ½ºÆ®¸²µéÀ» Àü¼ÛÇϱâ À§ÇØ ±× ½ºÆ®¸²¿¡ ÇØ´çµÇ´Â ½ºÆ®¸² À̺¥Æ®(stream_event())¸¦ È£ÃâÇÑ´Ù. ½ºÆ®¸² À̺¥Æ®´Â ½ºÆ®¸²ÀÇ WAV ÆÄÀÏÀ» ÆÐŶ Å©±â ¸¸Å ÀÐ¾î¼ RTP ÆÐŶÀ» ¸¸µé¾î(build_RTP_packet()) UDP Æ÷Æ®·Î º¸³»´Â ±â´ÉÀ» ÇÑ´Ù. RTP¸¦ À§ÇÑ Á¤º¸´Â ¼¼¼Ç °ü¸®ÀÚ¿¡ ÀÇÇØ ÀÌ¹Ì ½ºÆ®¸²ÀÌ °¡Áö°í ÀÖ´Ù.
4.4 RTSP Ŭ¶óÀ̾ðÆ®
Ŭ¶óÀ̾ðÆ® ¿ª½Ã ¸®´ª½º¿ëÀ¸·Î ±¸ÇöÇÏ¿´°í, ÅؽºÆ® ±â¹Ý ÀÎÅÍÆäÀ̽º¸¦ °®´Â´Ù. ¸í·É¾î Ŭ¶óÀ̾ðÆ® ¾îÇø®ÄÉÀ̼ǿ¡¼ Á¦°øµÇ´Â ¸í·É¾î¿Í ±×¿¡ ÇØ´çµÇ´Â RTSP METHOD´Â ´ÙÀ½°ú °°´Ù.
etc/ player/ server/etc¿¡´Â ¼³Á¤ ÆÄÀÏ(example.cfg)°ú »ùÇà ¿Àµð¿À ÆÄÀÏ(ghostofpast.wav)°¡ ÀÖ°í, player¿¡´Â Ŭ¶óÀ̾ðÆ® ¼Ò½º ÆÄÀÏÀÌ ÀÖ°í, server¿¡´Â ¼¹ö ¼Ò½º ÆÄÀÏÀÌ ÀÖ´Ù.
o rtsp://¼¹öIP:Æ÷Æ® ¿¹) o rtsp://147.46.59.186:4444 g ghostofpast.wav
¾Æ·¡´Â Å×½ºÆ®¸¦ ÅëÇØ LSSP ¼¹ö¿¡¼ ¹Þ°í º¸³»´Â RTSP ¸Þ½ÃÁö¸¦ °üÂûÇÑ °á°úÀÌ´Ù.
C->S: OPTIONS * RTSP/0.6 1 User-Agent: LSSP S->C: RTSP/0.6 200 1 OK Date: 19 Dec 2000 11:49:53 GMT OPTIONS * RTSP/0.6 1 Server: LSSP C->S: RTSP/0.6 200 1 OK Date: 19 Dec 2000 11:49:55 GMT C->S: DESCRIBE rtsp://147.46.59.186/ghostofpast.wav RTSP/0.1 2 Accept: application/sdp; application/x-rtsp-mh S->>C: RTSP/0.1 200 2 OK Date: 19 Dec 2000 11:53:45 GMT Content-type: application/sdp Content-Length: 237 v=0 o=- 2890844256 2890842807 IN IP4 147.46.59.186 s=RTSP Session i=LSSP C->S: SETUP rtsp://147.46.59.186/ghostofpast.wav RTSP/0.6 3 Transport: rtp/udp;port=1026 \r\n\r\n S->C: RTSP/0.1 200 3 OK Date: 19 Dec 2000 11:56:05 GMT Session: 1 Content-Length: 0 Transport: rtp/udp;port=1026 C->S: PLAY rtsp://147.46.59.186/ghostofpast.wav RTSP/0.1 4 Session:0 S->C: RTSP/0.1 200 4 OK Date: 19 Dec 2000 11:58:45 GMT Session: 1 Content-Length: 0 Transport: rtp/udp;port=1026 C->S: PAUSE rtsp://147.46.59.186/ghostofpast.wav RTSP/0.1 5 C->S: TEARDOWN * RTSP/0.6 6 S->C: "RTSP/0.1 200 6 OK Date: 19 Dec 2000 12:06:08 GMT
LSSP ¼¹öÀÇ ½ºÆ®¸®¹Ö ¼ºñ½º¸¦ ¹Þ±â À§Çؼ´Â LSSP Ŭ¶óÀ̾ðÆ®°¡ ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù. (¹«½¼ ÀÌÀ¯¿¡¼ÀÎÁö RTSP¸¦ Áö¿øÇÏ´Â »ó¿ë ÇÁ·Î±×·¥°ú´Â ȣȯµÇÁö ¾Ê°í ÀÖ´Ù.) µû¶ó¼, µ¥¸ð¸¦ µè±â À§Çؼ´Â À§ÀÇ ¼Ò½º¸¦ ´Ù¿î·Îµå ¹Þ¾Æ ¼¹ö Ŭ¶óÀ̾ðÆ® ¸ðµÎ ÄÄÆÄÀÏÇÑ ÈÄ Å¬¶óÀ̾ðÆ® ½ÇÇà ÈÄ ¾Æ·¡ URL·Î Á¢¼ÓÇϸé LSSP ¼¹öÀÇ ½ºÆ®¸®¹ÖÀÇ µ¥¸ð(ghostofpast.wav)¸¦ µéÀ» ¼ö ÀÖ´Ù.
rtsp://147.46.59.188:4444
°ú¸ñ ÇÁ·ÎÁ§Æ®·Î¼ °£´ÜÇÑ ¸®´ª½º¿ë ½ºÆ®¸®¹Ö ¼¹ö¿Í Ŭ¶óÀ̾ðÆ®¸¦ ±¸ÇöÇغ¸¾Ò´Ù. ±âÀÏÀÌ Ã˹ÚÇÑ °ü°è·Î óÀ½¿¡ ÀǵµÇß´ø RTP¸¦ Çâ»ó½ÃŲ RTP+¸¦ Á¦¾ÈÇÏÁö´Â ¸øÇßÁö¸¸, °ÀÇ¿¡¼ ´Ù·ç¾ú´ø RTP¿Í RTSP¸¦ ½ÇÁ¦·Î ±¸ÇöÇÔÀ¸·Î½á µÎ ÇÁ·ÎÅäÄÝÀ» ¸é¹ÐÈ÷ ÀÌÇØÇÒ ¼ö ÀÖ¾ú°í ±¸Çö»óÀÇ ¾î·Á¿òµµ üÇèÇÒ ¼ö ÀÖ¾ú´Ù. ƯÈ÷ ¹Ìµð¾î Æ÷¸ËÀ» ÀÌÇØÇÏ°í ºÐ¼®Çؼ Àç»ý½ÃŲ´Ù´Â °ÍÀÌ ½±Áö ¾Ê¾Ò´Ù. ±×·¡¼, RTP¿Í RTSPÀÇ ±¸Çö¿¡ ÁýÁßÇϱâ À§ÇØ ¹Ìµð¾î Æ÷¸ËÀº °¡Àå ´Ü¼øÇÑ WAV¸¦ »ç¿ëÇÏ¿´´Ù. ±âȸ°¡ µÈ´Ù¸é, ´Ù¾çÇÑ Æ÷¸ËÀÇ ºñµð¿À µ¥ÀÌÅ͸¦ Áö¿øÇϵµ·Ï È®ÀåÇÏ°í RTP ½ºÆ®¸®¹ÖÀÇ ¹®Á¦Á¡À» ºÐ¼®Çؼ Çâ»ó ¹æ¾ÈÀ» »ý°¢ÇØ º¼ ¼ö ÀÖ°Ú´Ù. ±×¸®°í ÇöÀç´Â º» ÇÁ·ÎÁ§Æ®¿¡¼ ±¸ÇöÇÑ Å¬¶óÀ̾ðÆ®·Î¸¸ ½ºÆ®¸®¹Ö ¼ºñ½º¸¦ ¹ÞÀ» ¼ö Àִµ¥, ¹®Á¦Á¡À» º¸¿ÏÇؼ RTSP¸¦ Áö¿øÇÏ´Â ´Ù¸¥ »ó¿ë ÇÁ·Î±×·¥µé(QuickTime, Real Player µîµî)°úµµ ȣȯµÇµµ·Ï ¼öÁ¤À» ÇÒ »ý°¢µµ °®°í ÀÖ´Ù.