View in English

  • Apple Developer
    • Get Started

    Explore Get Started

    • Overview
    • Learn
    • Apple Developer Program

    Stay Updated

    • Latest News
    • Hello Developer
    • Platforms

    Explore Platforms

    • Apple Platforms
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    • App Store

    Featured

    • Design
    • Distribution
    • Games
    • Accessories
    • Web
    • Home
    • CarPlay
    • Technologies

    Explore Technologies

    • Overview
    • Xcode
    • Swift
    • SwiftUI

    Featured

    • Accessibility
    • App Intents
    • Apple Intelligence
    • Games
    • Machine Learning & AI
    • Security
    • Xcode Cloud
    • Community

    Explore Community

    • Overview
    • Meet with Apple events
    • Community-driven events
    • Developer Forums
    • Open Source

    Featured

    • WWDC
    • Swift Student Challenge
    • Developer Stories
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Centers
    • Documentation

    Explore Documentation

    • Documentation Library
    • Technology Overviews
    • Sample Code
    • Human Interface Guidelines
    • Videos

    Release Notes

    • Featured Updates
    • iOS
    • iPadOS
    • macOS
    • watchOS
    • visionOS
    • tvOS
    • Xcode
    • Downloads

    Explore Downloads

    • All Downloads
    • Operating Systems
    • Applications
    • Design Resources

    Featured

    • Xcode
    • TestFlight
    • Fonts
    • SF Symbols
    • Icon Composer
    • Support

    Explore Support

    • Overview
    • Help Guides
    • Developer Forums
    • Feedback Assistant
    • Contact Us

    Featured

    • Account Help
    • App Review Guidelines
    • App Store Connect Help
    • Upcoming Requirements
    • Agreements and Guidelines
    • System Status
  • Quick Links

    • Events
    • News
    • Forums
    • Sample Code
    • Videos
 

Vídeos

Abrir menu Fechar menu
  • Coleções
  • Todos os vídeos
  • Sobre

