View in English

  • メニューを開く メニューを閉じる
  • Apple Developer
検索
検索を終了
  • Apple Developer
  • ニュース
  • 見つける
  • デザイン
  • 開発
  • 配信
  • サポート
  • アカウント
次の内容に検索結果を絞り込む

クイックリンク

5 クイックリンク

ビデオ

メニューを開く メニューを閉じる
  • コレクション
  • トピック
  • すべてのビデオ
  • 利用方法

その他のビデオ

  • 概要
  • トランスクリプト
  • コード
  • Apple Immersive Videoテクノロジーについて

    真のイマーシブ体験を実現するための、Apple Immersive VideoおよびApple Spatial Audio Formatテクノロジーの機能を確認しましょう。Apple Immersive Videoを利用するために必要なメタデータを読み書きする機能を提供する、新しいImmersiveMediaSupportフレームワークを紹介します。Apple Immersive VideoのコンテンツをHLS経由で再生およびストリーミングできるように、スタンドアロンファイルにエンコードして公開するためのガイドラインについても解説します。 このセッションの内容を十分理解できるよう、まず「Explore video experiences for visionOS」のビデオを視聴することをおすすめします。

    関連する章

    • 0:00 - イントロダクション
    • 0:48 - Apple Immersive Videoの概要
    • 2:36 - Apple Immersive Videoのメタデータ
    • 5:13 - AIVUファイルの読み込み
    • 7:16 - AIVUファイルの記述
    • 8:43 - Apple Immersive Videoコンテンツの公開
    • 10:29 - Apple Immersive Videoコンテンツのプレビュー
    • 11:21 - Apple Spatial Audio Format (ASAF)
    • 12:39 - Apple Positional Audio Codec (APAC)

    リソース

    • Authoring Apple Immersive Video
    • AVFoundation
    • AVPlayerItemMetadataOutput
    • Core Media
    • HTTP Live Streaming (HLS) authoring specification for Apple devices
    • Immersive Media Support
    • What's new in HTTP Live Streaming
      • HDビデオ
      • SDビデオ

    関連ビデオ

    WWDC25

    • 空間Webの新機能
    • Apple Projected Media Profileについて
    • visionOSのビデオ体験の詳細
    • visionOSアプリでのイマーシブなビデオ再生のサポート
  • このビデオを検索

    こんにちは Blakeです Apple Immersive Videoチームのエンジニアです このビデオでは Apple Immersive Videoを 作成するための macOSと visionOS 26の新機能について説明します WWDC25の「Explore video experiences for visionOS」に出てくる visionOS 26で利用可能な ビデオプロファイルの 原理と Apple Immersive Videoの 大まかな概要に基づいて話を進めます まずは そちらをご覧ください このビデオでは Apple Immersive Videoの機能と 空間オーディオのテクノロジーについて説明し みなさんが真のイマーシブ体験を 創造できるようにします Apple Immersive Videoから始めましょう Apple Immersive Videoは 最高品質のイマーシブ体験です ビデオはApple Vision Proで再生されます 忠実度の高いビデオと フルイマーシブオーディオで まるでその場にいるかのような 体験ができます コンテンツには高い没入感があるため この高忠実度の ビデオを撮影できる特別な カメラが必要です 例えば Blackmagic URSA Cine Immersiveは Apple Immersive Videoのために ゼロから設計されています

    Apple Immersive Videoカメラは 工場で独自にキャリブレーションされ 各立体視レンズの正確な 曲率をキャプチャします

    このキャリブレーション情報は すべてのビデオファイルに含まれています キャリブレーションは ビデオメタデータで ビデオを 正しく投影するために使用されます

    この表は WWDC25の「Explore video experiences for visionOS」に出てきます これにはvisionOS 26がサポートする さまざまな形式が含まれています 特にApple Immersive Videoでは カメラキャリブレーションサポートのために パラメトリック投影タイプを使用します macOSとvisionOS 26には Immersive Media Supportフレームワークの 機能が追加され カスタムワークフローを 作成できるようになりました Apple Immersive Video向けの 必須メタデータを読み書きでき 編集ワークフローでコンテンツを プレビューする機能を提供します ノンリニア編集ソフトウェアや ビデオ圧縮とエンコードツールのような ビデオ制作パイプラインをサポートする 作成ツールについては Apple Immersive Videoを 読み書きする方法 コンテンツを公開して 誰でも視聴できるようにする方法 制作プロセス中にコンテンツを プレビューする方法を取り上げます でもまずは Apple Immersive Video体験を 可能にするメタデータから 始めましょう Apple Immersive Videoは 複数のカメラを使用して制作できます 各カメラに独自のキャリブレーションが 設定されているため これらのカメラの組み合わせで 撮影場所を表現します Immersive Media Supportフレームワークの VenueDescriptor型には 撮影場所で使用される すべてのカメラの組み合わせが含まれます このVenueDescriptorの情報は Apple Immersive Media Embedded(AIMEData) として保存されますが これについてはこのセッションの後半で 詳しく説明します VenueDescriptor型はカメラと カメラビューモデルへの参照 カメラの追加と削除機能 AIMEDataへの参照 URLへの保存機能を保持しますが これは後で重要になります ビデオで使用する各カメラには カメラキャリブレーション以外の 情報を含めることができます マスクのポイント(エッジブレンド)は アルファを使用して コンテンツのエッジをマスクします

    また カメラの 原点位置情報の設定など カメラキャリブレーションには さらにいくつかの機能があります カスタム背景環境も カメラキャリブレーションに 含めることができます VenueDescriptorと ImmersiveCameraの 全機能については Immersive Media Supportの ドキュメントをご覧ください カメラキャリブレーションは 出力ビデオのビデオフレームに 固有であるため 特定のフレームにどのキャリブレーションを 使用するかを定義するための ダイナミックメタデータが存在します さらに タイムドダイナミック メタデータコマンドがあります Immersive Media Supportフレームワークの プレゼンテーションコマンドとして表され 出力されるQuickTime ファイルに多重化されます すべてのビデオフレームには複数の プレゼンテーションコマンドを含められます これらのコマンドは ビデオトラックの すべてのフレームと連動します 別のPresentationCommandは shotFlopです これはさまざまな理由で編集に使用され 画像と視線が Y軸上でフロップします イマーシブカメラでは 立体視レンズを使用するため 画像と視線がスワップするので shotFlopは より難しい編集処理になることに 注意が必要です しかし PresentationCommandを使用すると これらはすべて再生中に visionOSによって自動的に処理されます カメラキャリブレーションと shotFlopコマンド以外にも ビデオフレームに ベイクされずに動的に レンダリングされるフェードがあります これらのコマンドの詳細については PresentationDescriptor型および PresentationCommand型をご参照ください では 自分のアプリでApple Immersive Videoを使う方法を説明します コンテンツをHLSとしてセグメント化したり Apple Immersive Videoファイルを 編集したり 独自のカスタムプレーヤーを 作成したりするには メタデータを読むことが重要です また 一般的に制作現場で使用される 単一のファイルベースのスタンドアロン Apple Immersive Video 体験のために Apple Immersive Video Universal ファイル形式が用意されました Apple Immersive Video Universal (AIVU)ファイルは PresentationDescriptorが 多重化された 出力ビデオのコンテナで VenueDescriptorも メタデータとして含まれています

    AIVUファイルはvisionOSの Quick Lookを通して ファイルアプリから再生できます 自分のアプリでApple Immersive Videoをスタンドアロンファイルまたは HLSとして再生するには WWDC25の 「Support Immersive Video Playback in visionOS Apps」をご覧ください Apple Immersive Videoをストリーミング するアプリやサービスを構築したり Apple Immersive Videoコンテンツを 他者と共有したりする場合 AIVUファイルは 必要なメタデータを すべて含むコンテンツを簡単に取り込んだり 共有したりするための最良の方法です 新しいImmersive Media Support フレームワークとともに AVFoundationには Apple Immersive Videoの読み書きに 役立つ新しいAPIもあります AIVUファイルから VenueDescriptorを読み取るには 使い慣れたAVFoundation APIを 使ってアセットのメタデータを読み込みます VenueDescriptorとしてAIMEDataを 読み込むために特定のメタデータを フィルタリングするための新しい quickTimeMetadataAIMEData識別子があります PresentationDescriptorの メタデータを読み取るには ビデオフレームの各プレゼンテーション タイムスタンプとタイミングを合わせた メタデータグループを取得します quickTimeMetadataPresentation ImmersiveMedia識別子に基づく フィルタリングを行い その値をプレゼンテーション 記述子の型にデコードします また タイムドメタデータグループの 取得方法の詳細については AVFoundationのAVPlayerItem MetadataOutput APIをご覧ください Apple Immersive Videoを作成するには 制作ツールのためであれ ノンリニア編集ソフトからの 出力であれ 独自のAIVUファイルを 作成できます Apple Immersive Videoを作成する際 いくつか重要なことがあります ビデオアセット投影の種類には AppleImmersiveVideoを 使用する必要があります この投影の種類はApple Immersive Video専用のパラメトリックな種類として 定義されているため 投影を取得する方法がわかっています また AVAssetWriterを使用し VenueDescriptorと PresentationCommandの値を ビデオアセットのメタデータに 書き込む必要があります VenueDescriptorを使用して AIMEDataを取得し AIMEData識別子を使用して AVMetadataItemに格納します PresentationCommandsについては PresentationDescriptorのreaderを使って 特定の時間のコマンドを取得します 先ほど述べたpresentation 識別子を使用して ビデオフレームバッファの指定された時間と 期間に一致する 時間指定された AVMetadataItemを作成します AIVUファイルを作成したら Immersive Media Support フレームワークで AIVUValidatorの validate関数を使用して検証できます 検証に関する問題が発生した場合は エラーがスローされ 有効な場合はtrueが返されます AVAssetWriterをAIVUファイルの 書き込みに使用する方法の詳細については 「Authoring Apple Immersive Video」 サンプルプロジェクトを ご参照ください Apple Immersiveコンテンツを公開するには HLSセグメンテーションを使用して ビデオをアプリケーションに 直接ストリーミングします Apple Vision Proでは MV-HEVCレンダリングができます 推奨解像度は片眼あたり4320×4320 毎秒90フレームで P3-D65-PQ色空間と Apple空間オーディオを使用します これについてはこのビデオの後半で説明します Apple Immersive Videoの セグメンテーションに推奨される階層は 平均帯域幅が毎秒最小25〜100メガビット ピーク時は毎秒50〜150メガビットです 独自の階層を構築する場合は 品質とサイズのトレードオフを 考慮することが大切です 同じ解像度とフレームレートを 維持し続ける必要があります HLSプレイリストを作成する際は VenueDescriptorをAIMEDataとして 含める必要があります HLSプレイリストと共にファイルに格納し Apple Vision Proがコンテンツを 正しくレンダリングできるようにします AIMEファイルを作成するには save関数を使用してVenueDescriptor オブジェクトを保存し そのAIMEファイルを HLSプレイリストにコピーします QuickTimeファイルを セグメント化する際には メタデータトラックを ビデオセグメントと一緒に保持して Presentation Descriptorコマンドを 保持することが重要です HLSマルチバリアントプレイリストには 注意すべき重要なタグが いくつかあります Apple Immersive Videoは バージョン12以降が必要です AIMEファイルをポイントする 撮影場所記述データID フルイマーシブのコンテンツタイプ APACオーディオを使用することに加えて (これはビデオの後半で説明します) 必須ビデオレイアウトは ステレオビデオで Apple Immersive Video プロジェクションを使用します Immersive Media Supportフレームワークの もう1つの新しい重要なAPIは ImmersiveMediaRemotePreviewSenderと Receiverです 重要なのは このプレビュー方法は Apple Immersive Videoの低ビットレート パフォーマンスのみをサポートすることです また 素早くプレビューしたいとき 完全な ビデオファイルの処理が済んでいないときは 編集ワークフローで使用する必要があります 例としては ビデオ編集中にApple Vision Proで コンテンツを表示することです これらのAPIは Apple Immersive VideoフレームをMacから Apple Vision Proに送信します ImmersiveMediaRemotePreviewSenderと Receiverで Immersive Videoフレームを1つまたは 複数のレシーバに送信できます カスタムコンポジタを使用することで visionOSアプリでの ライブプレビューが可能になります 詳細については Immersive Media Supportのドキュメントをご覧ください 空間オーディオは 魅力的な イマーシブ体験の制作について考えるとき ビデオと同じくらい重要です Apple Spatial Audio Format(ASAF) と呼ばれる 空間オーディオの 新しいフォーマットを作成しました ASAFは制作現場で使用され 真にイマーシブなオーディオ体験を創造します Apple Positional Audio Codec(APAC)は このオーディオ形式を配信用に エンコードするために使用されます ASAFは オーディオの レンダリングに音響的な手掛かりを使用して 真に外部化されたオーディオ体験を実現します これは 新しいメタデータとリニアPCM Appleプラットフォームに組み込まれた 強力な新しい空間レンダラで構成されます 数多くの点音源と 高解像度の音響シーン つまり高次のアンビソニックスにより 高解像度の空間オーディオを生成します レンダリングされたオーディオは 完全に適応型で オブジェクトの 位置と向き リスナーの 位置と向きに合わせて 変化します どれもベイクされていません ASAFの音は あらゆる方向から どの位置からも どんな距離からも聞こえてきます ASAFは ブロードキャスト WAVEファイルに含まれ リニアPCM信号と メタデータと共に運ばれます 一般的に ASAFは制作現場で使用されます ASAFオーディオをストリーミングするには そのオーディオをmp4 APACファイルとして エンコードする必要があります APACはASAFを効率的に配信します すべてのApple Immersive Video体験には APACが必要です APAC再生は watchOSを除くすべての Appleプラットフォームで利用でき チャネル オブジェクト 高次アンビソニックス ダイアログ バイノーラルオーディオ 対話型要素 拡張可能なメタデータの プロビジョニングをサポートします このコーデックの効率性により 毎秒64キロビットの低ビットレートでの イマーシブな空間体験が可能になります HTTP Live Streamingで 空間オーディオを配信するには オーディオチャンネル情報と共に メディアタグを含めて APACをストリーム情報タグで オーディオ コーデックとして指定する必要があります HLSの新機能について 特にAPACオーディオのサポートについては HLSの新機能の記事をご参照ください ASAFコンテンツは ユーザーごとの ライセンスで利用可能な AppleのPro Toolsプラグイン またはBlackmagic DesignのDaVinci Resolve Studio Editorを使用して作成し APACにエンコードできます このセッションでは Apple Immersive Videoを特徴づける メタデータの原理 そして Immersive Media Supportフレームワークと 空間オーディオで 可能になった メタデータの読み書きの方法について 取り上げました アプリを拡張してApple Immersive Videoと 空間オーディオ機能を追加し 真のイマーシブ体験をバックアップしましょう visionOS向けのその他のイマーシブ ビデオフォーマットの詳細については 「Learn About the Apple Projected Media Profile」を ご覧ください Apple Immersive Videoの 再生方法については WWDC25の 「Support Immersive Video Playback in visionOS apps」をご覧ください 私はApple Immersive Videoを 見るのが大好きです みなさんが さらに多くの体験を 創造するのを楽しみにしています Apple Immersive Video Universal ファイルを送ってください 私も見てみたいです ありがとう

    • 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)

