์ค์๊ฐ ๋์คํ๋ ์ด ๊ณต์ ๊ฐ ๊ฐ๋ฅํ ์๋ฒ ๋๋ ์ํํธ์จ์ด
โถ๏ธ Watch on YouTube
ย ย ํ๋์ ํ์๋ ๋ฐํ ํ๊ฒฝ์์๋ ๋ค์์ ์ฐธ์ฌ์๊ฐ ๊ฐ์์ ํ๋ฉด์ ๊ณต์ ํด์ผ ํ๋ ์ํฉ์ด ๋น๋ฒํ๊ฒ ๋ฐ์ํ๋ค. ํนํ ๋ฐํ์๊ฐ ๋ฐ๋ ๋๋ง๋ค HDMI ์ผ์ด๋ธ์ ์ฐ๊ฒฐํ๊ณ ํด์ ํ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ๊ฑฐ๋, ๋ณ๋์ ํ๋ก๊ทธ๋จ์ ์ค์นํด ๊ณต์ ๊ถํ์ ์ค์ ํ๋ ๋ฑ์ ๋ฒ๊ฑฐ๋ก์ด ์ ์ฐจ๊ฐ ์๊ตฌ๋๋ค. ์ด๋ฌํ ๋ฐฉ์์ ํ์ ํ๋ฆ์ ๋๊ณ ๋ถํ์ํ ์๊ฐ์ ์๋ชจํ๊ฒ ๋ง๋ค๋ฉฐ, ์ ํ ๊ณผ์ ์ด ๋งค๋๋ฝ์ง ์์ ๋ฐํ ์ง์ค๋๊ฐ ๋จ์ด์ง๋ค.
๋ณธ ํ๋ก์ ํธ๋ ์ด๋ฌํ ํ์ค์ ์ธ ๋ถํธํจ์ ํด์ํ๊ณ ์, WebRTC์ P2P ํต์ ๊ธฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ๋ณ๋์ ์ค์น ์์ด ๋ธ๋ผ์ฐ์ ์์ ๋ฐ๋ก ์คํ ๊ฐ๋ฅํ ์ค์๊ฐ ํ๋ฉด ๊ณต์ ์์คํ ์ ๊ตฌํํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค. ํด๋ผ์ด์ธํธ๋ ์์ ์ ํ๋ฉด์ ์์ฝ๊ฒ ๊ณต์ ํ๊ณ , ์์ดํ์ด ๊ธฐ๋ฅ์ ๊ฐ์ง ์๋ฒ ๋๋ ์ฅ์น(Multiplxer๋ผ ํธ์นญ)๋ก ์ค์๊ฐ ๋์คํ๋ ์ด ๊ณต์ ๊ฐ ๊ฐ๋ฅํ๋ฉฐ, ๊ด๋ฆฌ์๊ฐ ์ด๋ฅผ ์ ์ดํ ์ ์๋ ๊ตฌ์กฐ๋ก, ๋ฐํ ์ ํ์ ์ ์ฐํ๊ฒ ํ๊ณ ํ์ ์ ์ง์ค๋๋ฅผ ๋์ผ ์ ์๋ ํ๊ฒฝ์ ์ ๊ณตํ๋ค.
- HDMI ์ผ์ด๋ธ ๊ต์ฒด ์์ด ์ฆ์ ํ๋ฉด ์ ํ
- Wifi ํต์ ์ผ๋ก Multiplexer์ ํด๋ผ์ด์ธํธ ๊ฐ ๋ฌด์ ์ฐ๊ฒฐ
- ์ฌ๋ฌ ํ์ ์ฐธ์์์ ํ๋ฉด ๋์ ์์
- ์ฌ๋ฌ ์ฌ์ฉ์์ ๋ฐํ ํ๋ฉด์ ๋ถํ ํ์ฌ ํ์
- ์์ฑ ์ธ์์ผ๋ก ํ๋ฉด ์ ํ ๋ฐ ๋ถํ ์ง์
-
๊ณ ์ ์ค์์นญ ๋ฉํฐ ํ๋ ์ ์ํํธ์จ์ด
๋ฉํฐ ํ๋ ์ ์ํํธ์จ์ด๊ฐ ๋งค์ฐ ๋น ๋ฅธ ์๋๋ก ํด๋ผ์ด์ธํธ ํ๋ฉด์ ์ ํํ๋ค. -
์์ดํ์ด ๊ธฐ๋ฐ ์ฐ๊ฒฐ
์์ดํ์ด ๊ธฐ๋ฐ ๋ฌด์ ์ฐ๊ฒฐ๋ก ํธ๋ฆฌํ๊ฒ ํ๋ฉด์ ๊ณต์ ํ๋ค. -
WebRTC P2P ์ฐ๊ฒฐ๋ก ์ฌ์ฉ์ ์คํฌ๋ฆฐ ์ค์๊ฐ ์ ์ก
์๋ฒ ๊ฒฝ์ ์์ด ์ง์ ์ฐ๊ฒฐํ์ฌ ์ง์ฐ ์๊ฐ์ ์ต์ํํ๋ค. -
GStreamer ํ๋ ์์ํฌ ์์ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ์ฌ ๋ค์ค ํ๋ฉด ์ง์ ๊ฐ ์ฌ์ฉ์์ ๋น๋์ค ์คํธ๋ฆผ์ ๋์์ ์์ ํ๊ณ ๊ฐ ์คํธ๋ฆผ ๋ณ๋ก ๋ ๋ฆฝ์ ์ธ GStreamer ํ๋ ์์ํฌ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ์ฌ ๋์ ์ฒ๋ฆฌํ๋ค.
-
๋ฒ์ฉ ํธํ์ฑ ํ๋ณด
100% ์ํํธ์จ์ด ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํํ์ฌ ๋ณ๋์ ์ ์ฉ ํ๋์จ์ด ํ์ ์์ด ์๋ฒ ๋๋ ๋๋ฐ์ด์ค, ๋ ธํธ๋ถ, ๋ฐ์คํฌํฑ ๋ฑ ๋ค์ํ ํ๋์จ์ด๋ฅผ ์ง์ํ๊ณ , ๋ธ๋ผ์ฐ์ ๋ง ์์ผ๋ฉด ๋ณ๋ ์ฑ ์ค์น ์์ด ๋ฐ๋ก ํ๋ฉด ๊ณต์ ๊ฐ ๊ฐ๋ฅํ๋ค. -
๋น๋์ค ๋์ฝ๋ฉ ์๊ฐ์ ์ต์ํํ๊ธฐ ์ํด GPU์ ๋ด์ฅ๋ ํ๋์จ์ด ๋์ฝ๋ ํ์ฉ GPU์ ๋ด์ฅ๋ ํ๋์จ์ด ๋์ฝ๋๋ฅผ ํ์ฉํ์ฌ ๋น ๋ฅธ ๋น๋์ค ๋์ฝ๋ฉ์ ๋ฌ์ฑํ๋ค.
- ์๋ฒ ๋๋ Multiplexer ์ฅ์น
- Jetson Orin NX Super ์๋ฒ ๋๋ ๋ณด๋
- HDMI๋ก ๋ํ ๋์คํ๋ ์ด ์ฐ๊ฒฐ
- UHD/FHD/HD ๋์คํ๋ ์ด ์ง์
- Wi-Fi AP๋ก ๋คํธ์ํฌ ๊ณต์ ํ๊ฒฝ ์ ๊ณต
- ํด๋ผ์ด์ธํธ
- Wi-Fi ์ฐ๊ฒฐ์ด ๊ฐ๋ฅํ ๋ชจ๋ PC, ๋ ธํธ๋ถ
- ์ด์์ฒด์ ๊ด๊ณ ์์ด ๋ธ๋ผ์ฐ์ ๋ง์ผ๋ก ์ฐ๊ฒฐ
-
Multiplexer: Ubuntu Linux์์ WebRTC๋ก ํ๋ฉด ์คํธ๋ฆผ์ ์์ ํ๋ฉฐ ํ๋์จ์ด ๋์ฝ๋๋ฅผ ์ด์ฉํด์ ๋น ๋ฅด๊ฒ ์์ ์์ ๋ฐ ์ถ๋ ฅ
- WebRTC ์๊ทธ๋๋ง ์๋ฒ: ํ๋ฉด ์ ์ก ํด๋ผ์ด์ธํธ์ GStreamer ํ๋ ์์ํฌ ๊ฐ ์ฐ๊ฒฐ
- GStreamer + MQTT ๋ธ๋ก์ปค: ๋ค์ค ํ์ดํ๋ผ์ธ ์คํธ๋ฆฌ๋ฐ ์ฒ๋ฆฌ ๋ฐ ์ ์ด
- Flask ์น ์ ํ๋ฆฌ์ผ์ด์ : ํด๋ผ์ด์ธํธ ์ ์ ๋ฐ ์น ์ธํฐํ์ด์ค ์ ๊ณต
- MQTT ๋ธ๋ก์ปค: ์ค์๊ฐ ๋ฉ์์ง ํต์
- HW H.264 Decoder: ํ๋์จ์ด ๊ฐ์ ๋น๋์ค ์ฒ๋ฆฌ
-
ํด๋ผ์ด์ธํธ: ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฐ์ผ๋ก ๋ณ๋ ์ฑ ์ค์น์ ์ฑ ๋ธ๋ผ์ฐ์ ๋ง์ผ๋ก ํ๋ฉด ๊ณต์ ๋ฐ ๊ด๋ฆฌ
- ์ผ๋ฐ ์ฌ์ฉ์: ์น ํ์ด์ง์ ์ ์ํ์ฌ ์ค์๊ฐ์ผ๋ก ํ๋ฉด ์คํธ๋ฆฌ๋ฐ
- ๊ด๋ฆฌ์: ๊ด๋ฆฌ์ ์น ํ์ด์ง์ ์ ์ํ์ฌ ํ๋ฉด ๋ถํ , ๋ ์ด์์ ๋ณ๊ฒฝ, ํด๋ผ์ด์ธํธ ํ๋ฉด ๋ฐฐ์น ๊ด๋ฆฌ
- ํ๋ฉด์ ๊ณต์ ํ ํด๋ผ์ด์ธํธ๊ฐ ์น ํ์ด์ง์ ์ ์ํ์ฌ ํ๋ฉด ๊ณต์ ์์
- WebRTC ์๊ทธ๋๋ง ์๋ฒ๋ฅผ ํตํด ์ฐ๊ฒฐ ํ์
- Multiplexer๊ฐ ์๋ก์ด ํด๋ผ์ด์ธํธ๋ฅผ ๊ฐ์ง, GStreamer ํ๋ ์์ํฌ ์์ ํ์ดํ๋ผ์ธ ์์ฑ
- Webrtcbin ํ๋ฌ๊ทธ์ธ์ด WebRTC ํ์์ ์์ํ์ฌ P2P ์ฐ๊ฒฐ ๊ตฌ์ถ
- ์น ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉ์ ํ๋ฉด์ ์บก์ณํ์ฌ H.264๋ก ์ค์๊ฐ ์ธ์ฝ๋ฉ
- ์ธ์ฝ๋ฉ๋ ๋น๋์ค๋ฅผ RTP ํจํท์ผ๋ก Multiplexer์ ์ ์ก
- ํด๋ผ์ด์ธํธ๋ณ๋ก ๋ ๋ฆฝ์ ์ธ GStreamer ํ์ดํ๋ผ์ธ ๋์ ์ผ๋ก ์์ฑ
- ํด๋ผ์ด์ธํธ os์ ๋ง๋ ํ๋์จํฐ ๋์ฝ๋๋ฅผ ํ์ฉํ ๊ฐ์ ๋์ฝ๋ฉ
- ์ฒ๋ฆฌ๋ ๋น๋์ค๋ฅผ PyQt5 ์์ ฏ์ ๋ ๋๋ง, HDMI ์ผ์ด๋ธ๋ก ์ฐ๊ฒฐ๋ ๋์คํ๋ ์ด์ ์ถ๋ ฅ
- ๊ด๋ฆฌ์๊ฐ ์น ํ์ด์ง์ ์ ์ํ์ฌ MQTT ๋ธ๋ก์ปค์ ์ฐ๊ฒฐ
- ์ฌ์ฉ์ ๋ชฉ๋ก๊ณผ ํ์ฌ ํ๋ฉด ๋ฐฐ์น ์ํ๋ฅผ ์ค์๊ฐ์ผ๋ก ์์
- ์ฌ์ฉ์์ ํ๋ฉด ๋ฐฐ์น ์กฐ์ , ์ต๋ 4๋ถํ ๋ ์ด์์ ์ ๊ณต
- MQTT๋ฅผ ํตํด ๋ฐฐ์น ์ฌํญ์ Multiplexer์ ์ ์ก
- Multiplexer๊ฐ PyQt5 UI์์ ํ๋ฉด ๋ถํ ๋ฐ ์ฌ์ฉ์ ์ฌ๋ฐฐ์น
- Google Speech-to-Text๋ก ์ฌ์ฉ์ ์์ฑ ์ธ์ ์ ํด๋น ์ฌ์ฉ์ ํ๋ฉด ์๋ ์ ํ
ํค ํฌ์ธํธ: WebRTC P2P, GStreamer ๋์ฝ๋ฉ, MQTT ๋๊ธฐํ, PyQt5 UI, Google STT API ์ฐ๋
Multiplexer (ํด๋ผ์ด์ธํธ ํ๋ฉด ์์ /๋ฐฐ์น)
signalingServer.jsโ WebRTC ์๊ทธ๋๋ง ์๋ฒ: Offer/Answer SDP ๊ตํ ๋ฐ ICE ํ๋ณด ์ค๊ณ ์ฒ๋ฆฌui_components.pyโ PyQt5 UI ์ปดํฌ๋ํธ: ๋ฉ์ธ ์๋์ฐ, ๋น๋์ค ์์ ฏ, ๋ ์ด์์ ๊ดpeer_receiver.pyโ ํผ์ด ์์ :GStreamer ํ๋ ์์ํฌ ํ์ดํ๋ผ์ธ ๊ตฌ์ฑ, ํ๋์จ์ด ๋น๋์ค ๋์ฝ๋ฉreceiver_manager.pyโ ๋ค์ค ์ก์ ์ ์ฐ๊ฒฐ ๊ด๋ฆฌ: ์ก์ ์ ๋ชฉ๋ก ๊ด๋ฆฌ ๋ฐ ํ๋ฉด ๋ฐฐ์น ์กฐ์ mqtt_manager.pyโ MQTT ํต์ (์ฐธ์ฌ์ ๋ชฉ๋ก, ๋ ์ด์์ ๋๊ธฐํ): ์ฐธ์ฌ์ ์ํ ๋ธ๋ก๋์บ์คํธ, ๋ฐฐ์น ๋ช ๋ น ์์
ํ๋ฉด ์ ์ก ํด๋ผ์ด์ธํธ
client.htmlโ ํ๋ฉด ์ ์ก ํด๋ผ์ด์ธํธ ํ์ด์ง - ์ด๋ฆ ์ ๋ ฅ UI ๋ฐ ํ๋ฉด ๊ณต์ ์์ ์ธํฐํ์ด์คclient.jsโ ํ๋ฉด ๊ณต์ WebRTC ํด๋ผ์ด์ธํธ : ํ๋ฉด ์บก์ณ, H.264 ์ธ์ฝ๋ฉ, RTP ์ ์ก
ํ๋ฉด ๊ด๋ฆฌ(Administrator) ํด๋ผ์ด์ธํธ
admin.htmlโ ํ๋ฉด ๊ด๋ฆฌ ํด๋ผ์ด์ธํธ ํ์ด์ง - ์ฐธ์ฌ์ ๋ชฉ๋ก ํ์ ๋ฐ Drag&Drop UIadmin.jsโ ๊ด๋ฆฌ์ UI ๋ฐ ์ํ ๊ด๋ฆฌ - ๋ ์ด์์ ์ ์ด ๋ก์ง ๋ฐ MQTT ํต์voiceHandler.jsโ ์์ฑ ์ธ์์ ํตํ ์ฐธ์ฌ์ ํธ์ถ ๊ธฐ๋ฅ - Google STT API ์ฐ๋ ๋ฐ ์ด๋ฆ ์ธ์
-
GStreamer ํ๋ ์์ํฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ ์ ๋ฏธ๋์ด ์คํธ๋ฆฌ๋ฐ ํ์ดํ๋ผ์ธ ๊ตฌ์ถ
์ ๊ณ ํ์ค๊ธ ๋ฉํฐ๋ฏธ๋์ด ํ๋ ์์ํฌ ํ์ฉ์ผ๋ก ๋์ ์์ ์ฑ๊ณผ ํ์ฅ์ฑ์ ํ๋ณดํ๋ค. -
GPU์ ๋ด์ฅ๋ ํ๋์จ์ด ์ฝ๋ฑ์ ํ์ฉ ๊ณ ์ ์คํธ๋ฆฌ๋ฐ ์คํ
ํ๋์จ์ด ๋์ฝ๋ฉ ๊ธฐ๋ฐ์ผ๋ก ๋น ๋ฅธ ์คํธ๋ฆฌ๋ฐ ์๋น์ค ๊ตฌํํ๋ค. -
์ํํธ์จ์ด ์ฝ๋ฑ ์๋ ํ๋ฐฑ ์ผ๋ก ๋์ ๊ฐ์ฉ์ฑ ๋ณด์ฅ
ํ๋์จ์ด ๊ฐ์์ด ๋ถ๊ฐ๋ฅํ ํ๊ฒฝ์์๋ ์ํํธ์จ์ด ๋์ฝ๋ฉ์ผ๋ก ์๋ ์ ํ๋์ด ์๋น์ค ์ฐ์์ฑ์ ์ ์งํ๋ค. -
WebRTC P2P ํต์ ์ผ๋ก ๋น ๋ฅธ ๋น๋์ค ์ ์ก
WebRTC P2P ํต์ ์ผ๋ก ์๋ฒ ๊ฒฝ์ ์์ด ์ฌ๋ฌ ์ฐธ๊ฐ์๊ฐ ๋์์ ํ๋ฉด์ ๊ณต์ ํ๊ณ ์ค์๊ฐ์ผ๋ก ์ ํ ๊ฐ๋ฅํ๋ค.
- ๋ค์ค ํ๋ฉด ๊ณต์ ๋ฐ ์ค์๊ฐ ์ ํ์ด ๊ฐ๋ฅํ ์๋ฒ ๋๋ Multiplexer ์ํํธ์จ์ด ๊ฐ๋ฐ
- ํ๋์จ์ด ์ฝ๋ฑ ์ฐ์ ํ์ฉ์ผ๋ก ๊ณ ์ฑ๋ฅ ์คํธ๋ฆฌ๋ฐ ์คํ
- 100% ์ํํธ์จ์ด ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํํ์ฌ ์ ์ฉ ํ๋์จ์ด ์์ด ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํ ์๋ฃจ์ ์ ๊ณต
- ์๋ฒ ๋๋ ๋๋ฐ์ด์ค, ๋ ธํธ๋ถ, ๋ฐ์คํฌํฑ ๋ฑ ๋ค์ํ ํ๋์จ์ด์์ ํธํ ๊ฐ๋ฅ
์๋๋ Multiplexer๋ฅผ ํ์ฉํ ๋ฐ๋ชจ ํ์๋ฅผ ํ ์คํธ ์ผ์ด์ค๋ก ์ผ์, ์์คํ ์ ์ ๋ฐ์ ์ธ ๋์ ๊ณผ์ ๊ณผ ๊ธฐ๋ฅ์ ํจ๊ณผ์ ์ผ๋ก ์์ฐํ๋ ๋ด์ฉ์ด ๋ด๊ฒจ ์๋ค.
- Multiplexer ์ฑ ์คํ ์ ์ด๊ธฐ ๋์ ๊ณผ์
- ์ฌ์ฉ์ ํ์ด์ง์ ๊ด๋ฆฌ์ ํ์ด์ง์ ๋์ ๊ณผ์
- ๊ด๋ฆฌ์ ํ์ด์ง์์์ ํ๋ฉด ๋ถํ ๊ด๋ฆฌ ๋์ ๊ณผ์
- ๋ชจ๋ ์ฌ์ฉ์ ํด์ฅ ์ Multiplexer ํ๋ฉด







