flac2all は、高品質の FLAC ファイルをほとんどすべての最新のオーディオ フォーマットに変換することができるシンプルなユーティリティです。ffmpeg とは異なり、このユーティリティは、FLAC オーディオのソート、タグ付け、およびエンコードのプロセスを自動化します。すべてのオーディオトランスコードのニーズのためのフロントエンドとして機能する、この非常に多機能なプログラムの使用方法をご覧ください。

なぜ flac2all を使うのか

そのコアで、flac2all はラッパーとスケジューリングプログラムの両方です。それは、FLACファイルのリストを受け取り、トランスコード処理をキューに入れ、管理するために、様々なコーデックを使用します。

このアプローチの一つの利点は、flac2allが単一のエンコーダーに依存しないことです。つまり、あなたが使いたいと思うかもしれない新しいフォーマットに、簡単にプログラムを適応させることができるということです。たとえば、通常のAACと一緒に、カスタムのFraunhofer FDK AACエンコーダをインストールすることができます。

最後に、flac2allはあなたのFLACコレクションのフォルダ構造を保持するので、このプログラムを使用している間、アーカイブのディレクトリをやり直す必要はないのです。これらの機能により、flac2all は、あなたの FLAC コレクションを異なるフォーマットで素早く簡単に再作成する方法を探している場合、便利なユーティリティとなります。

flac2all のインストール

flac2all をインストールする前に、インストール後に衝突が起きないように、依存関係を全て取得することが重要です。

sudo apt install python3 flac python3-pip python3-zmq python3-notcurses lame opus-tools

次に、Python 固有のパッケージマネージャである pip を使って flac2all をダウンロードし、追加のソフトウエアをインストールします。pipを使用するには、以下のコマンドを実行します。

pip3 install --user flac2all

これは、現在のユーザーの".local “ディレクトリにflac2allをインストールします。そのため、マルチユーザーシステムを使用している場合、他のユーザーはプログラムを実行することができません。

flac2allを実行するには、".bash_profile “ファイルに次の行を追加することによって、あなたのマシンのPATH変数に”.local “ディレクトリを追加します。

PATH=$PATH:/home/$USER/.local/bin/を追加します。
エクスポート PATH

最後に、再起動するか、現在のセッションからログアウトして、新しい設定を適用します。その後、flac2all -h を実行して、プログラムが正しくインストールされていることを確認できます。

flac2all を使ってオーディオをトランスコードする

flac2allの開発者はプログラムをできるだけシンプルにするように設計しました。例えば、FLAC ディレクトリを1つのフォーマットにトランスコードするための構文は、以下のようになります。

flac2all mp3 -o ./output ./royalty-free

複数のフォーマットへのトランスコード

flac2all を使って、ファイルを複数のフォーマットに並行してトランスコードすることもできます。これは、アーカイブを異なるフォーマットを要求するプレーヤーに転送したい場合に便利です。

例えば、私の “royalty-free” フォルダを MP3 と Opus の両方にトランスコードするために、次のコマンドを実行することができます。

flac2all mp3,opus -o ./output ./royalty-free

複数フォーマットのトランスコードは、単一フォーマットのトランスコードよりも時間がかかることに注意してください。なぜなら、flac2all はディレクトリ内の各ファイルを、あなたが指定したすべてのフォーマットでエンコードするからです。私の場合、MP3とAACをトランスコードすると、MP3だけをトランスコードするよりも2倍の時間がかかります。

カスタムのトランスコードジョブを作成する

単純なトランスコードを作成することとは別に、flac2allでエンコーダの動作を微調整することが可能です。これは、アーカイブのコピーを特定のオーディオ品質にしたい場合に特に便利です。例えば、次のコマンドを見てください。

flac2all mp3 --lame-options='b 320' -o ./output ./royalty-free

このコマンドは、LAME MP3エンコーダを使って、私の「royalty-free」フォルダを一定のビットレート320kでトランスコードするようプログラムに指示します。

また、マルチフォーマットトランスコードのカスタムジョブを作成することもできます。例えば、次のコマンドはflac2allにMP3とOpusのカスタムトランスコードを作成するよう指示します。

