-
Conoce las tecnologías de Apple Immersive Video
Explora las capacidades de las tecnologías de Apple Immersive Video y Apple Spatial Audio Format para crear experiencias envolventes. Te presentamos la nueva estructura ImmersiveMediaSupport, con funcionalidad para leer y escribir los metadatos necesarios para habilitar Apple Immersive Video. Conoce las pautas para codificar y publicar contenido de Apple Immersive Video en archivos independientes para reproducción o streaming a través de HLS.
Para aprovechar al máximo esta sesión, recomendamos ver primero “Explora experiencias de video para visionOS”.Capítulos
- 0:00 - Introducción
- 0:48 - Descripción general de Apple Immersive Video
- 2:36 - Metadatos de Apple Immersive Video
- 5:13 - Lee archivos AIVU
- 7:16 - Escribe archivos AIVU
- 8:43 - Publica contenido de Apple Immersive Video
- 10:29 - Vista previa de contenido de 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
Videos relacionados
WWDC25
-
Buscar este video…
-
-
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 - Introducción
visionOS 26 ofrece nuevas capacidades que permiten crear experiencias de Apple Immersive Video con audio espacial.
- 0:48 - Descripción general de Apple Immersive Video
Apple Immersive Video ofrece reproducción de video estereoscópico de alta fidelidad con audio totalmente envolvente en Apple Vision Pro. Las cámaras especializadas, como la Blackmagic URSA Cine Immersive, están calibradas para capturar la curvatura exacta de cada lente estereoscópica, y esta información de calibración se transporta con los archivos de video para una proyección correcta. macOS y visionOS 26 admiten este formato a través de la estructura Immersive Media Support, lo que permite flujos de trabajo personalizados para la creación, vista previa y publicación de contenido.
- 2:36 - Metadatos de Apple Immersive Video
Se puede producir Apple Immersive Video utilizando múltiples cámaras, cada una con calibraciones únicas. La combinación de estas cámaras describe los lugares capturados. Los VenueDescriptors incluyen información de la cámara, máscaras de fusión de bordes, fondos personalizados y datos de calibración dinámica para cada fotograma de video y se almacenan como Apple Immersive Media Embedded o AIMEData. La estructura Immersive Media Support permite la integración de comandos de presentación como cambios de toma, fundidos y renderizado dinámico, que visionOS maneja automáticamente durante la reproducción, lo que simplifica el proceso editorial para videos envolventes estereoscópicos. Consulta sobre los tipos PresentationDescriptor y PresentationCommand para obtener más detalles.
- 5:13 - Lee archivos AIVU
El archivo Apple Immersive Video Universal (AIVU) es un contenedor de video de salida con metadatos multiplexados. Puedes reproducir archivos AIVU en visionOS a través de Vista rápida en la app Archivos y en apps personalizadas usando AVKit. El nuevo identificador de metadatos AVAsset quickTimeMetadataAIMEData proporciona acceso a AIMEData como VenueDescriptor, y los metadatos PresentationDescriptor están disponibles a través de AVTimedMetadataGroup.
- 7:16 - Escribe archivos AIVU
Para crear archivos Apple Immersive Video (AIVU), usa el tipo de proyección AppleImmersiveVideo y escribe los valores VenueDescriptor y PresentationCommand en los metadatos de su activo usando AVAssetWriter. La función de validación de AIVUValidator puede luego verificar los archivos. Para obtener más detalles, consulta el proyecto de muestra “Authoring Apple Immersive Video”.
- 8:43 - Publica contenido de Apple Immersive Video
Para publicar tu contenido envolvente de Apple, usa la segmentación HLS con video MV-HEVC a 4320 x 4320 por ojo, 90 fotogramas por segundo y un espacio de color P3-D65-PQ. Los niveles recomendados para segmentar Apple Immersive Video oscilan entre 25 y 150 Mbps para un ancho de banda promedio. Incluye tu archivo AIME (VenueDescriptor) con tu lista de reproducción multivariante HLS, así como la pista de audio APAC. Tu lista de reproducción debe especificar la versión 12 o superior, el tipo de contenido totalmente envolvente y el diseño de video estéreo con proyección Apple Immersive Video.
- 10:29 - Vista previa de contenido de Apple Immersive Video
Las nuevas API ImmersiveMediaRemotePreviewSender y Receiver en la estructura Immersive Media Support admiten la vista previa en vivo de baja tasa de bits de Apple Immersive Video desde la Mac al Apple Vision Pro durante los flujos de trabajo editoriales, lo que permite la visualización en tiempo real durante la edición. Consulta la documentación de Immersive Media Support para obtener más detalles.
- 11:21 - Apple Spatial Audio Format
Apple Spatial Audio Format (ASAF) es un nuevo formato de producción que usa nuevos metadatos, PCM lineal y un renderizador espacial para crear audio espacial de alta resolución. ASAF permite audio externalizado con sonido adaptativo desde todas las direcciones, distancias y posiciones. ASAF se transporta dentro de archivos Broadcast Wave con señales PCM lineales y metadatos.
- 12:39 - Apple Positional Audio Codec
Para transmitir audio ASAF a través de HLS, codifícalo como archivo MP4 APAC con los complementos de Apple Pro Tools o DaVinci Resolve Studio Editor de Blackmagic Design. Se requiere APAC para cualquier experiencia de Apple Immersive Video y está disponible en todas las plataformas de Apple excepto watchOS, lo que permite una entrega de audio espacial eficiente a bajas tasas de bits. Incluye la etiqueta de medios con información del canal y especifica APAC en la etiqueta de información de transmisión para entregar audio espacial con HLS.