Saturday, June 22, 2019

Audioファイルを取り扱う




CDの音楽を取り込むのにApple Lossless形式を用いていたが,現在使用しているカーナビは
Apple Lossless形式を再生することができない。スマートフォンのBluetoothで飛ばせばいい
じゃんというが,普段はドライバーなので運転中にスマートフォンを操作するのは難しい。
できれば,sdカードに保存しておいてジュークボックスみたいに音楽を再生していきたい。


まずは変換対象となるaudioファイルをリストアップすることから始めた。
Python3のffmpeg-python packageffmpeg.probe を使ってaudioファイルかどうかを判定する。


for fname in file_list:
   full_path = os.path.join(dir_path, fname)
   try:
       js = ffmpeg.probe(full_path)
       if js['streams'][0]['codec_type'] == 'audio':
           self._filelists.append({ "path" : full_path,
                                    "probe" : js })
   except ffmpeg._run.Error:
       pass

これで自分が所持しているaudioファイルのリスト,およびcodecを調べることができた。

次はApple Losslessファイルだけを抽出し,flac形式に変換してみる。


ここまでの実装は github 上にpushした。