Как перекодировать файлы FLAC с помощью flac2all в Linux

Transcode Audio Flac2all 00 Featured Image

flac2all — это простой инструмент, который позволяет преобразовывать качественные файлы FLAC в почти любой современный аудиоформат. В отличие от ffmpeg, этот инструмент автоматизирует процесс сортировки, тегирования и кодирования вашего аудио FLAC. flac2all легко установить и использовать. Узнайте, как пользоваться этой универсальной программой, которая может служить интерфейсом для всех ваших потребностей в транскодировании аудио.

Содержание

  • Почему использовать flac2all
  • Установка flac2all
  • Использование flac2all для транскодирования аудио
  • Транскодирование в несколько форматов
  • Создание пользовательских заданий по транскодированию
  • Создание кластера транскодирования flac2all
  • Настройка сетевого монтирования
  • Запуск кластера flac2all
  • Часто задаваемые вопросы

Также читайте: 4 способа увеличить время работы от батареи вашего ноутбука с Linux

Почему использовать flac2all

В своей основе flac2all является как оберткой, так и программой для планирования. Он берет список файлов FLAC и использует различные кодеки для постановки в очередь и управления процессом транскодирования.

Одним из преимуществ этого подхода является то, что flac2all не зависит от одного кодировщика, что означает, что вы можете легко адаптировать программу к любому новому формату, который вы захотите использовать. Например, вы можете установить пользовательский кодировщик Fraunhofer FDK AAC наряду с обычным AAC.

Transcode Audio Flac2all 04 Aac Custom Format Page

Наконец, flac2all также сохраняет структуру папок вашей коллекции FLAC, так что вам не нужно заново создавать каталог вашего архива при использовании этой программы. Эти функции делают flac2all удобным инструментом, если вы ищете быстрый и простой способ воссоздать вашу коллекцию FLAC в другом формате.

Также читайте: Различия между Su, Sudo Su, Sudo -s и Sudo -i

Установка flac2all

Перед установкой flac2all важно получить все его зависимости, чтобы гарантировать, что после установки не возникнет конфликтов:

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

Transcode Audio Flac2all 05 Install Dependencies

Следующее, что нужно сделать, это скачать flac2all через pip, специальный менеджер пакетов для Python, который вы можете использовать для установки дополнительного программного обеспечения. Выполните следующую команду, чтобы использовать pip:

pip3 install--user flac2all

Это установит flac2all в “локальную” директорию текущего пользователя. Таким образом, если вы находитесь в системе с несколькими пользователями, другие пользователи не смогут запустить программу.

Transcode Audio Flac2all 06 Install Flac2all Pip

Чтобы запустить flac2all, добавьте вашу “локальную” директорию в переменную PATH вашего компьютера, добавив следующую строку кода в ваш файл “.bash_profile”:

PATH=$PATH:/home/$USER/.local/bin/  
export PATH

Наконец, перезагрузите или выйдите из текущей сессии, чтобы применить новые настройки, после чего вы можете выполнить flac2all -h, чтобы подтвердить, что программа установлена правильно.

Transcode Audio Flac2all 07 Program Working Help

Использование flac2all для транскодирования аудио

Разработчик flac2all спроектировал программу так, чтобы она была как можно проще. Например, синтаксис для транскодирования директории FLAC в один формат выглядит так:

flac2all mp3 -o ./output ./royalty-free
  • Первый элемент после “flac2all” указывает на формат, в который вы хотите сделать транскодирование. В этом примере я преобразую свою папку FLAC в MP3.
  • Второй элемент содержит параметры для текущей работы по транскодированию. Здесь опция -o указывает flac2all отправить все MP3 файлы в папку “output”.
  • Наконец, третий элемент указывает исходную папку для ваших файлов FLAC. В моем случае это моя папка “royalty-free”.

Transcode Audio Flac2all 08 Single Transcode Working

Также читайте: Как изменить размер и оптимизировать изображения из терминала Linux

Транскодирование в несколько форматов

Вы также можете использовать flac2all для транскодирования файлов в несколько форматов параллельно, что может быть полезно, если вы хотите перенести свой архив на проигрыватели с разными требованиями к форматам.

Например, я могу выполнить следующую команду, чтобы транскодировать свою папку “royalty-free” в MP3 и Opus:

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

Обратите внимание, что транскодирование в несколько форматов займет больше времени, чем транскодирование в один формат, потому что flac2all будет кодировать каждый файл в вашей директории для каждого формата, который вы указали. В моем случае, транскодирование MP3 и AAC займет в два раза дольше, чем только транскодирование MP3.

Transcode Audio Flac2all 09 Multi Format Transcode

