안녕하세요.
담당 매니저 김수민입니다.
기간제(상주) 프로젝트 희망 근무 시작일을
등록해 주시면, 파트너님의 일정에 맞는
적합한 프로젝트를 추천해 드려요.
플러스
VoIP 미디어엔진 설계 및 개발
개발
안드로이드 · iOS · PC프로그램 · 임베디드
그래픽ㆍ미디어, IoTㆍ블루투스, 그래픽ㆍ영상 등
프로젝트 배경
■ 문제점

▪ 구조적 확장성 한계
기존 VoIP 미디어 엔진은 기능별 Layer 기반의 Monolithic 구조로 설계되어, 신규 서비스 요구사항이나 기능 확장 시 구조 복잡도가 급격히 증가하는 문제가 있었습니다.

▪ 플랫폼·환경 대응의 어려움
다양한 OS와 단말, 네트워크 환경을 동시에 만족시키기 어려워 유지보수 비용이 증가하고, 서비스 확장 속도가 저하되는 문제가 지속적으로 발생하였습니다.


■ 프로젝트 목표

▪ 컴포넌트 기반 미디어 엔진 구축
기존 구조의 한계를 극복하고, 미디어 처리 단위를 독립적인 컴포넌트로 분리한 범용 실시간 미디어 엔진을 구축하는 것을 목표로 하였습니다.

▪ 서비스 확장성 확보
음성·영상 통화뿐만 아니라 PTT, 영상 공유, 실시간 스트리밍 등 다양한 실시간 미디어 서비스에 유연하게 재사용 가능한 엔진 코어를 지향하였습니다.

▪ 멀티플랫폼 품질 일관성
Android, iOS, Windows, Linux 등 멀티플랫폼 환경에서 동일한 동작과 상용 수준의 품질을 확보하는 것을 주요 목표로 설정하였습니다.


■ 주안점

▪ 컴포넌트 기반 파이프라인 설계
Source, Filter, Codec, Sink로 이어지는 미디어 처리 단계를 독립적인 컴포넌트로 설계하고, 서비스 요구사항에 따라 파이프라인을 동적으로 구성할 수 있도록 하였습니다.

▪ 성능 중심 Direct Integration 전략
무거운 통합 라이브러리나 프레임워크 의존을 지양하고, 필요한 코어 로직과 오픈소스 코덱만을 직접 연동하여 불필요한 성능 오버헤드를 최소화하였습니다.

▪ 플랫폼 이식성 향상 및 품질 안정성 확보
기본적인 PAL(Platform Adaptation Layer)로 충족할 수 없는 플랫폼간 차이를 극복하기 위한 방안과 네트워크 변동 환경에서도 안정적인 품질을 유지할 수 있도록 자체 지터 버퍼 및 비트레이트 적응 로직을 새롭게 설계·적용하는 데 중점을 두었습니다.
프로젝트 성과
상용화 및 안정성 검증
✔ 국내 주요 유·무선 통신사 서비스에 탑재
✔ 글로벌 단말 제조사 제품 적용
비즈니스 확장성 확보
✔ VoIP부터 PTT(Push-To-Talk), 영상 공유 솔루션 등으로 파생
멀티플랫폼 개발 효율성 향상
✔ 단일 엔진 코드로 Android, iOS, Windows, Linux 지원
✔ 유지보수 및 장기 운영 비용 절감
고성능 및 안정적인 미디어 처리 기반 확보
✔ Zero-copy 및 Hardware Codec 직접 연동으로 성능 및 전력 효율 개선
✔ 자체 연구·개발한 지터 버퍼 및 QoS 제어 알고리즘 적용
핵심 기능
실시간 음성 처리 및 통화 품질 제어
✔ 저지연 VoIP 통화를 위한 오디오 코덱과 AEC, NS, AGC 등 필수 DSP 기능을 통해 안정적인 음성 품질 제공
고성능 영상 처리
✔ 실시간 영상 통화 및 공유를 위해 다양한 비디오 코덱과 하드웨어 가속을 지원하는 고성능 영상 처리 파이프라인 제공
프로젝트 상세
■ 개요

VoIP 미디어 엔진은 기존 기능별 Layer로 고착화된 Monolithic 구조의 확장성 한계를 극복하기 위해 설계된 컴포넌트 기반(Component-based)의 Native 실시간 미디어 처리 엔진입니다.

