2016年9月29日木曜日

How to encode to m4a on Debian Jessie

車で音楽を聞くのに CD などから m4a を生成して USB メモリへ移している。車につけてる Pioneer のヘッドユニット DVH-P540 というは音楽ファイルとしては wma, mp3 もしくは aac (m4a) しか受け入れてくれなくて、wma を使う理由はない(windows持ってない)し、mp3 は音質的に許せないので m4a にしている。

今までは non-free の neroAacEnc というのを利用させてもらっていたのだが、手元が 64bit only な環境 (multiarch めんどくさくなってやめちゃった) ので neroAacEnc が動かなくなったのと、どうも本家でも公開止めたみたいなので、どうするかしばらく試行錯誤していた..

faac, ffmpeg やら libav-tools 試してみたけど、うまく m4a が作れなくて、試行錯誤の結果、次の方法を見つけた。

wav -> aac

まず cd などから音源を wav で取り出しておく。(この過程は割愛.. 個人的には jack コマンドで..)

aac に変換するには aac-enc コマンドを利用する。この aac-enc というのは


$ apt-cache show aac-enc
Package: aac-enc
Source: fdk-aac
Version: 0.1.3+20140816-2
Installed-Size: 705
Maintainer: Debian Multimedia Maintainers <pkg-multimedia-maintainers@lists.alioth.debian.org>
Architecture: amd64
Depends: libfdk-aac0 (= 0.1.3+20140816-2), libc6 (>= 2.4)
Description-en: Fraunhofer FDK AAC Codec Library - frontend binary
 The FDK AAC Codec Library For Android contains an encoder implementation
 of the Advanced Audio Coding (AAC) audio codec.
[...]
 Homepage: https://github.com/mstorsjo/fdk-aac
Section: non-free/sound
と言うもので、Android などで利用されるものを移植したもののようで高音質での aac 化が可能なようだ。

Section: non-free/sound なので、/etc/apt/sources.list で non-free セクションを明示的に許可してないと見つからないはず。

$ aac-enc -r 320000 examplemusic.wav examplemusic.aac

のように -r 320000 でビットレートを指定(車の DVH-P540の限界が 320k あるので)して aac へ変換する。

aac -> m4a

MP4Box というコマンドを利用する。これは gpac というパッケージに含まれている。section: graphics なので、キーワードがうまくハマらないと見つけにくいかもしれない。

$ MP4Box -add examplemusic.aac examplemusic.m4a -new

これで m4a ファイルが出来上がる。

0 件のコメント:

コメントを投稿