아고라는 최근 업계 선도적인 비디오 SDK의 최신 버전을 출시했습니다. 이 글에서는 이번 업데이트에서 포함된 개선 사항과 새로운 기능, 그리고 즉시 적용할 수 있는 베스트 프랙티스를 자세히 설명합니다.
기존 프로젝트를 업데이트 중이든, 새로운 프로젝트를 시작하든, 이번 업데이트의 새로운 기능이 어떻게 더 부드럽고 몰입감 있는 실시간 경험을 제공할 수 있는지 단계별로 안내해 드리겠습니다.
호환성 및 통합 업데이트
이번 릴리스에는 여러 Agora SDK를 사용할 때 SDK가 운영 체제 프레임워크 및 공유 라이브러리와 상호작용하는 방식에 대한 주요 호환성 변경 사항이 포함되었습니다.
libaosl.so 관리
비디오 SDK (v4.5.0
) 및 시그널링 SDK (v2.2.0
이상)는 이제 필수적인 크로스 플랫폼 런타임 기능을 지원하는 libaosl.so
라이브러리를 포함합니다.
Video SDK를 수동으로 통합하고 Signaling SDK를 사용하는 경우, 충돌을 방지하기 위해 이전 버전의 libaosl.so
를 모두 제거해야 합니다. v4.5.0
에 포함된 버전은 1.2.13
이며, 최신 버전만 유지해야 합니다.
API 매개변수 유형 업데이트 (Windows):
다양한 프레임워크 간 호환성을 개선하기 위해 일부 매개변수가 이전 유형 대신 int64_t
를 기대합니다.
Agora의 화면 캡처 API를 사용하는 경우 업데이트 시 코드를 조정하여 모든 기능이 정상적으로 작동하도록 하십시오.
- startScreenCaptureByDisplayId의
displayId
는uint32_t
에서int64_t
- 로 변경되었습니다. startScreenCaptureByWindowId의
windowId
는view_t
에서int64_t
- ScreenCaptureConfiguration,
displayId
는uint32_t
에서int64_t
로 변경되었으며,windowId
는view_t
에서int64_t
- 로 변경되었습니다. ScreenCaptureSourceInfo,
sourceDisplayId
는uint32_t
에서int64_t
로 변경되었으며,sourceId
는view_t
에서int64_t
로 변경되었습니다.
가상 사운드 카드 설치 (macOS)
macOS에서 오디오 캡처 라우팅 프로세스를 간소화하기 위해, 앱이 클라이언트 장치에서 enableLoopbackRecording
를 처음 호출할 때 SDK는 자동으로 AgoraALD
가상 사운드 카드를 설치합니다. 추가 수동 단계가 필요 없습니다.
설치 후 시스템은 필요에 따라 오디오 데이터를 이 가상 카드를 통해 라우팅하여 앱의 오디오 경험을 개선하는 것을 목표로 합니다.
카메라 플러그인 상태 (macOS 및 Windows)
v4.5.0 이전에서 활성 카메라 장치가 분리 및 재연결될 때 카메라가 항상 신뢰할 수 있는 장치 상태 변경을 트리거하거나 자동으로 녹화를 재개하지 않았습니다. 이제 SDK는 macOS 및 Windows에서 카메라 재연결을 자동으로 처리합니다.
이 변경으로 장치 상태 관리에 소요되는 시간이 줄어들고 앱 기능 개발에 더 집중할 수 있습니다.
참고: Windows에서 장치를 다시 연결한 후 장치 상태가 이제 올바르게 MEDIA_DEVICE_STATE_IDLE
로 보고됩니다. 이전에는 MEDIA_DEVICE_STATE_ACTIVE
로 보고되었습니다.
16 KB 메모리 페이지 크기 지원 (Android)
Android 15부터 운영 체제는 더 큰 메모리 페이지를 지원합니다. 이번 업데이트는 Agora의 Android 지원을 개선하여 4 KB 및 16 KB 메모리 페이지를 사용하는 기기에서 원활하게 실행되도록 하며, 예상치 못한 크래시를 방지하고 더 넓은 범위의 기기에서 안정적인 경험을 제공합니다.
비디오 인코딩 및 개선 사항
Agora는 노이즈 억제 및 비디오 인코딩 선호도 설정을 최적화하여 다양한 조건에서 고품질 비디오를 생성하기 위한 더 유연한 도구를 제공합니다.
비디오 노이즈 억제 및 뷰티 효과
VIDEO_DENOISER_LEVEL_STRENGTH
대신 노이즈 억제를 활성화하려면 setVideoDenoiserOptions
를 사용하고, 피부 부드럽게 처리에는 setBeautyEffectOptions
를 적용하세요. 이 두 단계 프로세스는 전체적인 노이즈 억제 효과를 향상시킵니다.
참고: 저조도 환경에서는 먼저 노이즈 억제를 활성화한 후 setLowlightEnhanceOptions
를 사용하여 저조도 강화 설정을 구성하는 것을 권장합니다.
새로운 기본 비디오 인코딩 선호도
Agora의 최신 릴리스는 수동 조정 없이 최상의 비디오 품질을 쉽게 얻을 수 있도록 합니다. 이전에는 인코딩 품질 또는 지연 시간에 대한 기본 선호도를 선택해야 했으며, 네트워크 조건 변화에 대한 SDK의 처리 방식도 마찬가지로 설정해야 했습니다. 이제 SDK가 자동으로 최적의 설정을 선택합니다:
- 압축 선호도: 새로운 기본값은
PREFER_COMPRESSION_AUTO
입니다. 최고 품질이나 엄격한 저지연만을 추구하는 대신, SDK는 현재 비디오 장면에 따라 적절한 접근 방식(저지연 또는 고품질)을 동적으로 선택합니다. 이로써 네트워크 상태와 무관하게 시청자가 최상의 경험을 누릴 수 있습니다. - 품질 저하 우선순위: 새로운
MAINTAIN_AUTO
설정이 기존 품질 우선 선택을 대체합니다. 이 접근 방식에서는 SDK가 비디오 시나리오에 따라 프레임 속도 유지, 부하 균형 조정, 해상도 고정 중 하나를 자동으로 선택합니다. 결과적으로 세밀한 조정 시간은 줄이고 우수한 스트리밍 경험을 제공하는 데 더 많은 시간을 할애할 수 있습니다.
신규 기능
개선 사항 외에도, v4.5.0
는 앱의 비디오 경험을 개선하고 일반적인 워크플로를 간소화하는 새로운 기능을 제공합니다.
라이브 쇼 시나리오 (APPLICATION_SCENARIO_LIVESHOW)
이 버전에서는 APPLICATION_SCENARIO_LIVESHOW
열거형을 추가하여 콘서트나 가상 이벤트와 같은 라이브 쇼 공연에 맞게 비디오 환경을 맞춤 설정할 수 있습니다. 이로 인해 더 부드러운 재생과 더 나은 대역폭 효율성을 얻을 수 있습니다.
setVideoScenario
를 호출하고 APPLICATION_SCENARIO_LIVESHOW
모드를 선택하면 SDK가 렌더링과 오디오/비디오 동기화를 자동으로 최적화합니다. 이로써 즉시 미디어 렌더링을 수동으로 활성화할 필요 없이 더 빠른 프레임 렌더링을 바로 사용할 수 있으며, 첫 번째 프레임이 표시되기 전 대기 시간이 줄어들어 시청자가 더 부드럽고 고품질의 비디오를 경험할 수 있습니다.
결과적으로 모든 것이 생생하고 몰입감 있는 라이브 쇼 경험을 위해 최적화되어 대역폭을 절약하고 최상의 품질을 제공합니다.
비디오 렌더링을 위한 최대 프레임 속도 설정
새로운 setLocalRenderTargetFps
및 setRemoteRenderTargetFps
메서드를 통해 개발자는 로컬 및 원격 클라이언트 모두에서 최대 렌더링 프레임 속도를 제한할 수 있습니다.
이 기능은 화면 공유나 온라인 교육과 같은 시나리오에서 특히 유용합니다. 높은 프레임 속도가 필요하지 않고 CPU 사용량을 줄이거나 저사양 기기를 효과적으로 지원해야 할 때 유용합니다. SDK는 지정된 프레임 속도를 가능한 한 정확히 맞추려고 시도하며, 품질과 성능을 균형 있게 조정할 수 있습니다.
큐브 맵을 사용한 필터 효과
이제 .cube
필터 파일을 setFilterEffectOptions
를 통해 적용할 수 있습니다. 더 밝은 피드나 더 스타일리시한 미학을 추구하든, 이 새로운 옵션은 필요한 창의적 제어권을 제공합니다.
로컬 오디오 믹싱
오디오 믹싱이 startLocalAudioMixer
및 stopLocalAudioMixer
메서드를 통해 더 간단해졌습니다. 이 API는 마이크, 미디어 플레이어, 원격 스트림 등 여러 오디오 입력 소스를 단일 통합 피드로 결합하여 매끄럽고 통합된 오디오 경험을 제공합니다.
The updateLocalAudioMixerConfiguration
메서드는 개발자가 실시간으로 믹서 설정을 동적으로 조정할 수 있도록 하여 라이브 스트리밍, 온라인 교육, 또는 복합 오디오에 대한 로컬 제어가 필수적인 상황 등에서 유연성을 제공합니다. 이러한 기능으로 오디오 스트림 관리 및 병합이 이제보다 간편해졌습니다.
외부 미디어 투영 (Android)
화면 캡처 워크플로우에 더 많은 유연성을 제공하기 위해 setExternalMediaProjection
는 이제 개발자가 자체 MediaProjection
객체를 제공할 수 있도록 합니다. 이로써 개발자는 앱이 화면 데이터를 캡처하고 처리하는 방식을 더 세밀하게 제어할 수 있어 맞춤형 캡처 흐름이나 고급 처리 파이프라인을 구현하는 것이 더 쉬워집니다.
EGL 컨텍스트 맞춤 설정 (Android)
GPU 기반 비디오 렌더링에서 EGL 컨텍스트는 코드와 그래픽 하드웨어를 연결하는 “작업 공간”으로, 텍스처와 프레임이 부드럽게 렌더링되도록 보장합니다. v4.5.0
에서 Agora는 setExternalRemoteEglContext
를 추가하여 개발자가 원격 비디오 스트림 렌더링을 위해 자체 EGL 컨텍스트를 제공할 수 있도록 했습니다.
이 기능으로 원격 콘텐츠와 맞춤형 처리 모두 단일 통합 그래픽 환경을 공유할 수 있어 성능과 복잡성이 개선됩니다.
색상 공간 구성
이번 업데이트에서는 getColorSpace
및 setColorSpace
메서드가 VideoFrame
에 추가되어 개발자가 비디오 프레임의 색상 공간 속성을 정밀하게 제어할 수 있습니다. 기본적으로 SDK는 Full Range 및 BT.709 표준을 사용하지만, 이러한 설정은 특정 캡처 또는 렌더링 요구사항에 맞게 맞춤 설정할 수 있습니다.
이 새로운 메서드를 통해 개발자는 비디오 처리 워크플로우를 세밀하게 조정하여 애플리케이션의 품질과 적응성을 향상시킬 수 있습니다.
개선
이번 릴리스는 새로운 기능 추가뿐 아니라 기존 기능도 개선했습니다.
가상 배경 알고리즘 업그레이드
최신 업데이트는前景과 배경 간의 세분화 정확도를 향상시켰습니다. 신체 윤곽선이 더 정확해졌고, 손가락 같은 세부 사항이 더 명확해졌으며, 배경은 이러한 경계 주변의 깜빡임이 줄어들어 안정적으로 유지됩니다.
결과적으로 가상 배경을 사용할 때 더 정교하고 전문적인 외관을 제공합니다.
세부적인 스냅샷 제어
이번 릴리스에서는 takeSnapshot
및 takeSnapshotEx
메서드를 도입하여 개발자가 프레임을 캡처할 시점을 정밀하게 제어할 수 있습니다. 구성 매개변수를 전달하여 인코딩 전, 인코딩 후, 또는 비디오 파이프라인의 다른 중요한 시점에서 프레임을 캡처하도록 선택할 수 있습니다.
맞춤형 오디오 캡처 개선
새로운 enableAudioProcessing
매개변수(AudioTrackConfig
에 추가됨)를 통해 개발자는 AUDIO_TRACK_DIRECT
유형의 사용자 정의 오디오 트랙에 대해 3A(자동 음향 조정)를 활성화 또는 비활성화할 수 있습니다.
기본적으로 이 기능은 비활성화되어 있습니다(매개변수는 false
). 개발자는 필요에 따라 이 기능을 활성화하여 자체 맞춤형 오디오 처리를 구현할 수 있습니다.
기타 개선 사항
- 알파 투명도 렌더링 개선: 비디오 렌더링 개선으로 알파 투명도 효과를 사용할 때 버퍼링과 지연이 감소되어 더 부드러운 재생이 가능합니다.
- 기기 평가 논리 개선:
queryDeviceScore
의 논리가 업데이트되어 더 정확한 기기 평가를 제공하며, 개발자가 다양한 하드웨어 구성에서 성능을 최적화하는 데 도움이 됩니다. - 더 부드러운 해상도 전환: 스트림 해상도 전환이 더 매끄러워졌으며, SDK는 전환 실패 시 최대 3회까지 자동 재시도합니다.
- 유연한 재생 속도: 오디오 파일의 최소 지원 재생 속도가 0.3x로 변경되어 개발자가 오디오 사용자 지정을 더 자유롭게 제어할 수 있습니다.
버그 수정 및 안정성
Agora Video SDK v4.5.0
는 사용성과 안정성을 향상시키기 위해 여러 가지 문제를 해결했습니다.
- 프레임 속도 안정성: JPEG 소스 비디오를 사용할 때 발생하는 예기치 않은 프레임 속도 저하를 수정했습니다.
- 음악 재생 개선: 음악 재생 중 간헐적으로 발생하는 노이즈 및 끊김 현상을 해결했습니다.
- 정확한 볼륨 보고: 시스템 중단 후 사용자 볼륨 보고 문제를 수정했습니다.
- 스트림 재개 수정:
muteRemoteVideoStream
호출 후 스트림 재개가 원활하게 이루어지도록 동작을 조정했습니다. - 오디오 믹싱 신뢰성:
pauseAudioMixing
이startAudioMixing
후 즉시 작동하도록 보장합니다. - 크래시 방지: 오디오 및 비디오 상호작용 중 간헐적인 크래시를 해결했습니다.
- 엣지 케이스 처리 개선: iOS 및 Windows에서 안정성을 향상시켜 네트워크 전환 지연, 무음 재생, 권장되지 않는 샘플 처리 등 문제를 해결했습니다.
다음 단계
Agora의 v4.5.0
비디오 SDK 릴리스는 실시간 비디오 기술에 의미 있는 발전을 가져왔습니다. 새로운 API, 엔진 개선 사항 및 버그 수정 사항은 개발자가 부드러운 성능과 업계 최고의 품질로 가장 풍부한 실시간 비디오 경험을 구축할 수 있는 기반을 마련합니다.
추가 리소스