FLAC 파일을 Linux에서 flac2all로 트랜스코딩하는 방법

Transcode Audio Flac2all 00 Featured Image

flac2all은 고품질 FLAC 파일을 거의 모든 현대 오디오 형식으로 변환할 수 있도록 해주는 간단한 유틸리티입니다. ffmpeg와 달리, 이 유틸리티는 FLAC 오디오를 정리하고 태그를 달고 인코딩하는 프로세스를 자동화합니다. flac2all은 설치 및 사용이 쉽습니다. 오디오 트랜스코딩 요구 사항을 위한 프론트 엔드 역할을 할 수 있는 이 다재다능한 프로그램을 사용하는 방법을 알아보세요.

목차

  • flac2all을 사용하는 이유
  • flac2all 설치하기
  • flac2all을 사용해 오디오 트랜스코딩하기
  • 여러 형식으로 트랜스코딩하기
  • 사용자 지정 트랜스코드 작업 만들기
  • flac2all 트랜스코드 클러스터 만들기
  • 네트워크 마운트 설정하기
  • flac2all 클러스터 시작하기
  • 자주 묻는 질문

또한 읽어보세요: Linux 노트북의 배터리 수명을 늘리는 4가지 방법

flac2all을 사용하는 이유

flac2all의 핵심은 래퍼이자 스케줄링 프로그램입니다. FLAC 파일 목록을 가져와서 다양한 코덱을 사용해 트랜스코딩 프로세스를 큐에 넣고 관리합니다.

이 접근법의 한 가지 장점은 flac2all이 단일 인코더에 의존하지 않기 때문에 사용자가 원하는 새 형식에 프로그램을 쉽게 조정할 수 있다는 것입니다. 예를 들어, 일반 AAC와 함께 사용자 지정 Fraunhofer FDK AAC 인코더를 설치할 수 있습니다.

Transcode Audio Flac2all 04 Aac Custom Format Page

마지막으로, 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

Transcode Audio Flac2all 05 Install Dependencies

다음으로, pip를 통해 flac2all을 다운로드합니다. pip는 추가 소프트웨어를 설치하는 데 사용할 수 있는 Python 전용 패키지 관리자입니다. 다음 명령어를 실행하여 pip를 사용합니다:

pip3 install--user flac2all

이것은 현재 사용자의 “.local” 디렉토리에 flac2all을 설치합니다. 따라서 다중 사용자 시스템에서는 다른 사용자가 이 프로그램을 실행할 수 없습니다.

Transcode Audio Flac2all 06 Install Flac2all Pip

flac2all을 실행하기 위해서는 다음 코드를 “.bash_profile” 파일에 추가하여 기계의 PATH 변수에 “.local” 디렉토리를 포함해야 합니다:

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

이 명령어는 프로그램에게 내 “royalty-free” 폴더를 320k의 일정 비트 전송률로 트랜스코딩 하기 위해 LAME MP3 인코더를 사용하도록 지시합니다.

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 프로세스는 기존 데이터를 처리하도록 작업 클라이언트에게 지시만 함)
  • 마스터 프로세스와 작업 클라이언트 간의 신뢰할 수 있는 네트워크 연결

이 요소들을 알고, 본 튜토리얼은 두 대의 Ubuntu 22.04 기계 사이에 소규모 flac2all 클러스터를 만드는 것에 초점을 맞춥니다.

또한 읽어보세요: Linux에서 SSH 설정 및 사용하는 방법

네트워크 마운트 설정하기

네트워크 저장소 마운트를 생성하여 시작합니다. 이를 위해, 나는 쉬운 사용과 거의 모든 리눅스 배포판에서 사용 가능한 SSHFS를 사용할 것입니다.

먼저, 사용하려는 모든 기계에 SSHFS를 설치합니다:

sudo apt installsshsshfs

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 클러스터 시작하기

이제 마스터 프로세스를 실행하고 flac2all에 -m-C 플래그를 추가하여 트랜스코딩 클러스터를 시작할 수 있습니다.

예를 들어, 주 기계에서 다음 명령어를 실행하여 마스터 프로세스를 생성합니다:

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

또한 읽어보세요: Linux에서 DaVinci Resolve를 다운로드하고 구성하는 방법

자주 묻는 질문

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 마운트의 루트에서 체크합니다.

이미지 출처: Unsplash 및 Wikimedia Commons 모든 수정 및 스크린샷은 Ramces Red에 의해 작성됨