FLACファイルをLinuxのflac2allでトランスコードする方法

flac2allは、高品質のFLACファイルをほぼすべての現代的なオーディオフォーマットに変換できるシンプルなユーティリティです。ffmpegとは異なり、このユーティリティはFLACオーディオのソート、タグ付け、およびエンコーディングのプロセスを自動化します。flac2allはインストールが簡単で、使いやすいです。この多用途なプログラムを使用して、すべてのオーディオトランスコーディングニーズのフロントエンドとして機能する方法を学びましょう。
目次
- flac2allを使う理由
- flac2allのインストール
- flac2allを使用してオーディオをトランスコードする
- 複数のフォーマットへのトランスコーディング
- カスタムトランスコードジョブの作成
- flac2allトランスコードクラスターの作成
- ネットワークマウントの設定
- flac2allクラスターの開始
- よくある質問
関連記事: Linuxラップトップのバッテリー寿命を延ばす4つの方法
flac2allを使う理由
flac2allの本質は、ラッパーとスケジューリングプログラムの両方です。FLACファイルのリストを受け取り、さまざまなコーデックを使用してトランスコーディングプロセスをキューに入れ、管理します。
このアプローチの利点の1つは、flac2allが単一のエンコーダに依存しないことです。つまり、使用したい新しいフォーマットにプログラムを簡単に適応させることができます。たとえば、通常のAACと一緒にカスタムのFraunhofer FDK AACエンコーダをインストールできます。

最後に、flac2allはFLACコレクションのフォルダ構造を保持するため、プログラムを使用する際にアーカイブのディレクトリを再設定する必要がありません。これらの機能により、異なるフォーマットでFLACコレクションを再作成するための迅速かつ簡単な方法を探している方にとって、flac2allは便利なユーティリティです。
関連記事: su、sudo su、sudo -s、sudo -iの違い
flac2allのインストール
flac2allをインストールする前に、インストール後に競合が発生しないようにすべての依存関係を取得することが重要です:
sudo apt install python3 flac python3-pip python3-zmq python3-notcurses lame opus-tools
次に、pipを通じてflac2allをダウンロードします。pipは、追加ソフトウェアのインストールに使用できるPython専用のパッケージマネージャーです。次のコマンドを実行してpipを使用します:
pip3 install --user flac2allこれにより、flac2allが現在のユーザーの「.local」ディレクトリにインストールされます。したがって、マルチユーザーシステムを使用している場合、他のユーザーはこのプログラムを実行できません。

flac2allを実行するには、「.local」ディレクトリをマシンのPATH変数に追加し、次のコード行を「.bash_profile」ファイルに追加します:
PATH=$PATH:/home/$USER/.local/bin/
export PATH最後に、新しい設定を適用するために、現在のセッションを再起動するかログアウトしてください。その後、flac2all -hを実行してプログラムが正しくインストールされていることを確認できます。

flac2allを使用してオーディオをトランスコードする
flac2allの開発者は、プログラムをできるだけシンプルに設計しました。たとえば、FLACディレクトリを単一のフォーマットにトランスコードするための構文は次のようになります:
flac2all mp3 -o ./output ./royalty-free- 「flac2all」の直後の最初の要素は、トランスコードしたいフォーマットを示します。この例では、FLACフォルダをMP3に変換しています。
- 2番目の要素は、現在のトランスコードジョブのオプションを含んでいます。ここでは、
-oオプションがflac2allにMP3ファイルを「output」フォルダに送信するよう指示しています。 - 最後に、3番目の要素はFLACファイルのソースフォルダを示しています。この場合は「royalty-free」フォルダです。

関連記事: Linuxターミナルから画像をリサイズして最適化する方法
複数のフォーマットへのトランスコーディング
複数のフォーマットに並行してトランスコードするために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を単一のコンピュータで使用することもできますが、プログラムを複数のシステムに分散させることも可能です—これはトランスコーディングプロセスを加速するための実用的な解決策です。次のリソースを準備してください:
- 直接接続できる2台以上のマシン
- すべてのマシンでアクセスできるNAS(フラグメントプロセスは、データを処理するワーカークライアントを指示するだけです)
- マスタープロセスとワーカークライアントの間の信頼できるネットワーク接続
これらの要素を理解した上で、このチュートリアルは2台のUbuntu 22.04マシン間に小さなflac2allクラスターを作成することに焦点を当てます。
関連記事: LinuxでSSHを設定して使用する方法
ネットワークマウントの設定
最初に、ネットワークストレージマウントを作成します。このため、SSHFSを使用します。これは使いやすく、ほぼすべてのLinuxディストリビューションで利用可能です。
まず、使用したいすべてのマシンにSSHFSをインストールします:
sudo apt install ssh sshfs
次に、SSHFSがマウントするフォルダを作成します。ワーカー機械のホームディレクトリに「royalty-free」フォルダを作成します:
mkdir /home/$USER/royalty-free
次のコマンドを使用して、「royalty-free」ディレクトリを各ワーカーマシンにマウントします:
sshfs -o allow_other,default_permissions [email protected]:/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は待機しているワーカーが見つかるとすぐに開始されます。

関連記事: LinuxにDaVinci Resolveをダウンロードして設定する方法
よくある質問
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によるものです