Developer Footer

  • ビデオ
  • WWDC25
  • Apple Immersive Videoテクノロジーについて
  • メニューを開く メニューを閉じる
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    メニューを開く メニューを閉じる
    • アクセシビリティ
    • アクセサリ
    • App Extension
    • App Store
    • オーディオとビデオ(英語)
    • 拡張現実
    • デザイン
    • 配信
    • 教育
    • フォント(英語)
    • ゲーム
    • ヘルスケアとフィットネス
    • アプリ内課金
    • ローカリゼーション
    • マップと位置情報
    • 機械学習とAI
    • オープンソース(英語)
    • セキュリティ
    • SafariとWeb(英語)
    メニューを開く メニューを閉じる
    • 英語ドキュメント(完全版)
    • 日本語ドキュメント(一部トピック)
    • チュートリアル
    • ダウンロード(英語)
    • フォーラム(英語)
    • ビデオ
    Open Menu Close Menu
    • サポートドキュメント
    • お問い合わせ
    • バグ報告
    • システム状況(英語)
    メニューを開く メニューを閉じる
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles(英語)
    • フィードバックアシスタント
    メニューを開く メニューを閉じる
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program(英語)
    • News Partner Program(英語)
    • Video Partner Program(英語)
    • セキュリティ報奨金プログラム(英語)
    • Security Research Device Program(英語)
    Open Menu Close Menu
    • Appleに相談
    • Apple Developer Center
    • App Store Awards(英語)
    • Apple Design Awards
    • Apple Developer Academy(英語)
    • WWDC
    Apple Developerアプリを入手する
    Copyright © 2025 Apple Inc. All rights reserved.
    利用規約 プライバシーポリシー 契約とガイドライン