-
En savoir plus sur les technologies Apple Immersive Video
Découvrez les capacités des technologies Apple Immersive Video et Apple Spatial Audio Format pour créer des expériences véritablement immersives. Découvrez le nouveau framework ImmersiveMediaSupport, qui offre une fonctionnalité permettant de lire et d'écrire les métadonnées nécessaires à l'activation d'Apple Immersive Video. Apprenez les directives sur l'encodage et la publication de contenu Apple Immersive Video sous forme de fichiers autonomes pour la lecture ou le streaming via HLS.
Pour tirer le meilleur parti de cette séance, nous vous recommandons de commencer par regarder « Explorer les expériences vidéo pour visionOS ».Chapitres
- 0:00 - Introduction
- 0:48 - Présentation d’Apple Immersive Video
- 2:36 - Métadonnées d’Apple Immersive Video
- 5:13 - Lire les fichiers AIVU
- 7:16 - Écrire des fichiers AIVU
- 8:43 - Publier du contenu Apple Immersive Video
- 10:29 - Prévisualiser du contenu Apple Immersive Video
- 11:21 - Format Apple Spatial Audio
- 12:39 - Codec Apple Positional Audio
Ressources
- 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
Vidéos connexes
WWDC25
-
Rechercher dans cette vidéo…
-
-
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 - Introduction
visionOS 26 offre de nouvelles fonctionnalités qui vous permettent de créer des expériences Apple Immersive Video avec l’Audio spatial.
- 0:48 - Présentation d’Apple Immersive Video
Apple Immersive Video permet une lecture vidéo stéréoscopique haute fidélité avec un son totalement immersif sur l’Apple Vision Pro. Des caméras spécialisées, comme la Blackmagic URSA Cine Immersive, sont calibrées pour capturer la courbure exacte de chaque objectif stéréoscopique. Ces informations de calibrage sont transportées avec les fichiers vidéo pour une projection correcte. macOS et visionOS 26 prennent en charge ce format via le framework Immersive Media Support, qui permet d’exécuter des workflows personnalisés pour la création, la visualisation et la publication de contenus.
- 2:36 - Métadonnées d’Apple Immersive Video
Apple Immersive Video peut être générée à l’aide de plusieurs caméras, chacune avec des calibrages uniques. La combinaison de ces caméras décrit les lieux capturés. Les VenueDescriptors incluent des informations sur la caméra, des masques de fusion des bords, des arrière-plans personnalisés et des données de calibrage dynamique pour chaque image vidéo. Ils sont stockés au format Apple Immersive Media Embedded, ou AIMEData. Le framework Immersive Media Support permet d’intégrer des commandes de présentation telles que les transitions, les fondus et le rendu dynamique. Celles-ci sont automatiquement gérées par visionOS pendant la lecture, ce qui simplifie le processus éditorial des vidéos immersives stéréoscopiques. Pour plus d’informations, reportez-vous aux types PresentationDescriptor et PresentationCommand.
- 5:13 - Lire les fichiers AIVU
Le fichier AIVU (Apple Immersive Video Universal) est un conteneur de sortie vidéo avec multiplexage des métadonnées. Vous pouvez lire des fichiers AIVU sur visionOS via Coup d’œil dans l’app Fichiers et dans des apps personnalisées à l’aide d’AVKit. Le nouvel identifiant de métadonnées quickTimeMetadataAIMEData AVAsset permet d’accéder à AIMEData en tant que VenueDescriptor, et les métadonnées PresentationDescriptor sont disponibles via AVTimedMetadataGroup.
- 7:16 - Écrire des fichiers AIVU
Pour créer des fichiers Apple Immersive Video (AIVU), utilisez le type de projection AppleImmersiveVideo et écrivez les valeurs VenueDescriptor et PresentationCommand dans les métadonnées de vos ressources à l’aide d’AVAssetWriter. La fonction de validation d’AIVUValidator peut alors vérifier les fichiers. Pour plus d’informations, consultez l’exemple de projet « Création dans Apple Immersive Video ».
- 8:43 - Publier du contenu Apple Immersive Video
Pour publier votre contenu immersif Apple, utilisez la segmentation HLS avec la vidéo MV-HEVC à 4 320 x 4 320 par œil, 90 images par seconde et l’espace colorimétrique P3-D65-PQ. Les niveaux recommandés pour la segmentation de la vidéo Apple Immersive Video vont de 25 à 150 Mbps pour une bande passante moyenne. Incluez le fichier AIME (VenueDescriptor) avec votre playlist HLS multi-variantes, ainsi que la piste audio APAC. Votre playlist doit spécifier la version 12 ou ultérieure, le type de contenu entièrement immersif et la disposition vidéo stéréo avec projection Apple Immersive Video.
- 10:29 - Prévisualiser du contenu Apple Immersive Video
Les nouvelles API ImmersiveMediaRemotePreviewSender et Receiver du framework Immersive Media Support prennent en charge la prévisualisation en direct à faible débit des vidéos Apple Immersive Video du Mac vers l’Apple Vision Pro pendant les processus éditoriaux, ce qui permet un visionnage en temps réel pendant le montage. Pour en savoir plus, pensez à consulter la documentation d’Immersive Media Support.
- 11:21 - Format Apple Spatial Audio
Le format ASAF (Apple Spatial Audio Format) est un nouveau format de production qui utilise de nouvelles métadonnées, le PCM linéaire et un moteur de rendu spatial pour créer de l’Audio spatial haute résolution. Le format ASAF permet un son externalisé avec un son adaptatif dans toutes les directions, distances et positions. Il est transporté dans des fichiers Broadcast Wave avec des signaux PCM linéaires et des métadonnées.
- 12:39 - Codec Apple Positional Audio
Pour diffuser en streaming des fichiers audio ASAF via HLS, encodez-les au format MP4 APAC à l’aide des modules Apple Pro Tools ou de DaVinci Resolve Studio Editor de Blackmagic Design. La fonctionnalité APAC est requise pour toute expérience Apple Immersive Video et est disponible sur toutes les plateformes Apple à l’exception de watchOS, ce qui permet une diffusion efficace en Audio spatial avec de faibles débits. Incluez la balise media avec les informations sur le canal et spécifiez APAC dans la balise stream info pour diffuser l’Audio spatial avec HLS.