Back to Blog

아고라 Video SDK v4.5에 대한 모든 것

아고라는 최근 업계 선도적인 비디오 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를 사용하는 경우 업데이트 시 코드를 조정하여 모든 기능이 정상적으로 작동하도록 하십시오.

  • startScreenCaptureByDisplayIddisplayIduint32_t에서 int64_t
  • 로 변경되었습니다. startScreenCaptureByWindowIdwindowIdview_t에서 int64_t
  • ScreenCaptureConfiguration, displayIduint32_t에서 int64_t로 변경되었으며, windowIdview_t에서 int64_t
  • 로 변경되었습니다. ScreenCaptureSourceInfo, sourceDisplayIduint32_t에서 int64_t로 변경되었으며, sourceIdview_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가 렌더링과 오디오/비디오 동기화를 자동으로 최적화합니다. 이로써 즉시 미디어 렌더링을 수동으로 활성화할 필요 없이 더 빠른 프레임 렌더링을 바로 사용할 수 있으며, 첫 번째 프레임이 표시되기 전 대기 시간이 줄어들어 시청자가 더 부드럽고 고품질의 비디오를 경험할 수 있습니다.

결과적으로 모든 것이 생생하고 몰입감 있는 라이브 쇼 경험을 위해 최적화되어 대역폭을 절약하고 최상의 품질을 제공합니다.

비디오 렌더링을 위한 최대 프레임 속도 설정

새로운 setLocalRenderTargetFpssetRemoteRenderTargetFps 메서드를 통해 개발자는 로컬 및 원격 클라이언트 모두에서 최대 렌더링 프레임 속도를 제한할 수 있습니다.

이 기능은 화면 공유나 온라인 교육과 같은 시나리오에서 특히 유용합니다. 높은 프레임 속도가 필요하지 않고 CPU 사용량을 줄이거나 저사양 기기를 효과적으로 지원해야 할 때 유용합니다. SDK는 지정된 프레임 속도를 가능한 한 정확히 맞추려고 시도하며, 품질과 성능을 균형 있게 조정할 수 있습니다.

큐브 맵을 사용한 필터 효과

이제 .cube 필터 파일을 setFilterEffectOptions를 통해 적용할 수 있습니다. 더 밝은 피드나 더 스타일리시한 미학을 추구하든, 이 새로운 옵션은 필요한 창의적 제어권을 제공합니다.

로컬 오디오 믹싱

오디오 믹싱이 startLocalAudioMixerstopLocalAudioMixer 메서드를 통해 더 간단해졌습니다. 이 API는 마이크, 미디어 플레이어, 원격 스트림 등 여러 오디오 입력 소스를 단일 통합 피드로 결합하여 매끄럽고 통합된 오디오 경험을 제공합니다.

The updateLocalAudioMixerConfiguration 메서드는 개발자가 실시간으로 믹서 설정을 동적으로 조정할 수 있도록 하여 라이브 스트리밍, 온라인 교육, 또는 복합 오디오에 대한 로컬 제어가 필수적인 상황 등에서 유연성을 제공합니다. 이러한 기능으로 오디오 스트림 관리 및 병합이 이제보다 간편해졌습니다.

외부 미디어 투영 (Android)

화면 캡처 워크플로우에 더 많은 유연성을 제공하기 위해 setExternalMediaProjection는 이제 개발자가 자체 MediaProjection 객체를 제공할 수 있도록 합니다. 이로써 개발자는 앱이 화면 데이터를 캡처하고 처리하는 방식을 더 세밀하게 제어할 수 있어 맞춤형 캡처 흐름이나 고급 처리 파이프라인을 구현하는 것이 더 쉬워집니다.

EGL 컨텍스트 맞춤 설정 (Android)

GPU 기반 비디오 렌더링에서 EGL 컨텍스트는 코드와 그래픽 하드웨어를 연결하는 “작업 공간”으로, 텍스처와 프레임이 부드럽게 렌더링되도록 보장합니다. v4.5.0에서 Agora는 setExternalRemoteEglContext를 추가하여 개발자가 원격 비디오 스트림 렌더링을 위해 자체 EGL 컨텍스트를 제공할 수 있도록 했습니다.

이 기능으로 원격 콘텐츠와 맞춤형 처리 모두 단일 통합 그래픽 환경을 공유할 수 있어 성능과 복잡성이 개선됩니다.

색상 공간 구성

이번 업데이트에서는 getColorSpacesetColorSpace 메서드가 VideoFrame에 추가되어 개발자가 비디오 프레임의 색상 공간 속성을 정밀하게 제어할 수 있습니다. 기본적으로 SDK는 Full Range 및 BT.709 표준을 사용하지만, 이러한 설정은 특정 캡처 또는 렌더링 요구사항에 맞게 맞춤 설정할 수 있습니다.