flac2all mp3,opus --opus-options='downmix-mono' --lame-options='b 320' -o ./output ./royalty-free

flac2all トランスコード クラスタの作成

flac2all を1台のコンピュータで使うこともできますが、複数のシステムにプログラムを広げることも可能です - トランスコード処理をスピードアップするための実用的なソリューションです。次のリソースが準備されていることを確認してください。

これらの要因を知った上で、このチュートリアルでは、2台のUbuntu 22.04マシン間で小さなflac2allクラスターを作成することに焦点を当てます。

ネットワークマウントのセットアップ

開始するために、ネットワークストレージのマウントを作成します。これには、使いやすく、ほとんどのLinuxディストリビューションで利用可能なSSHFSを使用するつもりです。

まず、使用するすべてのマシンに SSHFS をインストールします。

sudo apt install ssh sshfs

次に、SSHFSのマウント先となるフォルダを作成します。ワーカーマシンのホームディレクトリに「royalty-free」フォルダを作成します。

mkdir /home/$USER/royalty-free

次に、「royalty-free」ディレクトリを以下のコマンドで各ワーカーマシンにマウントしてください。

sshfs -o allow_other,default_permissions $USER@192.168.68.10:/home/$USER/royalty-free /home/$USER/royalty-free

flac2all クラスタの開始

これで、マスタープロセスを実行して、flac2allに -m-C フラグの両方を追加することで、トランスコードクラスターを開始することができます。

例えば、メインマシンで以下のコマンドを実行して、マスタープロセスを作成します。

flac2all lame,aac -m -C --lame-options='b 320' -o /home/$USER/output /home/$USER/royalty-free

通常のflac2allとは異なり、マスタープロセスを作成してもトランスコードセッションは開始されません。ファイルをトランスコードするためには、ワーカーマシン上で以下のコマンドを実行して、ワーカーをマスタープロセスに接続する必要もあります。

flac2all_worker 192.168.68.10

一旦行われると、ワーカークライアントはマスタープログラムに接続するヘッドレスプロセスを作成します。その後、待機している一握りのワーカーを見つけると、flac2allはすぐに開始します。

よくある質問

flac2all が音声ファイルを処理した後、終了しません。どうすればこの問題を解決できますか?

これは flac2all と Python の依存関係に衝突があるときに起こります。flac2allとその依存関係の変更を反映させるために、インストールを更新することによって、それを解決してください。pip install –user –upgrade flac2all` を実行し、flac2all をアップグレードしてください。

flac2all が “FileNotFound” エラーを投げています。私のインストールは壊れているのでしょうか?

いいえ!この問題は、プログラムがトランスコードしたいフォーマットのエンコーダを検出できないときに発生します。

例えば、Opusエンコーダなしでflac2all opus [...] を実行すると、“FileNotFound” エラーが発生します。この問題は、ffmpeg をインストールすることで解決できます。これは、一般的なオーディオエンコーダのほとんどをインストールすることができる、総合的なプログラムです。sudo apt install ffmpeg` を実行して、ffmpeg をシステムに追加してください。

ワーカープロセスが SSHFS マウントにあるメディアを見つけられませんでした。flac2all が壊れているのでしょうか?

いいえ。これは通常、マスタープロセスとそのワーカーの間のディレクトリの不一致によって起こります。トランスコードクラスターが動作することを確認するには、メディアフォルダーとSSHFSマウントのルートの両方で pwd を実行して、各マシン間のファイルパスが同じであることを確認します。

画像引用:Unsplash と Wikimedia Commons すべての改変とスクリーンショットは Ramces Red によるものです。

Akira
Akiraは情熱的なゲーマーであり、製品レビュアーです。ゲームをしていないときは、最新のゲーミングアクセサリーを試したり、製品のレビューをしていることが多い。彼の分かりやすいスタイルは、ゲーマーが自分のニーズに最も適した製品を簡単に判断できるようにするものです。また、技術的な問題にも精通しており、その解決方法も知っている。