Sobre el proyecto
AetherEngine es un motor de reproducción multimedia para plataformas Apple (iOS, tvOS, macOS, visionOS), distribuido como un paquete Swift. Es un motor integrable, no un reproductor completo: expone una única vista (AetherPlayerView para UIKit/AppKit, AetherPlayerSurface para SwiftUI) junto con métodos asíncronos, y deja los controles de transporte, menús y diseño visual a la aplicación anfitriona. No incluye analíticas.
Arquitectura: FFmpeg maneja el demuxing, mientras que la decodificación se apoya en la plataforma cuando es posible. H.264, HEVC y AV1 con capacidad de hardware pasan por VideoToolbox; otros formatos (AV1 mediante dav1d, VP9/VP8, MPEG-2, VC-1, MPEG-4 Part 2 y más) utilizan decodificación por software de libavcodec. La capa alojada se intercambia por sesión entre AVPlayerLayer y AVSampleBufferDisplayLayer sin que el anfitrión necesite saberlo.
La cobertura de formatos incluye contenedores como MKV, MP4, WebM, MPEG-TS, AVI, ASF/WMV, OGG y FLV, además de DVD-Video descifrado e ISO de Blu-ray con selección de título y capítulo. El soporte HDR cubre HDR10, HDR10+ (ST 2094-40 por fotograma), Dolby Vision (P5, P7 como capa única 8.1, P8.1, P8.4, AV1 P10.x) y HLG. El audio maneja AAC, AC3, EAC3, FLAC, ALAC y muchos otros, puenteando códecs no soportados a EAC3 5.1 o FLAC sin pérdida; Dolby Atmos (EAC3+JOC) se copia por stream en rutas HDMI MAT, espacial de AirPods y Bluetooth. Una opción de carga solo audio proporciona una canalización ligera con integración del sistema Now-Playing.
El soporte de TV en vivo incluye reproducción en vivo sin límites con timeshift DVR opcional, ingesta directa de HLS con clave clara AES-128 y manejo de ad-pods SSAI. Los subtítulos cubren formatos de texto (SRT, ASS, SSA, VTT, mov_text), formatos de mapa de bits (PGS, DVB, DVD) renderizados como CGImage, subtítulos cerrados CEA-608 en banda y teletexto DVB decodificado mediante libzvbi con páginas de subtítulos seleccionables. Los archivos de subtítulos externos se tratan como pistas de primera clase. Las versiones nativas opcionales de WebVTT permiten que los subtítulos sobrevivan a Picture-in-Picture, AirPlay y pantallas externas; las pistas de mapa de bits pueden reconocerse por OCR en el dispositivo para convertirlas en versiones de texto para esos contextos.
Otras capacidades incluyen un FrameExtractor fuera de reproducción para miniaturas y capturas con precisión de fotograma, una toma de audio opcional que entrega PCM decodificado para transcripción o reconocimiento de audio, análisis de metadatos, búsqueda amigable con caché para contenido visto, una conexión de streaming re-conectable de larga duración con buffering configurable, precalentamiento de fuente, soporte de Picture-in-Picture tanto en rutas nativas como de software, audio en segundo plano en iOS, recursos compartidos SMB2/3 mediante un producto opcional, fuentes de bytes personalizadas a través de un protocolo IOReader, y evaluación de confianza TLS por origen para servidores multimedia con certificados autofirmados o CA privada.
El README también presenta una comparación con AVPlayer, VLCKit, libmpv y KSPlayer, y cifras de benchmark medidas en un MacBook Air M1 con archivos Matroska HEVC HDR 4K a 38 y 90 Mbit/s, desde disco local y sobre HTTP. El proyecto declara que el harness de benchmark es mantenido por su autor y enlaza a los datos brutos y la metodología. La licencia es LGPL-3.0 con una excepción para App Store.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.