「Afconvertコマンド」の版間の差分
Administrator (トーク | 投稿記録) 編集の要約なし |
|||
| (他の1人の利用者による、間の1版が非表示) | |||
| 17行目: | 17行目: | ||
===複数ファイルを一括で変換する=== | ===複数ファイルを一括で変換する=== | ||
[[findコマンド]]と[[xargsコマンド]]で簡単に実現できる。 | |||
findコマンドの-print0とxargsコマンドの-0は空白文字の処理に関するものなので絶対に省略してはならない。 | findコマンドの-print0とxargsコマンドの-0は空白文字の処理に関するものなので絶対に省略してはならない。 | ||
<source lang="bash"> | <source lang="bash"> | ||
| 36行目: | 36行目: | ||
*[[Xamarin.Mac/効果音を再生する]] | *[[Xamarin.Mac/効果音を再生する]] | ||
[[category: macOS]] | |||
2025年3月10日 (月) 02:11時点における最新版
afconvertコマンドとは、Mac OS Xに搭載されているオーディオファイルを各種フォーマットに変換するコマンドである。 語源は「Audio File Convert」とそのままである。
概要[編集 | ソースを編集]
万能である。 しかしながら、この御時世に一般人がオーディオファイルのフォーマットを変換したい場面などほとんどないと思われる。 右を見てを左を見てもiTunesで全自動である。
CoreAudioフォーマットに変換する[編集 | ソースを編集]
Xamarin.MacやXamarin.iOSなどでAVFoundationのAVAudioPlayerを使い効果音を多重再生したい場合はcafファイル(Apple CoreAudio フォーマット)を使う必要があるため、iOSアプリを作っているプログラマには必須コマンドとなっている。他の用途で使っている奴は見たことがないくらい、この用途でばかり使われている。
$ afconvert -f caff -d ima4 入力ファイル [出力ファイル]
出力ファイルを省略すると入力ファイルと同名の拡張子違いのファイルが生成される。
複数ファイルを一括で変換する[編集 | ソースを編集]
findコマンドとxargsコマンドで簡単に実現できる。 findコマンドの-print0とxargsコマンドの-0は空白文字の処理に関するものなので絶対に省略してはならない。
$ find . -name "*.mp3" -print0 |xargs -0 -I {} afconvert -f caff -d ima4 {}
複数ファイルを並列で変換する[編集 | ソースを編集]
マルチコア全盛の御時世にxargsを使うのだから並列実行させよう。
$ find . -name "*.mp3" -print0 |xargs -0 -L 1 -P 8 -I {} afconvert -f caff -d ima4 {}
コア数の2倍くらいが一番パフォーマンスが出るようだ。 最近のPCは桁違いに速いので余程巨大なファイルを大量に変換するのでなければほとんど一瞬で終わるので、キーボードを叩いている時間の方が長くなる恐れがある点に注意する必要がある。