Создание пользовательских заданий по транскодированию

Помимо создания простых транскодов, возможно изменить поведение кодировщиков с помощью flac2all, что особенно полезно, если вы хотите, чтобы копия вашего архива имела определенное качество аудио. Посмотрите на следующую команду, например.

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

Эта команда говорит программе использовать кодировщик LAME MP3, чтобы транскодировать мою папку “royalty-free” на постоянную битрейт 320k.

Transcode Audio Flac2all 10 Custom Job Single Format Transcode

Вы также можете создавать пользовательские задания для многопоточного транскодирования. Например, следующая команда говорит flac2all создать пользовательское транскодирование с MP3 и Opus:

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

Transcode Audio Flac2all 11 Custom Job Multi Format Transcode

Создание кластера транскодирования flac2all

Хотя вы можете использовать flac2all на одном компьютере, также возможно распределить программу по нескольким системам — практическое решение для ускорения процесса транскодирования. Убедитесь, что у вас есть следующие ресурсы:

  • Две или более машины, которые могут напрямую соединяться друг с другом
  • NAS, к которому вы можете получить доступ со всех машин, поскольку процесс flac2all — мастер, только инструктирует своих клиентских рабочих обработать существующие данные
  • Надежное сетевое соединение между главным процессом и его клиентскими рабочими

Зная эти факторы, этот учебник сосредоточится на создании небольшого кластера flac2all между двумя машинами Ubuntu 22.04.

Также читайте: Как настроить и использовать SSH в Linux

Настройка сетевого монтирования

Создайте сетевое хранилище, чтобы начать. Для этого я собираюсь использовать SSHFS, так как это просто в использовании и доступно почти во всех дистрибутивах Linux.

Для начала установите SSHFS на всех машинах, которые вы собираетесь использовать:

sudo apt install ssh sshfs

Transcode Audio Flac2all 12 Install Cluster Dependencies

Следующим шагом создайте папку, в которую будет монтироваться SSHFS. Я создам папку “royalty-free” в домашней директории своей рабочей машины:

mkdir /home/$USER/royalty-free

Transcode Audio Flac2all 13 Create Sshfs Directory

Теперь смонтируйте директорию “royalty-free” на каждую из ваших рабочих машин с помощью следующей команды:

sshfs -o allow_other,default_permissions [email protected]:/home/$USER/royalty-free /home/$USER/royalty-free

Transcode Audio Flac2all 14 Mount Sshfs Remote

Запуск кластера flac2all

Теперь вы можете запустить кластер транскодирования, запустив мастер-процесс и добавив оба флага -m и -C к flac2all.

Например, выполните эту команду на вашем основном компьютере, чтобы создать мастер-процесс:

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

Transcode Audio Flac2all 15 Run Master Process

В отличие от обычного flac2all, создание мастер-процесса не запустит сессию транскодирования. Чтобы транскодировать файлы, вам также нужно подключить рабочих к мастер-процессу, выполнив следующую команду на ваших рабочих машинах:

flac2all_worker 192.168.68.10

После завершения клиент рабочий создаст безголовый процесс, который подключается к основной программе. После этого flac2all начнет немедленно, как только найдет несколько рабочих на ожидании.

Transcode Audio Flac2all 16 Run Worker Client

Также читайте: Как скачать и настроить DaVinci Resolve в Linux

Часто задаваемые вопросы

flac2all не завершает работу после обработки моих аудиофайлов. Как я могу исправить эту проблему?

Это происходит каждый раз, когда возникает конфликт между flac2all и его зависимостями Python. Исправьте это, обновив вашу установку, чтобы отразить любые изменения между flac2all и его зависимостями. Выполните pip install --user --upgrade flac2all, чтобы обновить flac2all.

flac2all выдает ошибку “FileNotFound”. Моя установка сломана?

Нет! Эта проблема возникает, когда программа не может обнаружить кодировщик для формата, в который вы хотите транскодировать.

Например, выполнение flac2all opus […] без кодировщика Opus приведет к ошибке “FileNotFound”. Вы можете исправить проблему, установив ffmpeg. Это универсальная программа, которая также установит большинство распространенных аудио кодировщиков. Выполните sudo apt install ffmpeg, чтобы добавить ffmpeg в вашу систему.

Рабочий процесс не смог найти никаких медиа в моем монтировании SSHFS. flac2all сломан?

Нет. Это обычно происходит из-за несоответствия директорий между мастер-процессом и его рабочими. Чтобы убедиться, что кластер транскодирования работает, проверьте, что пути к файлам на каждой машине одинаковые, выполнив pwd как в вашей папке медиа, так и в корне вашего монтирования SSHFS.