Source, Filter, Codec, Sink 등 미디어 처리의 각 단계를 독립적인 컴포넌트로 모듈화하여, 음성/영상 통화뿐만 아니라 PTT(Push-to-Talk), 영상 공유, 실시간 스트리밍 등 다양한 서비스에 유연하게 재사용할 수 있는 범용 엔진을 목표로 개발되었습니다.

본 제품은 Android, iOS, Windows, Linux 등 멀티 플랫폼 환경에서 상용 수준의 품질을 확보하였으며, 국내 주요 통신사 및 글로벌 제조사 제품에 탑재되어 안정성을 검증받았습니다.


■ 추진 배경

▪ VoIP 필수 품질 확보의 어려움
낮은 지연과 정확한 A/V Sync 등 통화 품질에 필수적인 전·후처리 기술(AEC, NS, DTX, FEC, PLC, AGC)을 엔진 내부에 내재화할 필요가 있었습니다.

▪ 구조적 유연성 부족
Monolithic 구조로 인해 새로운 코덱 추가나 서비스 요구사항 반영 시 코드 복잡도가 증가하였으며, 대체 이미지·영상 전송이나 Rate Adaptation과 같은 기능을 수용하는 데 구조적인 제약이 있었습니다.

▪ 고성능 처리 한계
저지연·고성능을 요구하는 실시간 미디어 서비스 제공을 위해 메모리 및 CPU 자원 최적화와 Hardware Codec의 적극적인 활용이 필요하였습니다.

▪ 멀티플랫폼 대응
Android, iOS, Windows, Linux 등 멀티플랫폼 환경에서도 동일한 동작과 품질을 보장할 수 있는 공통 엔진 구조에 대한 요구가 있었습니다.

▪ 범용 엔진 자산 필요성
VoIP 통화 단일 서비스뿐만 아니라 다양한 실시간 미디어 서비스에도 엔진 코어를 재사용하기 위해 범용 엔진 확보의 필요성이 대두되었습니다.


■ 설계 방향

▪ 컴포넌트 기반 아키텍처 도입
미디어 처리 단위를 모듈화하고, 비즈니스 로직에 따라 컴포넌트 그래프(Graph)를 동적으로 구성할 수 있도록 컴포넌트 기반 아키텍처를 도입하였습니다. 이를 통해 코드 재사용성과 구조적 유연성을 확보하였습니다.

▪ Direct Integration 전략 적용
FFmpeg와 같은 무거운 통합 프레임워크 의존을 지양하고, 필요한 코어 로직과 오픈소스 코덱만을 직접 연동(Direct Binding)하는 Direct Integration 전략을 채택하였습니다. 이를 통해 불필요한 성능 누수(Performance Leak)를 최소화하였습니다.

▪ 플랫폼 추상화 구조 설계
OS 종속적 요소(Thread, Socket 등)는 Platform Abstraction Layer(PAL)로 분리하고, 포팅 차이가 큰 UI 및 Media 영역은 별도 컴포넌트로 격리하는 구조를 설계하였습니다. 이를 통해 멀티플랫폼 환경에서도 공통 엔진 구조를 유지할 수 있도록 하였습니다.

▪ 네트워크 환경 대응 로직 내재화
와이파이 환경에서 발생하는 패킷 몰림(Burst)과 지터 문제에 대응하기 위해, 독자적인 Jitter Buffer 알고리즘과 Bitrate Adaptation 로직을 엔진 코어 수준에 내재화하였습니다.


■ 구현 범위 및 주요 역할

▪ 코어 아키텍처 및 파이프라인 설계·개발
엔진 전반의 아키텍처를 설계하고, 입·출력 노드를 가지는 컴포넌트 간 연결 및 상태 관리를 담당하는 엔진 코어 프레임워크를 개발하였습니다. Source(입력) → Filter(가공) → Codec(압축) → Sink(출력/전송)로 이어지는 미디어 데이터 흐름을 노드 기반 그래프로 설계하고, 이를 동적으로 제어하는 파이프라인 로직을 구현하였습니다. 또한 대용량 미디어 데이터 처리 시 메모리 복사로 인한 성능 저하를 방지하기 위해 Reference Counting 기반의 Zero-copy MediaBuffer 구조를 설계하였으며, 데이터 분기(Tee), 선택(Select), 비동기 처리를 위한 큐(Queue) 등 파이프라인 제어에 필수적인 기본 컴포넌트들을 함께 개발하였습니다.

