Edited at

iPhone で利用できる着信音を FFmpeg で作成する方法

More than 3 years have passed since last update.

5年程前から今まで、ずっと Android を使い続けていました。

つい先日、 iPhone 6s を契約し、 Android では当然のように出来る、任意のオーディオファイルを着信音に設定する事が iOS では出来ないと知り、フィーチャーフォン時代を思い出して懐かしくなりました。

Android では File Commander 等のファイルマネージャーアプリを仲介する事で、 Android 上で再生できるほぼ全てのオーディオファイルを着信音に設定できます。

しかし、 2015年12月現在に於いて iOS では着信音用にファイル形式を AAC へ変換し、拡張子を .m4r にして PC から同期しなければ任意の曲を着信音にすることは出来ません。更に40秒以下という再生時間の制限もあります。

そこで、 FFmpeg を用いて一瞬で変換しましょう。


FFmpeg のダウンロード

https://www.ffmpeg.org/download.html


使い方

これで、先頭から30秒間を切り出して、ビットレートが 256kbps、サンプリングレートが 44.1kHz の AAC 形式へ変換できます。

ffmpeg -i music.mp3 -ss 0 -t 40 -vn -ar 44.1k -ac 2 -b:a 256k -c:a libfaac -f mp4 music.m4r

-c:a libfaac は省略可能で、 -ar 44.1k も元のサンプリングレートのままで良い場合は省略できます。


各オプションの説明

オプション
説明

-f
ファイル形式を指定して入力または出力します。例では入力ファイルの形式を指定しています。基本的に自動でファイル形式を判別しますが、自動で判別できない場合に指定します。
例: ffmpeg -f mp3 -i music.mp3 music.aac

-i
入力ファイルを指定します。
例: ffmpeg -i music.mp3 music.aac

-t
時間[秒]を指定して切り出します。
例: ffmpeg -i music.mp3 -t 30 music.aac

-ss
切り出す開始時間を指定します。
例: ffmpeg -i music.mp3 -ss 10 music.aac

-vn
入力ファイルが動画の場合に動画を無効化します。
例: ffmpeg -i video.mp4 -vn music.aac

-ar
サンプリングレートを指定します。
例: ffmpeg -i music.mp3 -ar 44.1k music.aac

-codec:a
コーデックを指定します。
例: ffmpeg -i music.mp3 -codec:a libfaac music.aac

-c:a

-codec:a のエイリアスです。
例: ffmpeg -i music.mp3 -c:a libfaac music.aac

-acodec

-codec:a のエイリアスです。
例: ffmpeg -i music.mp3 -acodec libfaac music.aac


iTunes で転送する

次の写真のように、 iPhone の着信音の所へドラッグ&ドロップしても上手く転送できません。

一見転送できているように見えますが、グレーアウトされていて再生できません。


1. 次のように、オプションにある "音楽とビデオを手動で管理" のチェックボックスを外します。


2. 着信音を同期する設定にします。


3. 左上から着信音を選択し、変換した拡張子が .m4r のファイルをドラッグ&ドロップします。


4. デバイス画面に戻り、右下の同期ボタンを押すと iPhone に転送されます。


5. 次のように再生できれば転送成功です。


転送失敗例

再生時間が長すぎる(40秒を越える)場合、転送されません。


着信音の設定方法


1. 設定を開いてサウンドを選択


2. 着信音を選択


3. このように表示されます


参考