全天球動画にAmbisonics再生

360度動画のサラウンド再生について勉強する機会があったので、まとめておきます。

Ambisonics アンビソニック 概要

マイク

4chのマイクを正四面体の配置に並べて、頭をぐるぐるまわしてパンニングが変わっても再生できるって技術です。

Ambisonicsの概要はこちらが非常にわかりやすいです。
- 徳井直生さん 360度動画のためのAmbisonicsマイクを開発中! 「百見は一聞に如かず」
- サラウンド寺子屋 AMBISONICの原理と制作の実際 1992年 Ambisonic 資料より

実はYoutubeでも、PC版Chrome, Android版で見るとこの方式のオーディオにも対応していました。
Spatial Audio対応の動画リスト

Youtubeに対応動画をアップロードする方法はこちらにまとまってます。
またAdobe PremiereにVSTプラグインを入れて動画と一緒に書き出すこともできるみたい。

ただ、ただ録音するだけではなく、あとから、効果音や、ピンマイクの音声をVR動画上に配置したいこともあるとおもいます。
そのようの編集には最近Facebookに買収されたこれが良さげ。太っ腹の無料公開。Facebook 360 Spatial Workstation
VSTプラグインで音を配置できて、Ambisonicsの書き出しにも対応しているぽいです。

有料プラグインの中には動画の中に音を配置するかのように使えるProTools用の360panというプラグインもあった

Youtubeとかで対応しているA-Format、B-Formatって?

結構躓くところが、正四面体のマイクで録音した4chそのままは、A-Formatと言われて、そのままではYoutubeへアップロードできないです。
Youtubeへは、1次フォーマット a.k.a. B-Formatへ変換する必要があるらしい

B-Formatの内容

チャンネル 内容
W 位相差のないモノラル成分
X Wに対する左右差成分
Y 前後差成分
Z 上下差成分

ポイントは、XYZは、差分成分のみということだなと。
こうすることで、4ch再生対応していない場合は、Wのみ再生すればよくなるみたい。
更にBGMを載せたいってときにWだけに乗せれば良くなったりするんでないでしょか?

4分割より細かい粒度で再現できる高次フォーマットもあり、Youtubeで対応しているのは図の2段目までということ。

Wikipediaより

動画

360度な映像をThetaなどで撮影してアップロード

YouTubeメタデータを対応させるには360 Video Metadata ダウンロードってソフトでメタデータをいれてアップロードすると、15分くらいの変換時間のち、ぐるぐる回ったりカードボードで見れる映像になったりします。

メモ: Youtubeから4k動画のダウンロード

youtube-dl -k -f 'bestvideo+bestaudio/best' "url"

で、mkvコンテナに動画4k mp4, 音声 4ch webmで入る。

mkvフォーマットとは? Matroska - Wikipedia

ffmpegで使いそうなコマンドメモ

結構めんどいのが、あまり4chオーディオはやらないだけあって、ffmpegを色々使うことに。ので使ったコマンドをメモ。

# 4chファイルを1chチャンネルごとに分割
ffmpeg -i sample.webm -map_channel 0.0.0 sample1.wav -map_channel 0.0.1 sample2.wav -map_channel 0.0.2 sample3.wav -map_channel 0.0.3 sample4.wav

# 4つのモノラルを、4chオーディオストリームへ合成
ffmpeg -i sample1.wav -i sample2.wav -i sample3.wav -i sample4.wav -filter_complex "[0:a][1:a][2:a][3:a]amerge=inputs=4[aout]" -map "[aout]" output.wav

# 動画と音をまとめる
ffmpeg -i sample.mp4 -i sample.wav -c:v copy -c:a aac -strict experimental output.mp4

Unityでの再生もやったのですが、長くなったのでひとまずここまでで。