프로젝트 소개
AetherEngine은 Apple 플랫폼(iOS, tvOS, macOS, visionOS)용 미디어 플레이어 엔진으로, Swift 패키지로 배포됩니다. 전체 플레이어가 아닌 임베디드 엔진으로, 단일 뷰(UIKit/AppKit용 AetherPlayerView, SwiftUI용 AetherPlayerSurface)와 비동기 메서드를 노출하며, 전송 컨트롤, 메뉴 및 시각적 디자인은 호스트 앱에 맡깁니다. 분석 기능은 포함되지 않습니다.
아키텍처: FFmpeg는 디먹싱을 처리하고, 디코딩은 가능한 한 플랫폼에 의존합니다. H.264, HEVC 및 하드웨어 지원 AV1은 VideoToolbox를 통해 처리되며, 기타 형식(AV1 via dav1d, VP9/VP8, MPEG-2, VC-1, MPEG-4 Part 2 등)은 libavcodec 소프트웨어 디코딩을 사용합니다. 호스팅 레이어는 세션별로 AVPlayerLayer와 AVSampleBufferDisplayLayer 사이에서 호스트가 알 필요 없이 전환됩니다.
형식 지원에는 MKV, MP4, WebM, MPEG-TS, AVI, ASF/WMV, OGG, FLV와 같은 컨테이너와 타이틀 및 챕터 선택이 가능한 복호화된 DVD-Video 및 Blu-ray ISO가 포함됩니다. HDR 지원은 HDR10, HDR10+(프레임별 ST 2094-40), Dolby Vision(P5, P7 단일 레이어 8.1, P8.1, P8.4, AV1 P10.x) 및 HLG를 포함합니다. 오디오는 AAC, AC3, EAC3, FLAC, ALAC 및 기타 여러 형식을 처리하며, 지원되지 않는 코덱은 EAC3 5.1 또는 무손실 FLAC으로 브리징합니다. Dolby Atmos(EAC3+JOC)는 HDMI MAT, AirPods 공간 오디오 및 Bluetooth 경로에서 스트림 복사됩니다. 오디오 전용 로드 옵션은 시스템 Now-Playing 통합과 함께 간소화된 파이프라인을 제공합니다.
라이브 TV 지원에는 선택적 DVR 타임시프트가 있는 무제한 라이브 재생, AES-128 클리어 키 및 SSAI 광고 팟 처리가 있는 직접 HLS 수집이 포함됩니다. 자막은 텍스트 형식(SRT, ASS, SSA, VTT, mov_text), CGImage로 렌더링되는 비트맵 형식(PGS, DVB, DVD), 대역 내 CEA-608 폐쇄 자막, 선택 가능한 캡션 페이지가 있는 libzvbi를 통한 DVB 텔레텍스트 디코딩을 다룹니다. 외부 자막 파일은 일급 트랙으로 처리됩니다. 선택적 기본 WebVTT 렌디션을 통해 자막이 Picture-in-Picture, AirPlay 및 외부 디스플레이에서 유지될 수 있으며, 비트맵 트랙은 이러한 컨텍스트를 위해 온디바이스 OCR로 텍스트 렌디션으로 인식될 수 있습니다.
기타 기능에는 썸네일 및 프레임 정확한 스냅샷을 위한 재생 외 FrameExtractor, 전사 또는 오디오 인식을 위한 디코딩된 PCM을 제공하는 옵트인 오디오 탭, 메타데이터 파싱, 시청 콘텐츠에 대한 캐시 친화적 탐색, 구성 가능한 버퍼링이 있는 장기 연결 재연결 스트리밍 연결, 소스 프리워밍, 네이티브 및 소프트웨어 경로 모두에서 Picture-in-Picture 지원, iOS에서 백그라운드 오디오, 선택적 제품을 통한 SMB2/3 공유, IOReader 프로토콜을 통한 사용자 지정 바이트 소스, 자체 서명 또는 개인 CA 미디어 서버에 대한 출처별 TLS 신뢰 평가가 포함됩니다.
README는 또한 AVPlayer, VLCKit, libmpv 및 KSPlayer와의 비교와 M1 MacBook Air에서 로컬 디스크 및 HTTP를 통해 38 및 90 Mbit/s의 4K HDR HEVC Matroska 파일로 측정한 벤치마크 수치를 제시합니다. 프로젝트는 벤치마크 하네스가 작성자가 유지 관리하며 원시 데이터 및 방법론에 대한 링크를 제공한다고 명시합니다. 라이선스는 App Store 예외가 있는 LGPL-3.0입니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.