EAC의 Compression option으로 FFmpeg을 적용하여 CD 리핑하기 (flac, alac, opus)
EAC를 설치 하면 설치 화면에서 옵션으로 FLAC 인코더를 제공하여 사용자들이 FLAC 공식 홈페이지에 찾아가 인코더를 따로 설치할 수고를 덜어주지만 이번에는 다양한 오디오 인코딩 라이브러리를 가진 FFmpeg의 내장 FLAC 인코더를 이용하여 compression option을 설정하고자 한다.
EAC 설치와 이후 초기 설정은 나무위키에 너무나도 잘 설명되어있다. External Compression 설정을 제외한 모든 설정을 따라 진행하면 된다.
External Compression 설정 (FFmpeg FLAC)
- 옵션의 체크는 사진과 같은 모양으로 해준다.
- Use file extension에 .flac 이라고 적어준다.
- Browse를 클릭하여 설치된 ffmpeg.exe를 지정해준다.
- Bit rate는 어느 값을 지정해주어도 인코딩에 아무런 영향을 주지 않으니 아무거나 선택하여도 상관 없다.
- Additional command-line options에 다음을 복사하여 붙여넣기 해준다.
-i %source% -metadata "ARTIST=%artist%" -metadata "TITLE=%title%" -metadata "ALBUM=%albumtitle%" -metadata "DATE=%year%" -metadata "TRACK=%tracknr%" -metadata "GENRE=%genre%" -metadata "PERFORMER=%albuminterpret%" -metadata "COMPOSER=%composer%" %haslyrics%-metadata "LYRICS=%lyricsfile%"%haslyrics% -metadata "ALBUM_ARTIST=%albumartist%" -metadata "DISCNUMBER=%cdnumber%" -metadata "TOTALTRACKS=%numtracks%" -metadata "COMMENT=%comment%" -c:a flac -compression_level 12 %dest%
커맨드 라인 맨 앞의 %source%
는 인코딩 전 input file (CD음원 원본 WAV 파일), 맨 뒤의 %dest%
는 인코딩 후 output file (.flac) 을 의미한다. 그 사이 수많은 -metadata
의 향연은 음원의 제목, 아티스트 등 메타데이터들을 입력해주는 명령어이고, 뒤쪽의 -c:a
는 오디오 코덱(인코더)을 지정해주는 명령어(여기서는 flac으로 지정), 그 다음부터 %dest%
전 까지는 인코더 내의 옵션이다.
compression_level
은 flac 인코더 만의 옵션으로 0부터 12까지 지정할 수 있으며 숫자가 높을 수록 인코딩 속도는 더 느리지만 품질이 좋은 압축 성능을 보여준다.
Test encoder를 클릭하면 다음과 같이 정상적으로 인코더가 작동함을 알 수 있다.
FFmpeg을 적용하였을 때의 장점은 원하는 오디오 코덱으로 CD를 리핑하고 싶을 때 해당 인코더를 일일히 설치할 필요없이 FFmpeg에 내장된 인코더를 모두 활용할 수 있는 확장성에 있다.
또한 커맨드 라인 입력시의 간편함도 있다. 각 외부 인코더를 따로 설치할 경우 각각의 인코더 마다 인풋, 아웃풋을 지정하는 문법, 메타데이터 를 지정하는 문법이 모두 다르다. 하지만 FFmpeg을 사용할 경우 FFmpeg 공통 옵션인 인풋, 아웃풋, 메타데이터는 그대로 둔 채 인코딩 옵션만을 응용하여 다른 코덱으로 인코딩시 커맨드 라인을 간편하게 적용할 수 있다.
FFmpeg에 내장된 다른 인코더를 통해 FLAC이 아닌 다른 형태로 CD를 리핑 해보자.
대표적으로 애플사에서 개발한 무손실 압축 코덱 ALAC이 있다. FLAC은 로열티가 없는 오픈소스 코덱이라 대다수의 기기에서 FLAC 음원을 들을 수 있게 지원하지만, 애플은 자사에서 개발한 ALAC을 홍보하기 위해 아이폰, 아이패드 등 애플 제품에서 의도적으로 FLAC을 지원하지 않고 있다.
iOS 11 이후 애플 기본 파일 앱에서는 FLAC을 실행 할 수 있지만 여전히 기본 음악 앱에서는 실행을 하지 못한다. 서드파티 앱을 통해 실행할 수는 있는 방법도 있겠지만, 이래나저래나 아이폰 유저들은 ALAC 파일로 리핑하고 저장하는 것이 맘편하다.
External Compression 설정 (FFmpeg ALAC)
- 옵션의 체크는 사진과 같은 모양으로 해준다.
- Use file extension에 .m4a 라고 적어준다.
- Browse를 클릭하여 설치된 ffmpeg.exe를 지정해준다.
- Bit rate는 어느 값을 지정해주어도 인코딩에 아무런 영향을 주지 않으니 아무거나 선택하여도 상관 없다.
- Additional command-line options에 다음을 복사하여 붙여넣기 해준다.
-i %source% -metadata "ARTIST=%artist%" -metadata "TITLE=%title%" -metadata "ALBUM=%albumtitle%" -metadata "DATE=%year%" -metadata "TRACK=%tracknr%" -metadata "GENRE=%genre%" -metadata "PERFORMER=%albuminterpret%" -metadata "COMPOSER=%composer%" %haslyrics%-metadata "LYRICS=%lyricsfile%"%haslyrics% -metadata "ALBUM_ARTIST=%albumartist%" -metadata "DISCNUMBER=%cdnumber%" -metadata "TOTALTRACKS=%numtracks%" -metadata "COMMENT=%comment%" -c:a alac %dest%
위의 FLAC 설정과의 차이점은 Use flie extension 부분에서 파일 확장자명을 .flac
에서 .m4a
로 지정해준 것과 커맨드 라인에서 -c:a
명령어를 통해 오디오 코덱을 alac으로 지정해준 것 밖에 없다.
Test encoder를 클릭하면 다음과 같이 정상적으로 인코더가 작동함을 알 수 있다.
External Compression 설정 (FFmpeg OPUS(libopus))
- 옵션의 체크는 사진과 같은 모양으로 해준다.
- Use file extension에 .opus 라고 적어준다.
- Browse를 클릭하여 설치된 ffmpeg.exe를 지정해준다.
- Bit rate는 512kbit/s 이하의 값 중에서 자신이 원하는 비트레이트 값을 설정해준다.
- Additional command-line options에 다음을 복사하여 붙여넣기 해준다.
-i %source% -metadata "ARTIST=%artist%" -metadata "TITLE=%title%" -metadata "ALBUM=%albumtitle%" -metadata "DATE=%year%" -metadata "TRACK=%tracknr%" -metadata "GENRE=%genre%" -metadata "PERFORMER=%albuminterpret%" -metadata "COMPOSER=%composer%" %haslyrics%-metadata "LYRICS=%lyricsfile%"%haslyrics% -metadata "ALBUM_ARTIST=%albumartist%" -metadata "DISCNUMBER=%cdnumber%" -metadata "TOTALTRACKS=%numtracks%" -metadata "COMMENT=%comment%" -c:a libopus -b:a %bitrate%k %dest%
이번에도 파일 확장자명과 커맨드라인에서 -c:a
이후의 내장 인코더 옵션을 지정해준 것 외에는 차이가 없다. 앞의 두 코덱과 다르게 opus는 손실음원인만큼 취향에 맞게 비트레이트를 설정할 수 있게 하였다. 원하는 비트레이트 수가 없다면 커맨드 라인에서 %bitrate%
를 지우고 그 자리에 원하는 비트레이트의 숫자만을 적어주면 된다. opus는 512kbit/s까지 지원된다.
Test encoder를 클릭하면 다음과 같이 정상적으로 인코더가 작동함을 알 수 있다.
- 참고 및 변형: EAC and FLAC (FFMPEG) — Hydrogenaudio Knowledgebase
- FFmpeg 메타데이터 옵션: FFmpeg Metadata — MultimediaWiki
- EAC 메타데이터 옵션: EAC Compression Options — Hydrogenaudio Knowledgebase
- FFmpeg 내장 인코더 옵션: FFmpeg Documentation의 Audio Encoders 문단