iPhoneアプリ開発のためのサウンドフォーマットまとめ

iPhoneのゲームを作成することになったため、音声ファイル再生の方法を調べたのですが、数多くのフォーマットがあり、どの形式で利用するのがいいか迷ってしまいました。

そこで、各フォーマットとその特徴をメモっておこうと思います。

なお、下記の表は AppleのiOS Developer Libraryから引用したものです。  

音声のデコード方式について

音を鳴らすのに、ハードウエアデコードを使うか、ソフトウエアデコードを使うかは同時に鳴らせる音声ファイルの数に影響します。

同時に再生されている各サウンドはひとつの「チャンネル」を使用しますが、ハードウエアチャンネルは一つしかないため、AACまたはMP3がハードウエアチャンネルで再生されている場合は、その他のファイルの音声を同時に鳴らそうとすると、ソフトウエアデコードされることになります。(つまり、ソフトウエアデコードできなかったiOS3.0以前は一緒に再生できない。)

そのため、複数の音声ファイルを、良いパフォーマンスで再生するには、linear PCM (非圧縮形式) かIMA4 (圧縮形式)を使うのが望ましいとこのとでした。

Audio playback formats and codecs
オーディオフォーマット ハードウエアデコード ソフトウエアデコード
AAC (MPEG-4 Advanced Audio Coding)   ○ iOS 3.0から○ 
 ALAC (Apple Lossless)  ○  iOS 3.0から○
 HE-AAC (MPEG-4 High Efficiency AAC)  ○
iLBC (internet Low Bitrate Codec, another format for speech)  ○ 
IMA4 (IMA/ADPCM)   ○
 Linear PCM (uncompressed, linear pulse-code modulation)  ○
 MP3 (MPEG-1 audio layer 3) ○  iOS 3.0から○ 
 µ-law and a-law ○ 

Multimedia Programming Guide: Using Audio.より引用

ちなみに、AAC,MP3は高音質のサウンドに、linear PCM,IMA4は比較的小さなサウンドに利用されることが多いようです。

 

音声のファイルフォーマットについて

さて、コーデックの特徴がわかったところで、ファイルフォーマットについてもメモしておこうと思います。どれも3文字の拡張子なので、どっちがどっちかわからなくなってきてしまうんですよね。

ファイルフォーマットは以下の3つのどれかが使われることが多いです。

*.aif (*.aiff)・・・Appleが開発した音楽ファイル形式。基本的に非圧縮。

*.wav ・・・Microsoftが開発した音楽ファイル形式。基本的に非圧縮。

*.caf・・・コア・オーディオ・ファイルという、AppleがiOS / Mac OS用に拡張した音楽ファイル形式。フォーマットというよりはコンテナに近いらしい。コンテナに圧縮してまとめてある。そのため、上記2つに比較して、ファイルサイズが小さい。

iPhoneでの開発に利用する場合は、.cafを利用したほうが良いと思います。

 

サウンドのフォーマット変換方法について

サウンドのフォーマット変換にはafconvertコマンドを利用します。

【コマンド内容】

/usr/bin/afconvert -f ファイルフォーマット -d コーデック {入力ファイル} {出力ファイル}

【例】

wavファイルから、16ビット、リトルエンディアン、リニアPCMのcafファイルを生成する場合

/usr/bin/afconvert -f caff -d LEI16 input.wav output.caf

wavファイルから、IMA4のcafファイルを生成する場合

/usr/bin/afconvert -f caff -d ima4@22050 -c 1 input.wav output.caf

 

注意点

上記に渡す「-f caff」ですが、「caf」ではないことに気をつけてください。私も、最初「caf」と入力してしまっていて、

Error: ExtAudioFileCreateWithURL failed ('typ?')

のエラーが出てしまっていました。拡張子ではなく、ファイルフォーマット形式なので、「caff」が正しいのですね。

 



こんな記事も関係あるかも。読んでみてね。

One Response to “iPhoneアプリ開発のためのサウンドフォーマットまとめ”

  1. […] iPhoneアプリ開発のためのサウンドフォーマットまとめ | Pa-kun plus idea […]

コメントを残す

サブコンテンツ

このページの先頭へ