-
Saiba mais sobre as tecnologias Apple Immersive Video
Explore os recursos das tecnologias Apple Immersive Video e Apple Spatial Audio Format para criar experiências realmente imersivas. Conheça o novo framework ImmersiveMediaSupport, que oferece recursos para ler e gravar os metadados necessários para ativar o Apple Immersive Video. Saiba as diretrizes para codificar e publicar conteúdo Apple Immersive Video em arquivos independentes para reprodução ou streaming via HLS.
Para aproveitar ao máximo esta sessão, recomendamos primeiro assistir ao vídeo "Explore experiências de vídeo para o visionOS".Capítulos
- 0:00 - Introdução
- 0:48 - Visão geral do Apple Immersive Video
- 2:36 - Metadados do Apple Immersive Video
- 5:13 - Ler arquivos AIVU
- 7:16 - Criar arquivos AIVU
- 8:43 - Publicar conteúdo Apple Immersive Video
- 10:29 - Conferir prévias de conteúdo Apple Immersive Video
- 11:21 - Apple Spatial Audio Format
- 12:39 - Apple Positional Audio Codec
Recursos
- Immersive Media Support
- Authoring Apple Immersive Video
- What's new in HTTP Live Streaming
- AVPlayerItemMetadataOutput
- Core Media
- HTTP Live Streaming (HLS) authoring specification for Apple devices
- AVFoundation
Vídeos relacionados
WWDC25
-
Buscar neste vídeo...
-
-
6:23 - Read VenueDescriptor from AIVU file
func readAIMEData(from aivuFile: URL) async throws -> VenueDescriptor? { let avAsset = AVURLAsset(url: aivuFile) let metadata = try await avAsset.load(.metadata) let aimeData = metadata.filter({ $0.identifier == .quickTimeMetadataAIMEData }).first if let dataValue = try await aimeData.load(.value) as? NSData { return try await VenueDescriptor(aimeData: dataValue as Data) } return nil } -
6:50 - Read PresentationDescriptor from AIVU playback
func presentation(timedMetadata: [AVTimedMetadataGroup]) async throws -> [PresentationDescriptor] { var presentations: [PresentationDescriptor] = [] for group in timedMetadata { for metadata in group.items { if metadata.identifier == .quickTimeMetadataPresentationImmersiveMedia { let data = try await metadata.load(.dataValue) { presentations.append( try JSONDecoder().decode(PresentationDescriptor.self, from: data) ) } } } } return presentations } -
7:52 - Create AVMetadataItem from VenueDescriptor
func getMetadataItem(from metadata: VenueDescriptor) async throws -> AVMetadataItem { let aimeData = try await metadata.aimeData let aimeMetadataItem = AVMutableMetadataItem() aimeMetadataItem.identifier = .quickTimeMetadataAIMEData aimeMetadataItem.dataType = String(kCMMetadataBaseDataType_RawData) aimeMetadataItem.value = aimeData as NSData return aimeMetadataItem } -
8:02 - Create timed AVMetadataItem from PresentationDescriptorReader
func getMetadataItem(reader: PresentationDescriptorReader, time: CMTime, frameDuration: CMTime) -> AVMetadataItem? { let commands = reader.outputPresentationCommands(for: time) ?? [] if commands.isEmpty { return nil } let descriptor = PresentationDescriptor(commands: commands) let encodedData = try JSONEncoder().encode(descriptor) let presentationMetadata = AVMutableMetadataItem() presentationMetadata.identifier = .quickTimeMetadataPresentationImmersiveMedia presentationMetadata.dataType = String(kCMMetadataBaseDataType_RawData) presentationMetadata.value = encodedData as NSData presentationMetadata.time = time presentationMetadata.duration = frameDuration return presentationMetadata } -
8:20 - Validate AIVU file
func validAIVU(file aivuFile: URL) async throws -> Bool { return try await AIVUValidator.validate(url: aivuFile) } -
9:31 - Save AIME file
let aimeFile = FileManager.default.temporaryDirectory.appendingPathComponent("primary.aime") try? await venueDescriptor.save(to: aimeFile)
-
-
- 0:00 - Introdução
O visionOS 26 oferece novos recursos que permitem criar experiencias de Apple Immersive Video com Áudio Espacial.
- 0:48 - Visão geral do Apple Immersive Video
O Apple Immersive Video oferece reprodução de vídeo estereoscópica de alta fidelidade com áudio totalmente imersivo no Apple Vision Pro. Câmeras especializadas, como a Blackmagic URSA Cine Immersive, são calibradas para capturar a curvatura exata de cada lente estereoscópica, e essas informações de calibração são carregadas com os arquivos de vídeo para a projeção correta. O macOS e o visionOS 26 oferecem suporte a esse formato por meio do framework Immersive Media Support, permitindo fluxos de trabalho personalizados para criação, visualização e publicação de conteúdo.
- 2:36 - Metadados do Apple Immersive Video
O Apple Immersive Video pode ser produzido usando várias câmeras, cada uma com calibrações exclusivas. A combinação dessas câmeras descreve os locais capturados. Os VenueDescriptors incluem informações da câmera, máscaras de combinação de bordas, cenários personalizados e dados de calibração dinâmica para cada quadro de vídeo, armazenados como Apple Immersive Media Embedded, ou AIMEData. O framework Immersive Media Support permite integrar comandos de apresentação, como disparos de disquetes, fades e renderização dinâmica, que são manipulados automaticamente pelo visionOS durante a reprodução, simplificando o processo editorial de vídeos imersivos estereoscópicos. Consulte os tipos PresentationDescriptor e PresentationCommand para saber mais.
- 5:13 - Ler arquivos AIVU
O arquivo Apple Immersive Video Universal (AIVU) é um contêiner de saída de vídeo com metadados combinados. Você pode reproduzir arquivos AIVU em visionOS via Visualização Rápida no app Arquivos e em apps personalizados usando AVKit. O novo identificador de metadados AVAsset quickTimeMetadataAIMEData fornece acesso ao AIMEData como um VenueDescriptor, e os metadados PresentationDescriptor estão disponíveis por meio do AVTimedMetadataGroup.
- 7:16 - Criar arquivos AIVU
Para criar arquivos Apple Immersive Video (AIVU), use o tipo de projeção AppleImmersiveVideo e grave os valores VenueDescriptor e PresentationCommand nos metadados do seu ativo usando AVAssetWriter. A função validate do AIVUValidator pode então verificar os arquivos. Para obter mais informações, consulte o projeto de exemplo "Criar Apple Immersive Video".
- 8:43 - Publicar conteúdo Apple Immersive Video
Para publicar conteúdo imersivo da Apple, use a segmentação HLS com vídeo MV-HEVC a 4320 x 4320 por olho, 90 quadros por segundo e um espaço de cores P3-D65-PQ. As camadas recomendadas para segmentar Apple Immersive Video variam entre 25 e 150 Mbps para largura de banda média. Inclua seu arquivo AIME (VenueDescriptor) com a lista de reprodução multivariante HLS, bem como a faixa de áudio APAC. Sua playlist deve especificar a versão 12 ou superior, o tipo de conteúdo totalmente imersivo e o layout de vídeo estéreo com projeção Apple Immersive Video.
- 10:29 - Conferir prévias de conteúdo Apple Immersive Video
As novas APIs ImmersiveMediaRemotePreviewSender e Receiver no framework Immersive Media Support oferecem suporte à visualização ao vivo de baixa taxa de bits de Apple Immersive Video do Mac para Apple Vision Pro durante os fluxos de trabalho editoriais, permitindo a visualização em tempo real durante a edição. Confira a documentação do Immersive Media Support para saber mais.
- 11:21 - Apple Spatial Audio Format
O Apple Spatial Audio Format (ASAF) é um novo formato de produção que usa novos metadados, PCM linear e um renderizador espacial para criar Áudio Espacial de alta resolução. O ASAF permite áudio exteriorizado com som adaptativo de todas as direções, distâncias e posições. O ASAF é transportado dentro de arquivos de onda de transmissão com sinais PCM lineares e metadados.
- 12:39 - Apple Positional Audio Codec
Para transmitir áudio ASAF via HLS, codifique-o como um arquivo MP4 APAC usando os plugins Apple Pro Tools ou o DaVinci Resolve Studio Editor da Blackmagic Design. O APAC é necessário para qualquer experiência de Apple Immersive Video e está disponível em todas as plataformas Apple, exceto watchOS, permitindo a entrega eficiente de Áudio Espacial a baixas taxas de bits. Inclua a tag de mídia com informações de canal e especifique APAC na tag de informações de fluxo para fornecer áudio espacial com HLS.