pile·
모바일·카테노이드카테노이드·

Kollus 안드로이드 라이브 인코더 소개

문제모바일에서 안정적인 라이브 스트리밍을 위해 UI 응답성, 하드웨어 가속 인코딩, RTMP 전송, 필터·팝업 같은 부가 기능을 한 앱에서 처리해야 했다.
접근앱은 제어·UI만 담당하고 인코더 서비스가 인코딩·전송을 맡는 구조로 분리. VideoEncoder는 H.264 하드웨어 가속을 위해 MediaCodec, AudioEncoder는 AAC를 처리하며, 초기화→RTMP 연결→오디오·비디오 동시 인코딩→graceful shutdown의 4단계로 동작한다. OpenGL+SurfaceTexture로 실시간 필터(Natural/Sepia/Mono), 밝기 셰이더, 화면 플립, 백그라운드에서도 송출되는 팝업 모드를 구현했다.
결과카메라 제어·다양한 필터·화면 플립·팝업 모드 같은 기능을 갖춘 안드로이드 라이브 인코더 사례로, 모바일 스트리밍 아키텍처 참고용 코드 예시까지 공유한다.
카테노이드
카테노이드 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 모바일·당근당근 테크블로그·

    웹뷰 다음의 레일을 깔다: 당근이 Lynx를 선택한 이유

    당근 프론트엔드코어팀이 WebView 기반 화면의 첫 프레임 렌더링 문제를 해결하기 위해 Lynx를 도입한 기록이다. 레퍼런스가 거의 없는 기술을 코드베이스 직접 분석으로 검증한 뒤 프로덕션에 적용했고, 1.9백만 사용자 A/B에서 Android 18%, iOS 37%의 첫 프레임 단축을 달성했다.

    요약 이어보기
    #cross-platform#webview#mobile-performance+2
  2. 모바일·토스 SLASH토스 SLASH·

    토스의 디바이스 팜 만들기

    토스가 각 팀이 각자 운영하던 작은 디바이스 팜을 하나의 중앙 플랫폼 '네뷸라(Nebula)'로 통합한 과정을 다룬다. Appium 대신 자체 드라이버를 개발해 클릭 13.5배, 텍스트 입력 10배의 성능을 달성했고, Android와 iOS 미러링도 직접 내재화해 실기기 원격 조작과 화면 실시간 공유를 동시에 가능하게 만들었다. 현재 100대를 넘어 수백 대를 향해 24시간 가동 중이다.

    요약 이어보기
    #android#ios#appium+2