본문으로 건너뛰기

실시간 스트리밍 개요

LiveStreamingAPI를 사용하여 연결된 기기의 카메라 영상을 실시간으로 받을 수 있습니다. 기기는 핫스팟을 통해 RTSP 스트림을 제공하거나 개별 JPEG 프레임을 전송할 수 있으며 두 모드를 모두 지원할 수도 있습니다.

Animated workflow

기기 실시간 스트리밍 수명 주기

기기가 지원하는 전송 방식을 선택하고 기기 세션과 표시 리소스를 함께 관리하며, finish 콜백을 세션의 최종 종료 신호로 처리합니다.

호스트 앱

기기 확인

기기가 연결되어 사용할 수 있고 LiveStreamingAPI를 준수하는지 확인합니다.

호스트 앱

전송 방식 선택

모드를 선택하기 전에 RTSP와 JPEG 지원 속성을 확인합니다.

AIBuds

세션 시작

선택한 실시간 스트리밍 모드를 요청하고 시작 콜백을 처리합니다.

기기 + SDK

입력 준비

RTSP는 기기 핫스팟을 구성하여 연결하고, JPEG는 프레임 데이터를 기다립니다.

기기 → 앱

미디어 수신

RTSP 주소 또는 각각의 완전한 JPEG 프레임을 사용합니다.

실시간 미디어
호스트 앱

미디어 표시

AIBudsLiveStream으로 RTSP를 재생하거나 JPEG 데이터를 디코딩하여 이미지 뷰에 표시합니다.

호스트 앱 → 기기

세션 중지

재생 또는 표시 리소스와 함께 기기 세션을 중지합니다.

종료 콜백

종료 처리

사용자 중지와 예기치 않은 중단을 구분하고 로컬 상태를 정리합니다.

RTSP와 JPEG는 서로 다른 입력 방식입니다. 기기 실시간 스트리밍 세션은 한 번에 하나만 시작하세요.

기능 개요

AI를 활용해 구현

AI로 구현

AI로 이 워크플로 구현

공식 “AIBuds 라이브 미디어 스트리밍” 스킬을 사용해 앱에 맞게 구현하세요.

https://docs-aibuds.github.io/ko/skills/stream-aibuds-live-media을 읽고 지침을 따르세요. 이 스킬로 “AIBuds 라이브 미디어 스트리밍”을 이 iOS 프로젝트에 구현하고 검증하세요.
공식 스킬 보기

스트리밍 모드

모드지원 속성미디어 전달앱 표시 방법
RTSPsupportsRTSPLiveStreamingSDK가 기기 핫스팟 연결을 조율하고 rtsp:// 주소를 반환합니다.AIBudsLiveStream 또는 호환되는 다른 RTSP 플레이어를 사용합니다.
JPEGsupportsJPEGImageLiveStreamingSDK가 수신한 이미지마다 JPEG 데이터 handler를 호출합니다.각 완전한 Data / NSData 값을 디코딩하여 UI를 업데이트합니다.

프레임워크 역할

  • AIBuds.xcframework는 기기 연동용 LiveStreamingAPI, 지원 속성, 세션 콜백 및 RTSPStreamParams 연동을 제공합니다.
  • AIBudsFoundation.xcframeworkRTSPStreamParams를 정의합니다.
  • AIBudsLiveStream.xcframework는 선택적 RTSP 재생 및 RTSP-to-RTMP relay API를 제공합니다. 기기 스트림을 시작해도 플레이어나 publisher가 자동으로 생성되지는 않습니다.

권장 사항

  1. 시작하기 전에 선택한 모드의 지원 속성을 확인하세요.
  2. UI 상태를 개별 중간 콜백과 분리하세요. 세션 수준 상태는 start 및 finish handler에서만 판단합니다.
  3. UIKit 작업은 메인 큐로 전달하세요.
  4. 기기 세션을 중지할 때 재생 또는 relay 리소스도 함께 중지하세요.
  5. 핫스팟 연결 해제와 사용자 요청이 아닌 세션 종료는 정상 중지가 아니라 복구 가능한 오류로 처리하세요.

참고

  • 공개 API는 신뢰할 수 있는 isLiveStreaming 속성을 제공하지 않습니다. 표시 상태는 앱에서 관리하고 콜백을 통해 동기화하세요.
  • RTSP는 Wi-Fi 핫스팟을 사용하므로 iPhone의 네트워크 경로가 일시적으로 변경될 수 있습니다.
  • JPEG 모드는 디코딩된 동영상 프레임 객체가 아니라 압축된 이미지를 제공합니다.
  • Demo의 RTMP 송출은 선택적 AIBudsLiveStream.LiveStreamer 흐름이며 LiveStreamingAPI 자체에서 수행하지 않습니다.