Mais vídeos

  • Sobre
  • Resumo
  • Código
  • Saiba mais sobre o Apple Projected Media Profile (APMP)

    Confira detalhes do Apple Projected Media Profile (APMP) e veja como ele permite projeções em 180º, 360º e com campo de visão amplo em arquivos QuickTime e MP4 usando a sinalização Video Extended Usage. Daremos orientações sobre o uso de frameworks e ferramentas fornecidos pelo sistema operacional para converter, ler/gravar, editar e codificar mídias que contêm APMP. Além disso, analisaremos os recursos do Apple Positional Audio Codec (APAC) para criar e reproduzir conteúdo com áudio espacial, proporcionando experiências mais imersivas.

    Capítulos

    • 0:00 - Introdução
    • 1:12 - Fundamentos de vídeo não retilíneo
    • 3:42 - Especificações do Apple Projected Media Profile
    • 5:59 - Captura de conteúdo e fluxos de trabalho do APMP
    • 8:33 - Recursos de conversão de assets
    • 10:45 - Leitura de vídeos APMP
    • 11:47 - Edição de vídeos APMP
    • 13:42 - Publicação de vídeos APMP
    • 16:14 - Apple Positional Audio Codec

    Recursos

    • QuickTime and ISO Base Media File Formats and Spatial and Immersive Media
    • Converting projected video to Apple Projected Media Profile
    • Apple HEVC Stereo Video Interoperability Profile
    • Using Apple’s HTTP Live Streaming (HLS) Tools
    • Core Media
    • HTTP Live Streaming
    • HTTP Live Streaming (HLS) authoring specification for Apple devices
    • AVFoundation
      • Vídeo HD
      • Vídeo SD

    Vídeos relacionados

    WWDC25

    • Explore experiências de vídeo para o visionOS
    • Integre a reprodução de vídeo imersivo em apps para visionOS
    • Novidades dos recursos espaciais para a web
    • Saiba mais sobre as tecnologias Apple Immersive Video

    WWDC22

    • What’s new in AVQT

    WWDC21

    • Evaluate videos with the Advanced Video Quality Tool
  • Buscar neste vídeo...
    • 8:58 - Recognize spherical v1/v2 equirectangular content

      // Convert spherical v1/v2 RFC 180/360 equirectangular content
      
      import AVFoundation
      
      func wasConvertedFromSpherical(url: URL) -> Bool {
      	let assetOptions = [AVURLAssetShouldParseExternalSphericalTagsKey: true]
      	let urlAsset = AVURLAsset(url: url, options: assetOptions)
      	
      	// simplified for sample, assume first video track
      	let track = try await urlAsset.loadTracks(withMediaType: .video).first!
      	
      	// Retrieve formatDescription from video track, simplified for sample assume first format description
      	let formatDescription = try await videoTrack.load(.formatDescriptions).first
      	
      	// Detect if formatDescription includes extensions synthesized from spherical
      	let wasConvertedFromSpherical = formatDescription.extensions[.convertedFromExternalSphericalTags]
      	
      	return wasConvertedFromSpherical
      }
    • 9:54 - Convert wide FOV content from supported cameras

      // Convert wide-FOV content from recognized camera models
      import ImmersiveMediaSupport
      
      func upliftIntoParametricImmersiveIfPossible(url: URL) -> AVMutableMovie {
      	let movie = AVMutableMovie(url: url)
      
      	let assetInfo = try await ParametricImmersiveAssetInfo(asset: movie)
      	if (assetInfo.isConvertible) {
      		guard let newDescription = assetInfo.requiredFormatDescription else {
      			fatalError("no format description for convertible asset")
      		}
      		let videoTracks = try await movie.loadTracks(withMediaType: .video)
      		guard let videoTrack = videoTracks.first,
      			  let currentDescription = try await videoTrack.load(.formatDescriptions).first
      		else {
            fatalError("missing format description for video track")
      		}
      		// presumes that format already compatible for intended use case (delivery or production)
          // for delivery then if not already HEVC should transcode for example
      		videoTrack.replaceFormatDescription(currentDescription, with: newDescription)
      	}
        return movie
      }
    • 10:58 - Recognize Projected & Immersive Video

      // Determine if an asset contains any tracks with nonRectilinearVideo and if so, whether any are AIV
      import AVFoundation
      
      func classifyProjectedMedia( movieURL: URL ) async -> (containsNonRectilinearVideo: Bool, containsAppleImmersiveVideo: Bool) {
      	
      	let asset = AVMovie(url: movieURL)
      	let assistant = AVAssetPlaybackAssistant(asset: asset)
      	let options = await assistant.playbackConfigurationOptions
      	// Note contains(.nonRectilinearProjection) is true for both APMP & AIV, while contains(.appleImmersiveVideo) is true only for AIV
      	return (options.contains(.nonRectilinearProjection), options.contains(.appleImmersiveVideo))
      }
    • 11:22 - Perform projection or viewPacking processing

      import AVFoundation
      import CoreMedia
      
      // Perform projection or viewPacking specific processing
      func handleProjectionAndViewPackingKind(_ movieURL: URL) async throws {
      	
      	let movie = AVMovie(url: movieURL)
      	let track = try await movie.loadTracks(withMediaType: .video).first!
      	let mediaCharacteristics = try await track.load(.mediaCharacteristics)
      	
      	// Check for presence of non-rectilinear projection
      	if mediaCharacteristics.contains(.indicatesNonRectilinearProjection) {
      		let formatDescriptions = try await track.load(.formatDescriptions)
      		for formatDesc in formatDescriptions {
      			if let projectionKind = formatDesc.extensions[.projectionKind] {
      				if projectionKind == .projectionKind(.equirectangular) {
      					// handle equirectangular (360) video
      				} else if projectionKind == .projectionKind(.halfEquirectangular) {
      					// handle 180 video
      				} else if projectionKind == .projectionKind(.parametricImmersive) {
      					// handle parametric wfov video
      				} else if projectionKind == .projectionKind(.appleImmersiveVideo) {
      					// handle AIV
      				}
      			}
      			if let viewPackingKind = formatDesc.extensions[.viewPackingKind] {
      				if viewPackingKind == .viewPackingKind(.sideBySide) {
      					// handle side by side
      				} else if viewPackingKind == .viewPackingKind(.overUnder) {
      					// handle over under
      				}
      			}
      		}
      	}
      }
    • 12:51 - Specify outputBufferDescription for a stereoscopic pair

      var config = try await AVVideoComposition.Configuration(for: asset)
      	
      	config.outputBufferDescription = [[.stereoView(.leftEye)], [.stereoView(.rightEye)]]
      
      	let videoComposition = AVVideoComposition(configuration: config)
    • 13:01 - Finish an asyncVideoCompositionRequest with tagged buffers

      func startRequest(_ asyncVideoCompositionRequest: AVAsynchronousVideoCompositionRequest) {
      	var taggedBuffers: [CMTaggedDynamicBuffer] = []
      	let MVHEVCLayerIDs = [0, 1]
      	let eyes: [CMStereoViewComponents] = [.leftEye, .rightEye]
      	
      	for (layerID, eye) in zip(MVHEVCLayerIDs, eyes) {
      		// take a monoscopic image and convert it to a z=0 stereo image with identical content for each eye
      		let pixelBuffer = asyncVideoCompositionRequest.sourceReadOnlyPixelBuffer(byTrackID: 0)
      		
      		let tags: [CMTag] = [.videoLayerID(Int64(layerID)), .stereoView(eye)]
      		let buffer = CMTaggedDynamicBuffer(tags: tags, content: .pixelBuffer(pixelBuffer!))
      		taggedBuffers.append(buffer)
      	}
      	asyncVideoCompositionRequest.finish(withComposedTaggedBuffers: taggedBuffers)
      }
    • 0:00 - Introdução
    • Saiba como a projeção de vídeo não retilínea é representada em arquivos QuickTime. Descubra novas APIs para criar, editar e publicar vídeos APMP com Áudio Espacial. Esse vídeo é feito sob medida para fornecedores de câmeras, desenvolvedores de software de edição de vídeo e de apps interessados em mídia imersiva, especialmente para visionOS.

    • 1:12 - Fundamentos de vídeo não retilíneo
    • O visionOS 26 apresenta o Apple Projected Media Profile, que aceita vários formatos de vídeo não retilíneos além dos tradicionais vídeos 2D, 3D e espaciais. Esse perfil inclui projeções semiequirretangulares para vídeos de 180¬graus, projeções equirretangulares para vídeos de 360¬graus e projeções paramétricas para vídeos Wide FOV capturados com lentes grande-angulares ou olho de peixe. Projeções equirretangulares mapeiam coordenadas esféricas para um quadro retangular usando ângulos de latitude e longitude. As projeções imersivas paramétricas são responsáveis por parâmetros de distorção da lente, como distância focal, centro óptico, inclinação e distorção radial, que corrige a distorção em barril comumente vista em lentes grande-angulares. Isso permite uma representação mais precisa e imersiva do conteúdo de vídeo Wide FOV.

    • 3:42 - Especificações do Apple Projected Media Profile
    • O Apple Projected Media Profile (APMP) permite sinalização de projeções 180, 360 e Wide FOV. As APIs da Apple permitem trabalhar com conteúdo APMP em arquivos QuickTime e MP4. As novas caixas dentro da caixa de Video Extended Usage (vexu) no visionOS 26 especificam tipos de projeção, parâmetros de lente e disposição do pacote de visualização. Essas caixas permitem a representação de vários formatos de mídia imersiva, como vídeos monoscópicos equirretangulares e estereoscópicos de 180¬graus.

    • 5:59 - Captura de conteúdo e fluxos de trabalho do APMP
    • Várias câmeras e softwares de edição aceitam APMP para capturar e editar vídeos de 180 e 360¬graus. A sinalização do APMP é usada em todo o fluxo de trabalho de captura, edição e distribuição para reprodução eficiente em dispositivos com visionOS. Para softwares não habilitados para APMP, você pode usar metadados esféricos e o utilitário avconvert para conversão antes de transferir arquivos para o Apple Vision Pro.

    • 8:33 - Recursos de conversão de assets
    • O macOS e o visionOS 26 introduzem novos recursos para trabalhar com arquivos APMP. O AVFoundation agora reconhece assets esféricos compatíveis e sintetiza a sinalização do APMP. O visionOS 26 tem suporte integrado para parâmetros de projeção de lente e modos de campo de visão de fornecedores de câmeras populares, permitindo a conversão automática na abertura. Use novos frameworks e objetos para converter conteúdo em Wide FOV para o formato APMP, tornando-o reconhecível pelas APIs do sistema.

    • 10:45 - Leitura de vídeos APMP
    • Os frameworks CoreMedia e AVFoundation atualizados no visionOS permitem ler e identificar vídeos APMP usando APIs de mídia do sistema. AVAssetPlaybackAssistant pode ser usado para verificar configurações de projeção não retilíneas, e a extensão da descrição do formato viewPackingKind aceita pacotes de quadros lado a lado e superior-inferior para experiências imersivas de reprodução de vídeo.

    • 11:47 - Edição de vídeos APMP
    • O objeto AVVideoComposition do AVFoundation e o CMTaggedDynamicBuffer são usados para edição de vídeo estereoscópico. CMTaggedDynamicBuffer, que contêm tags CM com categorias e valores, agrupam buffers relacionados como CVPixelBuffer para o olho esquerdo e direito. Para ativar a edição estereoscópica, defina o outputBufferDescription e insira buffers marcados para solicitações de composição depois de construir o par estereoscópico.

    • 13:42 - Publicação de vídeos APMP
    • A publicação de conteúdo APMP no visionOS precisa usar a codificação HEVC Main ou Main 10 com cores primárias e resoluções específicas. O modo estéreo pode ser monoscópico ou estereoscópico, com taxas de quadros recomendadas e taxas de bits que variam conforme a resolução. A Apple Advanced Video Quality Tool (AVQT) foi atualizada para oferecer suporte a formatos imersivos e avaliar a qualidade do vídeo. O HLS foi aprimorado para oferecer suporte a streaming APMP, e ferramentas e diretrizes atualizadas estão disponíveis no site Apple Developer.

    • 16:14 - Apple Positional Audio Codec
    • O Apple Positional Audio Codec (APAC) é uma tecnologia projetada para codificar áudio ambissônico e permitir experiências imersivas de Áudio Espacial. Áudio ambissônico é uma técnica para gravação e reprodução de campo sonoro em esfera total. Ele usa funções matemáticas e uma série de microfones, permitindo que o som venha de qualquer direção. O APAC aceita áudios ambissônicos de primeira, segunda e terceira ordem, com ordens mais altas fornecendo maior resolução espacial. O codec é altamente eficiente e recomendado para codificação de áudio espacial com vídeo APMP. O APAC faz decodificações em todas as principais plataformas da Apple (exceto watchOS) e permite áudio segmentado e transmitido via HLS.