이 새로운 메서드를 통해 개발자는 비디오 처리 워크플로우를 세밀하게 조정하여 애플리케이션의 품질과 적응성을 향상시킬 수 있습니다.

개선

이번 릴리스는 새로운 기능 추가뿐 아니라 기존 기능도 개선했습니다.

가상 배경 알고리즘 업그레이드

최신 업데이트는前景과 배경 간의 세분화 정확도를 향상시켰습니다. 신체 윤곽선이 더 정확해졌고, 손가락 같은 세부 사항이 더 명확해졌으며, 배경은 이러한 경계 주변의 깜빡임이 줄어들어 안정적으로 유지됩니다.

결과적으로 가상 배경을 사용할 때 더 정교하고 전문적인 외관을 제공합니다.

세부적인 스냅샷 제어

이번 릴리스에서는 takeSnapshottakeSnapshotEx 메서드를 도입하여 개발자가 프레임을 캡처할 시점을 정밀하게 제어할 수 있습니다. 구성 매개변수를 전달하여 인코딩 전, 인코딩 후, 또는 비디오 파이프라인의 다른 중요한 시점에서 프레임을 캡처하도록 선택할 수 있습니다.

맞춤형 오디오 캡처 개선

새로운 enableAudioProcessing 매개변수(AudioTrackConfig에 추가됨)를 통해 개발자는 AUDIO_TRACK_DIRECT 유형의 사용자 정의 오디오 트랙에 대해 3A(자동 음향 조정)를 활성화 또는 비활성화할 수 있습니다.

기본적으로 이 기능은 비활성화되어 있습니다(매개변수는 false). 개발자는 필요에 따라 이 기능을 활성화하여 자체 맞춤형 오디오 처리를 구현할 수 있습니다.

기타 개선 사항

  • 알파 투명도 렌더링 개선: 비디오 렌더링 개선으로 알파 투명도 효과를 사용할 때 버퍼링과 지연이 감소되어 더 부드러운 재생이 가능합니다.
  • 기기 평가 논리 개선: queryDeviceScore의 논리가 업데이트되어 더 정확한 기기 평가를 제공하며, 개발자가 다양한 하드웨어 구성에서 성능을 최적화하는 데 도움이 됩니다.
  • 더 부드러운 해상도 전환: 스트림 해상도 전환이 더 매끄러워졌으며, SDK는 전환 실패 시 최대 3회까지 자동 재시도합니다.
  • 유연한 재생 속도: 오디오 파일의 최소 지원 재생 속도가 0.3x로 변경되어 개발자가 오디오 사용자 지정을 더 자유롭게 제어할 수 있습니다.

버그 수정 및 안정성

Agora Video SDK v4.5.0는 사용성과 안정성을 향상시키기 위해 여러 가지 문제를 해결했습니다.

  • 프레임 속도 안정성: JPEG 소스 비디오를 사용할 때 발생하는 예기치 않은 프레임 속도 저하를 수정했습니다.
  • 음악 재생 개선: 음악 재생 중 간헐적으로 발생하는 노이즈 및 끊김 현상을 해결했습니다.
  • 정확한 볼륨 보고: 시스템 중단 후 사용자 볼륨 보고 문제를 수정했습니다.
  • 스트림 재개 수정: muteRemoteVideoStream 호출 후 스트림 재개가 원활하게 이루어지도록 동작을 조정했습니다.
  • 오디오 믹싱 신뢰성: pauseAudioMixingstartAudioMixing 후 즉시 작동하도록 보장합니다.
  • 크래시 방지: 오디오 및 비디오 상호작용 중 간헐적인 크래시를 해결했습니다.
  • 엣지 케이스 처리 개선: iOS 및 Windows에서 안정성을 향상시켜 네트워크 전환 지연, 무음 재생, 권장되지 않는 샘플 처리 등 문제를 해결했습니다.

다음 단계

Agora의 v4.5.0 비디오 SDK 릴리스는 실시간 비디오 기술에 의미 있는 발전을 가져왔습니다. 새로운 API, 엔진 개선 사항 및 버그 수정 사항은 개발자가 부드러운 성능과 업계 최고의 품질로 가장 풍부한 실시간 비디오 경험을 구축할 수 있는 기반을 마련합니다.

추가 리소스

RTE Telehealth 2023
Join us for RTE Telehealth - a virtual webinar where we’ll explore how AI and AR/VR technologies are shaping the future of healthcare delivery.

Learn more about Agora's video and voice solutions

Ready to chat through your real-time video and voice needs? We're here to help! Current Twilio customers get up to 2 months FREE.

Complete the form, and one of our experts will be in touch.

Try Agora for Free

Sign up and start building! You don’t pay until you scale.
Try for Free