
λ€μ΄κ°λ©°
μ€μκ° μμ μ€νΈλ¦¬λ° μμ€ν
μ ꡬμΆν λ κ°μ₯ λ¨Όμ λ±μ₯νλ νλ‘ν μ½μ΄ λ°λ‘ RTSP(Real Time Streaming Protocol)μ
λλ€.
보μ μΉ΄λ©λΌ, CCTV κ΄μ , λ₯λ¬λ μμ λΆμ, λ°©μ‘ μμ€ν
λ± λλΆλΆμ μ€μκ° μμ μΈνλΌμμ νμ€μ²λΌ μ¬μ©λ©λλ€. νμ§λ§ μ΄λ¦κ³Ό λ¬λ¦¬ RTSPλ “μμ λ°μ΄ν°λ₯Ό μ μ‘νλ νλ‘ν μ½”μ΄ μλλλ€. RTSPμ λ³Έμ§μ μ€νΈλ¦¬λ°μ μ μ΄νλ μν μ μμ΅λλ€.
1. RTSPλ 무μμΈκ°?
RTSP(Real Time Streaming Protocol)λ μ€μκ° μ€νΈλ¦Όμ μ μ΄νκΈ° μν λ€νΈμν¬ νλ‘ν μ½μ λλ€. μΉμμ HTTPκ° λ¬Έμ μμ²κ³Ό μ μ‘μ μ μ΄νλ―, RTSPλ μμ·μμ± μ€νΈλ¦Όμ μμ²νκ³ κ΄λ¦¬νλ “λ¦¬λͺ¨μ»¨ μν ”μ ν©λλ€.
RTSPκ° μννλ μ£Όμ κΈ°λ₯μ λ€μκ³Ό κ°μ΅λλ€.
- μ€νΈλ¦Ό μ¬μ μμ²: PLAY
- μ€νΈλ¦Ό μΌμμ μ§: PAUSE
- μ€νΈλ¦Ό μ€λ¨: TEARDOWN
- μ€νΈλ¦Ό μ 보 μ‘°ν: DESCRIBE
- μ€νΈλ¦Ό μ μ‘ κ²½λ‘ μ€μ : SETUP
μ¦, RTSPλ μ€μ μμ λ°μ΄ν°λ₯Ό μ μ‘νλ νλ‘ν μ½μ΄ μλλΌ,
μ€νΈλ¦¬λ° μΈμ
μ μμ±νκ³ κ΄λ¦¬νλ μ μ΄ νλ‘ν μ½μ
λλ€.
μμ λ°μ΄ν°λ₯Ό μ μ‘νλ νλ‘ν μ½μ RTP(Real Time Transport Protocol)μ λλ€. RTSPλ RTPλ₯Ό νμ©νμ¬ μ€μκ° λ°μ΄ν°λ₯Ό μ²λ¦¬ν©λλ€.
2. RTSPμ RTPμ κ΄κ³
RTSPλ μ’ μ’ μ€μκ° μ€νΈλ¦¬λ° νλ‘ν μ½ μ 체λ₯Ό μλ―Ένλ κ²μΌλ‘ κ°μ£Όλμ§λ§, μ€μ μ μ‘ μν μ RTP(Real-time Transport Protocol)κ° λ΄λΉν©λλ€.
κ΄κ³λ₯Ό κ°λ¨ν νννλ©΄ μλμ κ°μ΅λλ€.
- RTSP = μ μ΄
- RTP = μμ/μμ± λ°μ΄ν° μ μ‘
- RTCP = μ μ‘ νμ§ κ΄λ¦¬
RTSPλ “PLAY μμ²”μ 보λ΄λ©΄,
μλ²λ μ΄ν RTPλ₯Ό ν΅ν΄ μ€μκ°μΌλ‘ H.264/H.265, AAC λ±μ λ°μ΄ν°λ₯Ό μ μ‘ν©λλ€.
μ΄ κ΅¬μ‘° λλΆμ RTSPλ μ§μ°μ΄ μκ³ μμ μ μΈ μ€μκ° μ€νΈλ¦¬λ°μ ꡬνν μ μμ΅λλ€.
3. RTSP νλ‘ν μ½μ λμ νλ¦
RTSPλ HTTPμ κ΅¬μ‘°κ° λΉμ·ν request/response λ°©μμ μ¬μ©ν©λλ€. ν΄λΌμ΄μΈνΈκ° μλ²(IP μΉ΄λ©λΌ λλ λ―Έλμ΄ μλ²)μ 보λ΄λ μμ²μ μμλ λ€μκ³Ό κ°μ΅λλ€.
1) OPTIONS
μλ²κ° μ§μνλ RTSP λͺ λ Ήμ μ‘°νν©λλ€.
2) DESCRIBE
μμ μ€νΈλ¦Όμ μμΈ μ 보(SDP)λ₯Ό μμ²ν©λλ€.
μ½λ±, νΈλ μ 보, νλ μ λ μ΄νΈ λ±μ΄ ν¬ν¨λ©λλ€.
3) SETUP
RTPλ₯Ό μ΄λ€ ν¬νΈλ‘ μ μ‘ν μ§ νμν©λλ€.
4) PLAY
μ€μ μ€νΈλ¦¬λ° μμ λͺ
λ Ήμ
λλ€.
μ΄ν μλ²λ RTP ν¨ν·μ μ§μμ μΌλ‘ μ μ‘ν©λλ€.
5) PAUSE
μ¬μ μΌμμ μ§.
6) TEARDOWN
μ€νΈλ¦¬λ° μΈμ μ’ λ£.
μ΄μ μ 체 νλ‘μΈμ€κ° λͺ νν΄μ§λλ€. RTSPλ μ€νΈλ¦Ό μ 보λ₯Ό μμ²νκ³ , RTP μ μ‘ κ²½λ‘λ₯Ό μ€μ νλ©°, μ¬μκ³Ό μ€μ§λ₯Ό μ§μνλ μ μ΄μμ λλ€.
4. RTSPκ° λ리 μ°μ΄λ μ΄μ
RTSPλ μ€μκ° μμ€ν μμ λ€μκ³Ό κ°μ μ₯μ μ΄ μμ΅λλ€.
μ§μ°μ΄ λ§€μ° μ λ€ (Low Latency)
RTP κΈ°λ°μ΄κΈ° λλ¬Έμ μ€μκ°μ±μ΄ λ°μ΄λ©λλ€. μΉ κΈ°λ° μ€νΈλ¦¬λ°(HLS, DASH)λ³΄λ€ ν¨μ¬ λΉ λ₯Έ μ¬μμ΄ κ°λ₯ν©λλ€.
λ€μν μ½λ±κ³Ό μ₯λΉμμ νμ€ μ§μ
κ±°μ λͺ¨λ IP μΉ΄λ©λΌκ° RTSPλ₯Ό μ§μν©λλ€.
λν λλΆλΆμ NVR, DVR, κ΄μ μ루μ
λ RTSP κΈ°λ°μ
λλ€.
FFmpeg, GStreamer λ± μ€νμμ€μ νΈνμ± λμ
λ―Έλμ΄ μ²λ¦¬ νλ μμν¬μ μμ°μ€λ½κ² μ°λλμ΄ κ°λ°λ μ¬μ΄ νΈμ λλ€.
5. RTSPμ λνμ μΈ νμ© λΆμΌ
1) IP Camera / CCTV μ€νΈλ¦¬λ°
κ°μ₯ λνμ μΈ RTSP μ¬μ©μ²μ΄λ€.
κ΄μ μμ€ν
(NVR, CMS), μμ λΆμ AI, μ€λ§νΈ μν° κ΄μ λ±μμ νμ€μ²λΌ μ¬μ©λ©λλ€.
2) RTSP → WebRTC κ²μ΄νΈμ¨μ΄
λΈλΌμ°μ λ RTSPλ₯Ό μ§μ μ²λ¦¬νμ§ λͺ»νλ―λ‘,
μλ²μμλ RTSP μ€νΈλ¦Όμ WebRTCλ‘ λ³νν΄ μ΄μ μ§μ° μ¬μμ ꡬνν©λλ€.
3) λ₯λ¬λ κΈ°λ° μμ λΆμ μμ€ν
RTSP μ€νΈλ¦¬λ° → λμ½λ© → GPU(Intel/NVIDIA)μμ μΆλ‘ (Inference)
4) λ°©μ‘/νλ‘λμ μμ€ν
SDI → IP μ ν κΈ°μ μμ RTP/RTSPκ° κΈ°λ³Έμ λλ€.
5) λ‘보ν±μ€·λλ‘ μμ μ€νΈλ¦¬λ°
μ μ§μ°μ΄ νμμΈ μ°μ μμ RTSPλ μ¬μ ν κ°λ ₯ν μ νμ§μ λλ€.
6. RTSP μ μ΄ μ½λ μμ (Python)
Pythonμ RTSP ν μ€νΈμ μλν μ€ν¬λ¦½νΈ μμ±μ κ°μ₯ μ ν©ν μΈμ΄ μ€ νλμ λλ€. μλλ κΈ°λ³Έμ μΈ RTSP μ μ΄ μ½λ μμ μ λλ€.
import socket
def send_rtsp(sock, message):
sock.send(message.encode())
data = sock.recv(4096).decode()
print(data)
return data
host = "192.168.0.101"
port = 554
stream = "rtsp://192.168.0.101/stream1"
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((host, port))
cseq = 1
# OPTIONS
send_rtsp(sock, f"OPTIONS {stream} RTSP/1.0\r\nCSeq: {cseq}\r\n\r\n")
cseq += 1
# DESCRIBE
send_rtsp(sock,
f"DESCRIBE {stream} RTSP/1.0\r\nCSeq: {cseq}\r\nAccept: application/sdp\r\n\r\n"
)
cseq += 1
μ΄μ κ°μ ννλ‘ SETUP, PLAY, PAUSE λ±μ μ§μ μ μ΄ν μ μμ΅λλ€.
7. RTSP κ°λ°μ νμν κΈ°μ μ€ν
RTSP κΈ°λ° μμ€ν μ ꡬμΆνλ κ²½μ° μλμ κΈ°μ μ ν¨κ» νμ΅νλ κ²μ΄ μ’μ΅λλ€.
- RTP/RCTP ν¨ν· ꡬ쑰 μ΄ν΄
- H.264 / H.265 NAL λ¨μ ꡬ쑰
- FFmpeg, GStreamer νμ©
- ONVIF νλ‘ν μ½ (μΉ΄λ©λΌ μ μ΄)
- GPU μΈμ½λ©/λμ½λ©(CUDA, NVENC/NVDEC)
- WebRTC (λΈλΌμ°μ μ€μκ° μ¬μ)
RTSPλ λ¨λ
μΌλ‘ μ¬μ©λλ κ²μ΄ μλλΌ
λΉλμ€ μ²λ¦¬ / λΆμ / μ μ‘ νμ΄νλΌμΈ μ 체μ κ²°ν©λλ κΈ°μ μ
λλ€.
λ§λ¬΄λ¦¬
RTSPλ λ¨μν “μμ URL” κ·Έ μ΄μμ
λλ€. μ€μκ° μμ μ μ‘μ μ 체 νλ¦μ μ μ΄νλ ν΅μ¬ νλ‘ν μ½μ΄λ©°,
μ§μ°μ΄ μ κ³ μμ μ μ΄λ©° λ€μν μ₯λΉμ νμ€μ νλκ² μ μ©λ©λλ€.
μ€μ κ°λ°μμλ RTSPλ₯Ό μ€μ¬μΌλ‘ RTP, μ½λ±, FFmpeg λ±μ κΈ°μ μ΄ μ κΈ°μ μΌλ‘ κ²°ν©λ©λλ€. RTSPλ₯Ό μ λλ‘ μ΄ν΄νλ©΄ μμ μ€νΈλ¦¬λ° μμ€ν μ 체 ꡬ쑰λ₯Ό ν λ¨κ³ λ κΉμ΄ νμ ν μ μκ² λ©λλ€.
λ€μμλ RTSP vs WebRTC λΉκ΅ κΈμ μμ±ν΄λ³΄λ €κ³ ν©λλ€.
'λ€νΈμν¬' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| μλ²μ νΉμ ν¬νΈκ° μ΄λ €μλμ§ κ°λ¨νκ² μ²΄ν¬νκΈ° (0) | 2025.05.23 |
|---|---|
| QoS, Traffic Shaping, Traffic Policing (0) | 2024.12.18 |