Sobre o projeto
AetherEngine é um motor de player de mídia para plataformas Apple (iOS, tvOS, macOS, visionOS), distribuído como um pacote Swift. É um motor incorporável, e não um player completo: expõe uma única view (AetherPlayerView para UIKit/AppKit, AetherPlayerSurface para SwiftUI) mais métodos assíncronos, e deixa controles de transporte, menus e design visual para o app hospedeiro. Nenhuma análise é incluída.
Arquitetura: o FFmpeg cuida do demuxing, enquanto a decodificação se apoia na plataforma sempre que possível. H.264, HEVC e AV1 com capacidade de hardware passam pelo VideoToolbox; outros formatos (AV1 via dav1d, VP9/VP8, MPEG-2, VC-1, MPEG-4 Part 2 e mais) usam decodificação por software do libavcodec. A camada hospedada é alternada por sessão entre AVPlayerLayer e AVSampleBufferDisplayLayer sem que o host precise saber.
A cobertura de formatos inclui contêineres como MKV, MP4, WebM, MPEG-TS, AVI, ASF/WMV, OGG e FLV, além de DVD-Video descriptografado e ISO de Blu-ray com seleção de título e capítulo. O suporte a HDR cobre HDR10, HDR10+ (ST 2094-40 por frame), Dolby Vision (P5, P7 como single-layer 8.1, P8.1, P8.4, AV1 P10.x) e HLG. O áudio lida com AAC, AC3, EAC3, FLAC, ALAC e muitos outros, fazendo bridge de codecs não suportados para EAC3 5.1 ou FLAC sem perdas; Dolby Atmos (EAC3+JOC) é stream-copied em HDMI MAT, spatial de AirPods e rotas Bluetooth. Uma opção de carregamento somente áudio fornece um pipeline enxuto com integração ao Now-Playing do sistema.
O suporte a TV ao vivo inclui reprodução ao vivo sem limites com timeshift DVR opcional, ingestão direta de HLS com chave clara AES-128 e tratamento de ad-pod SSAI. As legendas cobrem formatos de texto (SRT, ASS, SSA, VTT, mov_text), formatos de bitmap (PGS, DVB, DVD) renderizados como CGImage, closed captions CEA-608 in-band e teletexto DVB decodificado via libzvbi com páginas de legenda selecionáveis. Arquivos de legenda externos são tratados como faixas de primeira classe. Renditions WebVTT nativas opcionais permitem que as legendas sobrevivam a Picture-in-Picture, AirPlay e telas externas; faixas de bitmap podem ser reconhecidas por OCR no dispositivo em renditions de texto para esses contextos.
Outros recursos incluem um FrameExtractor fora da reprodução para miniaturas e capturas com precisão de frame, um audio tap opcional que entrega PCM decodificado para transcrição ou reconhecimento de áudio, análise de metadados, busca amigável ao cache para conteúdo assistido, uma conexão de streaming de longa duração com reconexão e buffering configurável, prewarming de fonte, suporte a Picture-in-Picture tanto em caminhos nativos quanto por software, áudio em segundo plano no iOS, compartilhamentos SMB2/3 via um produto opcional, fontes de bytes personalizadas através de um protocolo IOReader e avaliação de confiança TLS por origem para servidores de mídia com certificado autoassinado ou CA privada.
O README também apresenta uma comparação com AVPlayer, VLCKit, libmpv e KSPlayer, e números de benchmark medidos em um MacBook Air M1 com arquivos Matroska HEVC 4K HDR a 38 e 90 Mbit/s, de disco local e via HTTP. O projeto afirma que o harness de benchmark é mantido por seu autor e fornece links para os dados brutos e a metodologia. O licenciamento é LGPL-3.0 com uma exceção para a App Store.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.