個人開発2026.07.19

Logic Proで作ったBGMをGodot用のOGGへ変換する方法【FFmpeg・Vorbis・libvorbisの違いも解説】

Logic Proで作ったBGMをGodot用のOGGへ変換する方法【FFmpeg・Vorbis・libvorbisの違いも解説】

Logic Proで書き出したWAVをFFmpegでOgg Vorbisへ変換し、Godotで再生できるまでに試したコマンドとエラーの原因をまとめます。

SPONSORED

ゲーム制作を進める中で、Logic Proで作成したBGMをGodotへ取り込みたいと思い、OGG形式へ変換してみました。

調べてみると「FFmpegで変換すればOK」と書かれている記事が多いのですが、実際にやってみるとエラーが発生。

今回は、私の環境で発生した原因と解決方法、さらに「Vorbis」「libvorbis」の違いをまとめます。FFmpegで利用できるエンコーダはビルド構成によって異なるため、同じコマンドを試す前に自分の環境を確認してください。


1. Godot用BGMにOgg Vorbisを選んだ理由

Godotは以下のような音声ファイルを扱えます。

  • WAV
  • OGG Vorbis
  • MP3

GodotはWAV、Ogg Vorbis、MP3をインポートできます。今回は、WAVよりファイルサイズを抑えやすく、音楽や長い音声の選択肢として公式ドキュメントでも案内されているOgg Vorbisを選びました。

理由は以下の通りです。

  • ファイルサイズが小さい
  • Godotが対応している
  • ループ設定をGodotのインポート画面で調整できる

一方、Ogg VorbisはWAVより再生時のCPU負荷が高くなります。短い効果音や同時再生数が多い用途ではWAVも候補になるため、用途に応じて選びます。


2. FFmpegと利用できるエンコーダを確認する

ターミナルで次のコマンドを実行します。

ffmpeg -version

バージョン情報が表示されればインストール済みです。

Homebrewを利用していて、FFmpegが未導入なら次のコマンドでインストールできます。

brew install ffmpeg

インストール方法や含まれるライブラリは時期によって変わります。続けて、利用できるVorbisエンコーダを確認します。

ffmpeg -encoders | grep vorbis

3. libvorbisで変換を試す

一般的によく紹介されているのがこちら。

ffmpeg -i loop_theme_test.wav -c:a libvorbis -q:a 5 loop_theme_test.ogg

ところが実際には、

Unknown encoder 'libvorbis'

というエラーになりました。


私の環境では、次のエラーが表示されました。

FFmpegの設定を確認すると、

--enable-libopus
--enable-libmp3lame

などは有効になっていましたが、

--enable-libvorbis

がありませんでした。

ffmpeg -versionに表示される構成を確認すると、--enable-libvorbisがありませんでした。つまり、今回使用したFFmpegには、

libvorbisエンコーダが含まれていなかった

ということです。これは当時の私の環境での結果であり、現在のHomebrew版を含むすべてのFFmpegに当てはまるわけではありません。


4. FFmpeg内蔵Vorbisで変換する

そこでFFmpeg内蔵のVorbisエンコーダを使ってみました。

ffmpeg -i loop_theme_test.wav -c:a vorbis -q:a 5 loop_theme_test.ogg

すると今度は、

The encoder 'vorbis' is experimental

というエラー。


使用したバージョンではFFmpeg内蔵VorbisがExperimental扱いだったため、

-strict -2

を追加する必要があります。

最終的に成功したコマンドはこちら。

ffmpeg -i loop_theme_test.wav -c:a vorbis -q:a 5 -strict -2 loop_theme_test.ogg

これで正常にOGGファイルが生成され、Godotでも問題なく再生できました。


5. 生成したOGGを確認する

ファイルができたか確認。

ls -lh loop_theme_test.ogg

再生確認。

ffplay loop_theme_test.ogg

ファイルが生成され、再生できることを確認します。さらにGodotへ読み込み、意図した音量・ループ・音質になっているかも確認してください。


6. Vorbisとlibvorbisの違い

変換できたものの、

「Vorbisとlibvorbisって何が違うの?」

という疑問も出てきました。

実は、この2つは少し意味が違います。


Vorbisとは

Vorbisは音声圧縮方式(コーデック)の名前です。

例えば、

  • MP3
  • AAC
  • Opus
  • Vorbis

と同じ仲間になります。

一方で、

Oggは音声などを格納するコンテナ形式です。

つまり、

loop_theme_test.ogg

というファイルは、

OGG
└─ Vorbisで圧縮された音声

という構造になっています。


libvorbisとは

libvorbisは

Xiph.Orgが提供するVorbisの参照実装ライブラリ

です。

昔から定番で、

-c:a libvorbis

がよく使われています。

FFmpegからは外部ライブラリを利用するエンコーダとして扱われ、ビルド時に有効化されている場合に使えます。


FFmpegのvorbisエンコーダとは

こちらは

FFmpegが独自に実装している

内蔵Vorbisエンコーダ

です。

コマンドでは

-c:a vorbis

になります。


音質差は実際のファイルで確認する

エンコーダや品質設定、音源によって結果は変わります。今回作成した約1分のBGMを私が聞いた範囲では、気になる違いは感じませんでした。ただし、一般的な音質差として断定はせず、実際に使う音源を同じ条件で変換して比較するのが確実です。


ファイルサイズも条件で変わる

ファイルサイズも、エンコーダ、品質設定、曲の内容によって変わります。今回の結果だけで一定の差とは言えないため、ls -lhなどで生成物を比較します。


Godotへ読み込む前に形式を確認する

Godotから見れば、

loop_theme_test.ogg

として読み込まれるだけです。

内部が

  • libvorbis
  • FFmpeg native Vorbis

どちらのエンコーダで作成した場合も、中身がOggコンテナのVorbis音声で、Godotが正常に読み込めることを確認します。.ogg拡張子でも別の音声コーデックが入っている場合があるため、拡張子だけでは判断できません。


7. 今回採用した開発中の運用

今回の制作では、次の運用にしました。

開発中

  • Logic Pro → WAV書き出し
  • Godotへそのまま取り込み

完成版

  • WAV → OGG Vorbisへ変換
  • 配布版に組み込む

開発中は何度も修正するため、私の作業ではWAVのままの方が手間を減らせました。

配布前にまとめてOgg Vorbisへ変換し、容量、音質、ループを確認します。プロジェクトの規模や対象端末によって適した形式は異なります。


8. まとめ

今回学んだポイントは次の通りです。

  • GodotはWAV、Ogg Vorbis、MP3に対応している
  • FFmpegで使えるエンコーダはffmpeg -encodersで確認する
  • 私の環境ではlibvorbisがなく、内蔵vorbisを使った
  • 使用したバージョンではExperimentalエラーに-strict -2が必要だった
  • 変換後はFFmpegだけでなくGodotでも再生、音質、ループを確認する

ゲーム制作では「変換するだけ」と思っていた工程でも、実際にやってみると意外とハマるポイントがありました。

同じエラーで困っている方の参考になれば幸いです。