▪ 오디오 프로세싱
AMR-NB/WB, G.711, Opus, SILK, AAC, PCM 등 다양한 오디오 코덱 컴포넌트를 개발하고, AEC(에코 캔슬링), NS(노이즈 억제), AGC, VAD(음성 감지) 등 통화 품질에 직접적인 영향을 미치는 DSP 모듈들을 컴포넌트화하여 파이프라인에 통합하였습니다. 다양한 단말 및 네트워크 환경에서도 안정적인 음성 품질을 제공하기 위해 오디오 레벨 정규화(Normalize) 로직과 고성능 Jitter Buffer, PLC(Packet Loss Concealment) 알고리즘을 독자적으로 연구·구현하였습니다.

▪ 비디오 프로세싱
H.263, H.264, MJPEG, VP8 등 비디오 코덱 컴포넌트를 개발하고, 통합 프레임워크 오버헤드 없이 오픈소스 Software Codec 라이브러리를 직접 연동하였습니다. 또한 플랫폼별 Hardware Codec(Encoder/Decoder)의 Native API를 엔진에 직접 바인딩하여 저지연·저전력 영상 처리를 구현하였으며, 색상 공간 변환(Color Space Conversion)과 해상도 조절(Rescaling) 등 영상 처리에 필요한 핵심 로직을 직접 개발하였습니다.

▪ 실시간 송수신 및 네트워크 적응형 기능
RFC 표준을 기반으로 RTP/RTCP 스택을 직접 구현하여 미디어 패킷의 Packetize/Depacketize 처리, DTMF 전송, A/V Sync 로직을 개발하였습니다. RTCP APP 패킷을 활용한 자체 대역폭 추정 알고리즘을 적용하여 네트워크 상태 변화에 따라 해상도와 비트레이트를 실시간으로 조정하는 Bitrate Adaptation 엔진을 구현하였습니다.

▪ 세션 포워딩
멀티 세션 환경에서 미디어 스트림을 전달할 때 불필요한 디코딩 및 인코딩 과정을 거치지 않고, 패킷 단위로 바이패스(Bypass)하거나 교차 연결할 수 있는 미디어 라우팅 구조를 설계하였습니다. 이를 통해 시스템 부하를 최소화하면서도 다양한 서비스 시나리오를 수용할 수 있도록 하였으며, 카메라 영상 대신 대체 이미지나 영상을 송출하는 기능을 함께 구현하였습니다.

▪ 크로스플랫폼 엔지니어링
Android(JNI), iOS(Objective-C++), Windows(Win32 API) 등 상이한 네이티브 환경을 단일 C++ 인터페이스로 통합하여 공통 엔진 구조를 유지하였습니다. 또한 Make 기반의 멀티플랫폼 통합 빌드 환경을 구성하고, 각 플랫폼별 포팅 및 통합 테스트를 수행하여 동작 일관성과 품질을 검증하였습니다.


■ 결과

▪ 상용화 및 안정성 검증
국내 주요 유·무선 통신사 및 글로벌 단말 제조사 제품에 실제 탑재되어 대규모 사용자 환경에서 안정성을 검증받았습니다.

▪ 비즈니스 확장성 확보
초기 VoIP 통화 엔진에서 시작하여 PTT 솔루션 및 실시간 영상 공유 솔루션으로 빠르게 파생 개발되어 실질적인 사업 성과를 창출하였습니다.

▪ 품질 및 성능 경쟁력 확보
독자적인 지터 버퍼 및 QoS 로직을 통해 열악한 WiFi 환경에서도 우수한 통화 품질을 확보하였습니다.

▪ 개발 효율성 향상
단일 엔진 코드베이스로 Android, iOS, Windows, Linux 환경을 모두 지원하여 플랫폼별 개발 및 유지보수 비용을 절감하였습니다.

비슷한 프로젝트를 준비 중이라면?
위시켓 매니저와 상담하세요.

참여 개발사와 미팅 연결

프로젝트 1:1 컨설팅 제공

무료로 프로젝트 등록하기

작업한 파트너 프로필 보기

ag******
개발 · 개인사업자

프로젝트 정보

참여 기간
2012.08. ~ 2013.06.
참여율
참여율이 100%인 프로젝트는 해당 파트너님이 온전히 작업한 결과물입니다.
외부 공동 작업의 경우 기여도에 따라 참여율이 달라지며 역할, 프로젝트 설명을 통해 업무 분야 및 참여 범위를 확인할 수 있습니다.
80%
관련 기술
C++
aec
agc
Java
fec
jitterbuffer
pcm
mjpeg
jni
rtp/rtsp
Android+iOS
codec
yuv
directshow
ns
vad
C
Objective-C
aosp
ndk
plc