View in English

  • Global Nav Open Menu Global Nav Close Menu
  • Apple Developer
Search
Cancel
  • Apple Developer
  • News
  • Discover
  • Design
  • Develop
  • Distribute
  • Support
  • Account
Only search within “”

Quick Links

5 Quick Links

Vídeos

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

Mais vídeos

  • Sobre
  • Resumo
  • Transcrição
  • 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

    • Apple HEVC Stereo Video Interoperability Profile
    • AVFoundation
    • Converting projected video to Apple Projected Media Profile
    • Core Media
    • HTTP Live Streaming
    • HTTP Live Streaming (HLS) authoring specification for Apple devices
    • QuickTime and ISO Base Media File Formats and Spatial and Immersive Media
    • Using Apple’s HTTP Live Streaming (HLS) Tools
      • 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...

    Olá! Sou Jon, engineer na equipe Core Media Spatial Technologies. Neste vídeo, abordarei os fundamentos de como a projeção de vídeo não retilínea é representada em arquivos QuickTime. Mostrarei as atualizações nos frameworks Core Media, Video Toolbox e AVFoundation para ler, gravar, editar e publicar Apple Projected Media Profile, ou vídeo APMP. E abordarei como usar o Apple Positional Audio Codec para adicionar áudio espacial imersivo à mídia de vídeo projetada. Seja você um fornecedor de câmeras de 180º, 360º ou com amplo campo de visão ou um desenvolvedor de software de edição de vídeo ou de apps que deseja trabalhar com um novo tipo de mídia, este vídeo será útil para você. Recomendo assistir à sessão “Explorar as experiências de vídeo para visionOS” para obter informações importantes sobre os perfis de vídeo imersivo no visionOS 26 e o conceito de projeções de vídeo. Vou revisar os fundamentos de vídeo não retilíneo apresentados na sessão “Explorar as experiências de vídeo para visionOS”. O visionOS 26 inclui o Apple Projected Media Profile, que aceita vídeos em 180º, 360º e com FOV amplo gravados por câmeras disponíveis ao consumidor. Um diferencial importante no perfil de mídia projetada é o tipo de projeção. Vídeos 2D, 3D e espacial usam projeção retilínea. Vídeos em 180º usam projeção semiequiretangular, vídeos em 360º usam projeção equiretangular e vídeos com FOV amplo usam projeção paramétrica. A projeção equiretangular, conhecida como projeção cilíndrica equidistante, é aceita em vários apps de edição, como o Final Cut Pro. Nesse tipo, as coordenadas de pixel de uma esfera de fechamento são expressas como ângulos de latitude e longitude e projetadas igualmente nas linhas e colunas de um quadro de vídeo retangular. O eixo horizontal mapeia a longitude de negativo a positivo em 180º, e o eixo vertical mapeia a latitude de negativo a positivo em 90º. A projeção semiequiretangular é semelhante, mas a coordenada X no quadro representa o intervalo de 90º negativos a 90º positivos. A projeção ParametricImmersive representa os parâmetros intrínsecos e de distorção de lente associados às lentes grande-angular ou olho de peixe. A Intrinsics representa informações como a distância focal e o centro óptico e a distorção do sistema de lentes usado para a captura. Esses parâmetros são interpretados como uma matriz 3 x 3, denotada como K para a matriz da câmera, que representa uma transformação de coordenadas 3D para 2D em um plano de imagem. A projeção ParametricImmersive pode representar parâmetros de distorção da lente, por exemplo, distorção radial. Parâmetros de distorção radial corrigem a distorção em barril, em que linhas retas parecem curvas dependendo da distância até o centro óptico por causa do design da lente grande-angular. Nesta imagem, os postes da cerca estão curvos em direção à borda da lente. Outras características, como distorção tangencial, deslocamento de projeção, limite de ângulo radial e ajuste de quadro da lente, podem ser especificadas na projeção ParametricImmersive.

    Agora que abordei os conceitos básicos, darei uma visão geral de como usar as APIs da Apple para interagir com o conteúdo do Apple Projected Media Profile.

    Vou começar explicando como o vídeo APMP é transportado em arquivos QuickTime e MP4.

    O Apple Projected Media Profile permite sinalizar conteúdo em 180º e 360º e com FOV amplo em arquivos QuickTime e MP4. Os arquivos QuickTime são organizados como uma hierarquia de contêineres com vários dados de mídia e podem incluir trilhas de áudio e vídeo e metadados de cada trilha.

    A especificação ISO Base Media File Format, ou ISOBMFF para MP4, foi adaptada do QuickTime. A unidade fundamental da organização de dados em um arquivo ISOBMFF é uma caixa. Para o visionOS 1, incluímos uma caixa de extensão Video Extended Usage com informações da visualização estéreo indicando conteúdo estereoscópico ou monoscópico. No visionOS 26, adicionamos novas caixas ao Video Extended Usage, ou vexu, para permitir a sinalização do perfil de mídia projetado. A caixa de projeção sinaliza um dos tipos de projeção, como equiretangular, semiequiretangular ou ParametricImmersive. Uma caixa de coleção de lentes contém os parâmetros para distorções intrínsecas, extrínsecas e de lente para a projeção ParametricImmersive. A caixa de visualização contém informações sobre a disposição dos olhos em uma imagem repleta de quadros, lado a lado ou por baixo. Este é um exemplo da sinalização mínima para um arquivo equiretangular monoscópico. A caixa de projeção com ProjectionKind indica equiretangular. Um arquivo estereoscópico de 180º exige uma caixa de visão estéreo, além da projeção semiequiretangular. Com esses elementos essenciais é possível sinalizar outras combinações, como 360º estereoscópico. Confira as específicações em “Formatos de arquivo de mídia base QuickTime e ISO e mídia espacial e imersiva” em developer.apple.com para saber mais sobre a caixa de projeção e outras caixas compatíveis com o Apple Projected Media Profile. Vou explicar modos de capturar conteúdo APMP e os fluxos de trabalho típicos de APMP. Há várias câmeras disponíveis para capturar conteúdo compatível com APMP. Por exemplo, o sistema EOS VR da Canon para gravar e processar vídeos estereoscópicos em 180º. GoPro MAX ou Insta360 X5 para vídeos em 360º. E câmeras de ação recentes, como a GoPro HERO 13 e a Insta360 Ace Pro 2, para vídeos com FOV amplo. O Final Cut Pro já aceita a leitura e a gravação em APMP para formatos em 360º. Ainda este ano, softwares de edição de vídeo da câmera, como Canon EOS VR Utility e GoPro Player, permitirão exportar arquivos MOV ou MP4 com a sinalização Apple Projected Media Profile. Para vídeos em 180º ou 360º, use o software do fornecedor da câmera para operações como costura, estabilização e correção de imagem estéreo. Se o editor já for compatível com APMP, exporte o arquivo como MOV ou MP4 com a sinalização APMP. Use o AirDrop ou o iCloud para transferir arquivos para o Apple Vision Pro. Se o software da câmera ainda não aceitar Apple Projected Media, exporte o arquivo como 180º ou 360º usando metadados esféricos. Use o utilitário avconvert para macOS pela linha de comando ou por uma ação do Finder pressionando Ctrl enquanto clica em um ou mais arquivos de vídeo. Use o AirDrop ou o iCloud para transferir arquivos para o Apple Vision Pro. O Apple Projected Media Profile é adequado para sinalizar vídeo projetado por meio de fluxos de trabalho completos de mídia, incluindo captura, edição e entrega. Este é um exemplo de fluxo estereoscópico em 180º que pode usar a sinalização APMP em cada etapa. Capture o conteúdo usando codecs HEVC, RAW ou ProRes. Depois, edite usando ProRes. Para capturar e editar conteúdo 3D, use arquivos de filme com vários quadros e visualizações separados por olho e até duas faixas de vídeo sinalizadas em um arquivo. Neste exemplo, a captura requer dois arquivos de filme, enquanto a edição é executada com conteúdo repleto de quadros lado a lado. Codifique e publique com o codec HEVC ou MV-HEVC com várias visualizações para distribuição e reprodução eficientes no visionOS. Agora que abordamos as especificações e os fluxos de trabalho do APMP, vou mostrar os novos recursos do macOS e visionOS 26 para trabalhar com arquivos APMP com as APIs de mídia existentes. Vou começar com os recursos de conversão de ativos. Os desenvolvedores de apps de fluxos de mídia precisarão de tempo para adotar a sinalização APMP, por isso permitimos que o AVFoundation reconheça ativos compatíveis que usam a sinalização Spherical Metadata V1 ou V2. O conteúdo em 180º ou 360º compatível tem projeção equiretangular e pode ser estéreo ou monoscópico com muitos quadros. Passe a opção de criação de ativos ShouldParseExternalSphericalTags para reconhecer conteúdo esférico compatível e sintetizar as extensões de descrição de formato apropriadas. Isso permitirá que outras APIs do sistema tratem o ativo como se estivesse sinalizado com o Apple Projected Media Profile. Verifique se há a extensão de descrição de formato convertedFromExternalSphericalTags para saber se os metadados esféricos foram analisados. O visionOS 26 aceita parâmetros de projeção de lente e modos de campo de visão populares para fornecedores de câmera como GoPro e Insta360. A Visualização Rápida solicita a conversão desses arquivos ao abrir. Para permitir a conversão de conteúdo com FOV amplo em seus apps, use o objeto ParametricImmersiveAssetInfo do framework ImmersiveMediaSupport. Ele gera uma descrição de formato de vídeo que contém uma projeção ParametricImmersive com parâmetros intrínsecos e de distorção de lente para modelos de câmera compatíveis. Use a propriedade isConvertible para determinar a detecção de metadados de uma câmera compatível e substitua a descrição do formato da faixa de vídeo por uma descrição de formato recém-derivada.

    Agora, APIs do sistema que usam esse ativo reconhecerão o conteúdo como APMP com FOV amplo. Confira o app de exemplo em “Converter vídeo projetado em Apple Projected Media Profile” para saber como converter para formatos APMP prontos para entrega. Leia vídeos APMP usando as APIs de mídia existestes do sistema. Os frameworks CoreMedia e AVFoundation foram atualizados para identificar e ler mídia projetada. Para identificar se um ativo está em conformidade com um perfil APMP, talvez para rotular ou preparar uma experiência de reprodução específica, use AVAssetPlaybackAssistant e procure a opção de configuração de projeção não retilínea. Para saber como criar experiências de reprodução de vídeo APMP, confira “Suporte à reprodução de vídeo imersivo em apps para visionOS”.

    Para obter mais detalhes, examine as características da mídia para determinar se a faixa de vídeo indica uma projeção não retilínea. Depois, examine o projectionKind para determinar a projeção exata sinalizada. A extensão de descrição de formato viewPackingKind identifica conteúdo repleto de quadros. Ela permite o empacotamento de quadros lado a lado e por cima. Para editar a mídia projetada, use o objeto AVVideoComposition do framework AVFoundation e familiarize-se com CMTaggedBuffers. Os CMTaggedDynamicBuffers são usados em várias APIs para lidar com conteúdo estereoscópico, incluindo APIs de edição, como AVVideoComposition. O CMTaggedDynamicBuffer fornece uma maneira de especificar certas propriedades de buffers subjacentes, denominadas CM Tags. Cada CM Tag conterá uma categoria e um valor. Este é um exemplo de CM Tag que representa uma categoria StereoView indicando o olho esquerdo.

    Os CMTaggedDynamicBuffers podem ser agrupados em buffers relacionados, como neste exemplo, que mostra CVPixelBuffers para olhos esquerdo e direito em uma amostra de vídeo estereoscópico. Para permitir a edição de vídeo estereoscópico com AVVideoComposition, adicionamos a API para especificar o formato de buffers marcados produzidos por um compositor e um método para passar buffers marcados para solicitações de composição. A outputBufferDescription especifica que tipo de CMTaggedBuffers o compositor produzirá. Defina-o antes de iniciar a composição. Depois de construir um par estereoscópico de CMTaggedBuffers, chame finish e passe os buffers rotulados.

    Agora que descrevi como converter, ler e editar ativos do Apple Projected Media Profile, falarei sobre o processo de gravá-los.

    Neste exemplo de código para escrever vídeo em 360º monoscópico, uso AVAssetWriter para criar o ativo. Estou usando o tipo CompressionPropertyKey para especificar o tipo de projeção equiretangular. As propriedades de compactação são passadas para AVAssetWriterInput usando a propriedade de dicionário outputSettings AVVideoCompressionPropertiesKey.

    Farei recomendações para a publicação de conteúdo APMP.

    Estes são os limites recomendados para reprodução no visionOS. Os parâmetros de codificação do codec de vídeo devem estar em conformidade com HEVC Main ou Main 10 com subamostragem de croma 4:2:0. Recomenda-se primárias de cores Rec 709 ou P3-D65. O modo estéreo pode ser monoscópico ou estereoscópico. A resolução sugerida em 10 bits para monoscópica é de 7680 x 3840 e de 4320 x 4320 por olho para estereoscópico. As taxas de quadros variam por resolução e profundidade de bits, com 30 qps recomendados para 8K monoscópico de 10 bits ou 4K estereoscópico. As configurações de codificação de taxa de bits dependem do conteúdo e devem ser adequadas para seu caso de uso, mas recomendamos não exceder 150 megabits por segundo. Há mais informações sobre o perfil de vídeo estéreo MV-HEVC usado pela Apple no documento “Perfil de interoperabilidade de vídeo estéreo HEVC da Apple” em developer.apple.com. Atualizamos a Advanced Video Quality Tool, ou AVQT, para aceitar formatos imersivos, como conteúdo 3D, espacial e APMP em 180º e 360º, e aprimoramos os algoritmos para melhor precisão. A AVQT é útil para avaliar a qualidade perceptiva do conteúdo de vídeo compactado e ajustar os parâmetros do codificador de vídeo. Também é útil para otimização da taxa de bits de níveis HLS. Os novos recursos incluem a capacidade de calcular métricas de qualidade usando o reconhecimento das projeções equiretangulares e semiequiretangulares. A especificação HTTP Live Streaming foi aprimorada com suporte para streaming do Apple Projected Media Profile, e as ferramentas HLS mais recentes no site Apple Developer foram atualizadas para oferecer suporte à publicação do APMP. Este é um exemplo de manifesto para um ativo estereoscópico em 180º. A principal alteração está na tag EXT-X-STREAM-INFORMATION. O atributo REQ-VIDEO-LAYOUT está especificando projeção estéreo e semiequiretangular. O segmento de mapa também deve conter uma extensão formatDescription sinalizando a projeção semiequiretangular e informações de visualização estéreo. Para obter as informações sobre níveis de taxa de bits HLS e outras diretrizes sobre criação de HLS, consulte “Especificações de criação de HLS” no site Apple Developer. O Áudio Espacial é tão importante quanto o vídeo ao criar experiências imersivas. No mundo real, o som pode vir de qualquer lugar. Para recriar essa experiência, é necessária uma tecnologia capaz de representar todo o campo sonoro. Criamos o Apple Positional Audio Codec, ou APAC, para essa finalidade. Uma capacidade importante do APAC é codificar áudio ambisônico para capturar uma representação de alta fidelidade do campo sonoro. O áudio ambisônico é uma técnica para gravar, mixar e reproduzir áudio espacial full-sphere.

    As gravações ambisônicas não estão ligadas a um layout de alto-falante, pois o campo sonoro é codificado matematicamente com um conjunto de funções de base harmônica esférica.

    A captura de áudio ambisônica usa um conjunto de microfones dispostos para gravar o ambiente sonoro 3D e, com o processamento digital de sinais, os sinais do microfone são alterados para sinais com direcionalidade que corresponde a componentes harmônicos esféricos. A combinação de todos esses sinais é uma representação precisa do campo sonoro original. O termo ordem em ambisônico se refere ao número de componentes esféricos usados para representar uma mixagem de áudio. A 1ª ordem são 4 componentes, ou canais, e correspondem a 1 canal omnidirecional e 3 canais que representam áudio direcionado da frente para atrás, da esquerda para a direita e de cima para baixo. O ambisônico de 2ª ordem usa 9 componentes, enquanto o de 3ª ordem usa 16. O ambisônico de ordem superior fornece maior resolução espacial. O Apple Positional Audio Codec é um codec de áudio espacial eficiente recomendado para codificação de áudio espacial, incluindo ambisônicos, com vídeo APMP. O APAC é decodificado em todas as plataformas da Apple, exceto no watchOS. O codificador APAC integrado acessível via AVAssetWriter nas plataformas iOS, macOS e visionOS é compatível com ambisônicos de 1ª, 2ª e 3ª ordens. Este código mostra o valor mínimo de outputSettings necessário para codificar ambisônicos de 1ª, 2ª ou 3ª ordens com AVAssetWriter. As taxas de bits ideais para ambisônicos codificados como APAC para APMP variam de 384 kbit/s para 1ª ordem a 768 kbit/s para 3ª ordem. O áudio APAC pode ser segmentado e transmitido via HLS. Este é um exemplo de um vídeo equiretangular monoscópico com áudio APAC codificando uma faixa ambisônica de 3ª ordem.

    Agora que sabe mais sobre o Apple Projected Media Profile, adicione a compatibilidade com APMP ao seu app ou serviço para permitir a reprodução, edição e compartilhamento de conteúdo imersivo dos usuários. Se você for um fornecedor de câmeras, integre o APMP onde possível para permitir a reprodução no ecossistema da Apple. Adote o Apple Positional Audio Codec para oferecer um campo sonoro de áudio envolvente a partir de um microfone ambisônico capturado com o vídeo imersivo. Agradeço por assistir! Agora vou gravar vídeos estereoscópicos em 180º.

    • 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 ativos 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
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • Icon Composer
    • SF Symbols
    Open Menu Close Menu
    • Accessibility
    • Accessories
    • App Store
    • Audio & Video
    • Augmented Reality
    • Business
    • Design
    • Distribution
    • Education
    • Fonts
    • Games
    • Health & Fitness
    • In-App Purchase
    • Localization
    • Maps & Location
    • Machine Learning & AI
    • Open Source
    • Security
    • Safari & Web
    Open Menu Close Menu
    • Documentation
    • Sample Code
    • Tutorials
    • Downloads
    • Forums
    • Videos
    Open Menu Close Menu
    • Support Articles
    • Contact Us
    • 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
    • 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
    Get the Apple Developer app.
    Copyright © 2025 Apple Inc. All rights reserved.
    Terms of Use Privacy Policy Agreements and Guidelines