Developer Footer

  • Vídeos
  • WWDC25
  • Saiba mais sobre o Apple Projected Media Profile (APMP)
  • Open Menu Close Menu
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    • App Store
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • Icon Composer
    • SF Symbols
    Open Menu Close Menu
    • Accessibility
    • Accessories
    • Apple Intelligence
    • Audio & Video
    • Augmented Reality
    • Business
    • Design
    • Distribution
    • Education
    • Games
    • Health & Fitness
    • In-App Purchase
    • Localization
    • Maps & Location
    • Machine Learning & AI
    • Security
    • Safari & Web
    Open Menu Close Menu
    • Documentation
    • Downloads
    • Sample Code
    • Videos
    Open Menu Close Menu
    • Help Guides & Articles
    • Contact Us
    • Forums
    • Feedback & Bug Reporting
    • System Status
    Open Menu Close Menu
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles
    • Feedback Assistant
    Open Menu Close Menu
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program
    • Mini Apps Partner Program
    • News Partner Program
    • Video Partner Program
    • Security Bounty Program
    • Security Research Device Program
    Open Menu Close Menu
    • Meet with Apple
    • Apple Developer Centers
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Academies
    • WWDC
    Read the latest news.
    Get the Apple Developer app.
    Copyright © 2026 Apple Inc. All rights reserved.
    Terms of Use Privacy Policy Agreements and Guidelines