
Python WebRTC는 크롬에 쓰이는 libwebrtc M152를 파이썬에서 사용할 수 있도록 하고, 브라우저의 W3C API와 유사한 인터페이스를 제공하는 라이브러리다. 제작자는 브라우저·서버·SFU·AI 에이전트와 중간 업체 서비스 없이 피어 투 피어로 연결할 수 있다고 설명한다.
pip install wrtc
브라우저 API에서 쓰는 RTCPeerConnection, 데이터 채널, 트랙, WebCodecs 프레임, 인코딩 변환과 통계 기능을 지원한다. 이름은 기본적으로 snake_case를 따르지만 createOffer 같은 camelCase 표기도 사용할 수 있다. 비동기 처리는 asyncio를 사용한다.
기존 aiortc 사용자는 wrtc[aiortc]를 설치하고 from aiortc를 from webrtc.aiortc로 바꾸는 방법을 안내받을 수 있다. 자세한 내용은 aiortc에서 마이그레이션하기를 참고하면 된다.
프로젝트는 VP8, VP9, AV1, H.264 영상 코덱과 Opus, G.722, G.711 오디오 코덱을 제시한다. 단, H.264 구현은 패키지에 포함되지 않는다. webrtc.openh264.install()을 실행하면 사용자 기기에 Cisco 바이너리를 내려받으며, Cisco의 특허 라이선스가 적용된다. macOS에서는 VideoToolbox를 통한 하드웨어 H.264를 지원한다고 설명한다.
제작자 자료에 따르면 Linux·macOS·Windows용 사전 빌드 휠을 제공하며, CPython 3.9~3.15와 자유 스레드 버전 3.14t·3.15t를 지원한다. Linux는 x86_64와 aarch64(glibc 2.27 이상), macOS는 13 이상과 Intel·Apple Silicon, Windows는 x64가 대상이다. 이 범위 밖에서는 CMake와 C++20 컴파일러를 이용해 소스에서 빌드해야 한다.
제작자는 aiortc와 비교해 연결을 7.3~8.3배 빠르게 열고 데이터 채널로 7.7~14.6배 많은 데이터를 전송하며, 오디오 처리에 쓰는 CPU도 적다고 주장한다. 벤치마크는 프로젝트 벤치마크 페이지에서 확인할 수 있으며 Pion, libdatachannel, webrtc-rs도 측정 대상에 포함한다.
| 항목 | Python WebRTC | aiortc | LiveKit SDK | GStreamer webrtcbin |
|---|---|---|---|---|
| 엔진 | libwebrtc(크롬 엔진) | 파이썬 자체 구현 | libwebrtc | C 자체 구현 |
| 모든 WebRTC 엔드포인트와 피어 투 피어 연결 | 가능 | 가능 | LiveKit 서버 필요 | 가능 |
| 브라우저 API | 지원 | 유사 | 룸 방식 | GObject 시그널 |
| 미디어 경로 | 네이티브 | 파이썬 | 네이티브 | 네이티브 |
| VP9·AV1 | 지원 | 미지원 | 지원 | 지원 |
| Linux·macOS·Windows에서 pip 설치 | 지원 | 지원 | 지원 | Linux 휠 없음 |
프로젝트는 W3C 사양을 바탕으로 구현했으며 브라우저가 사용하는 web-platform-tests로 테스트했다고 밝힌다. 다만 현재 1.0 이전 버전으로, API가 사양을 따르더라도 버전 간 호환성은 1.0.0 전까지 보장되지 않는다. 문서와 빠른 시작 안내, 예제 모음에서 사용법을 확인할 수 있다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요