在 Ubuntu 中有没有办法将 CD 翻录为 FLAC 并自动添加 ReplayGain 标签?

在 Ubuntu 中有没有办法将 CD 翻录为 FLAC 并自动添加 ReplayGain 标签?

我计划将我的全部 CD 收藏(可能超过 100 张 CD*)翻录成 FLAC,并添加 CDparanoia 和 ReplayGain 标签。

多年来,我为这些专辑使用了不同的编解码器和质量选项,这意味着我有一些专辑是 MP3 CBR 320,一些是 V0-4,一些是 Ogg Vorbis。现在,我想无损地重新翻录它们,我可以使用一个程序,让我以最少的手动工作完成所有这些任务。

您能想到有什么程序能够准确地将 CD 翻录为 FLAC 并添加 ReplayGain 吗?(GUI 或命令行都可以。)

  • 更新:实际上,它们大约有 260 个。计算案例,不包括奖励磁盘、DVD 等。;)

答案1

全面披露:我是ABCDE

命令行破解程序abcde具有此功能。要安装,只需在终端窗口中运行以下命令:

sudo apt-get install abcde cdparanoia flac metaflac imagemagick glyrc

然后将以下配置放入文件中~/.abcde.conf

# -----------------$HOME/.abcde.conf----------------- #
# 
# A sample configuration file to convert music cds to 
#       FLAC using abcde version 2.7.2
# 
# Modified for AskUbuntu http://askubuntu.com/q/867593/57576
#  to allow ReplayGain as well as Album Art retrieval...
#
# http://andrews-corner.org/linux/abcde/index.html
# -------------------------------------------------- #

# Encode tracks immediately after reading. Saves disk space, gives
# better reading of 'scratchy' disks and better troubleshooting of
# encoding process but slows the operation of abcde quite a bit:
LOWDISK=y

# Specify the method to use to retrieve the track information,
# the alternative is to specify 'musicbrainz':
CDDBMETHOD=cddb

# Make a local cache of cddb entries and then volunteer to use 
# these entries when and if they match the cd:
CDDBCOPYLOCAL="y"
CDDBLOCALDIR="$HOME/.cddb"
CDDBLOCALRECURSIVE="y"
CDDBUSELOCAL="y"

# Specify the encoder to use for FLAC. In this case
# flac is the only choice.
FLACENCODERSYNTAX=flac

# Specify the path to the selected encoder. In most cases the encoder
# should be in your $PATH as I illustrate below, otherwise you will 
# need to specify the full path. For example: /usr/bin/flac
FLAC=flac

# Specify your required encoding options here. Multiple options can
# be selected as '--best --another-option' etc.
# Overall bitrate is about 880 kbs/s with level 8.
FLACOPTS='-s -e -V -8' 

# Output type for FLAC.
OUTPUTTYPE="flac"

# Options to pass to metaflac for ReplayGain:
FLACGAINOPTS="--add-replay-gain"

# The cd ripping program to use. There are a few choices here: cdda2wav,
# dagrab, cddafs (Mac OS X only) and flac. New to abcde 2.7 is 'libcdio'.
CDROMREADERSYNTAX=cdparanoia            

# Give the location of the ripping program and pass any extra options,
# if using libcdio set 'CD_PARANOIA=cd-paranoia'.
CDPARANOIA=cdparanoia  
CDPARANOIAOPTS="--never-skip=40"

# Give the location of the CD identification program:       
CDDISCID=cd-discid            

# Give the base location here for the encoded music files.
OUTPUTDIR="$HOME/Music"               

# The default actions that abcde will take.
ACTIONS=cddb,getalbumart,playlist,read,replaygain,encode,tag,move,clean

# Decide here how you want the tracks labelled for a standard 'single-artist',
# multi-track encode and also for a multi-track, 'various-artist' encode:
OUTPUTFORMAT='${OUTPUT}/${ARTISTFILE}-${ALBUMFILE}/${TRACKNUM}.${TRACKFILE}'
VAOUTPUTFORMAT='${OUTPUT}/Various-${ALBUMFILE}/${TRACKNUM}.${ARTISTFILE}-${TRACKFILE}'

# Decide here how you want the tracks labelled for a standard 'single-artist',
# single-track encode and also for a single-track 'various-artist' encode.
# (Create a single-track encode with 'abcde -1' from the commandline.)
ONETRACKOUTPUTFORMAT='${OUTPUT}/${ARTISTFILE}-${ALBUMFILE}/${ALBUMFILE}'
VAONETRACKOUTPUTFORMAT='${OUTPUT}/Various-${ALBUMFILE}/${ALBUMFILE}'

# Create playlists for single and various-artist encodes. I would suggest
# commenting these out for single-track encoding.
PLAYLISTFORMAT='${OUTPUT}/${ARTISTFILE}-${ALBUMFILE}/${ALBUMFILE}.m3u'
VAPLAYLISTFORMAT='${OUTPUT}/Various-${ALBUMFILE}/${ALBUMFILE}.m3u'

# This function takes out dots preceding the album name, and removes a grab
# bag of illegal characters. It allows spaces, if you do not wish spaces add
# in -e 's/ /_/g' after the first sed command.
mungefilename ()
{
  echo "$@" | sed -e 's/^\.*//' | tr -d ":><|*/\"'?[:cntrl:]"
}

# What extra options?
MAXPROCS=2                              # Run a few encoders simultaneously
PADTRACKS=y                             # Makes tracks 01 02 not 1 2
EXTRAVERBOSE=2                          # Useful for debugging
COMMENT='abcde version 2.7.2'           # Place a comment...
EJECTCD=y                               # Please eject cd when finished :-)

这是一个基本配置,还有许多其他可用选项,包括:

  1. 自动嵌入下载的专辑封面
  2. 还有很多其他专辑封面下载选项
  3. 不同的 flac 编码选项
  4. 同时编码为多个其他编解码器的可能性
  5. 不同的文件命名、文件夹位置等

但这个基本配置可能已经足够满足您的需求了。如果是这样,只需插入音频 CD 并运行以下命令:

abcde

一切都会好起来的!

笔记:两个轨道的值均被存储专辑增益,请参见mediainfo下面的输出。我用 <------ 突出显示了专辑和曲目值:

General
Complete name                            : 01.Speak To Me Breathe.flac
Format                                   : FLAC
Format/Info                              : Free Lossless Audio Codec
File size                                : 20.2 MiB
Duration                                 : 4 min 0 s
Overall bit rate mode                    : Variable
Overall bit rate                         : 705 kb/s
Album replay gain                        : -3.68 dB  <-----
Album replay gain peak                   : 0.968201  <-----
Album                                    : Dark Side Of The Moon 1992 remaster
Track name                               : Speak To Me Breathe
Track name/Position                      : 01
Track name/Total                         : 09
Performer                                : Pink Floyd
Genre                                    : Psychedelic Rock
Recorded date                            : 1973
Cover                                    : Yes
Cover type                               : Cover (front)
Cover MIME                               : image/jpeg
Comment                                  : abcde version 2.7.2
CDDB                                     : 710a1109

Audio
Format                                   : FLAC
Format/Info                              : Free Lossless Audio Codec
Duration                                 : 4 min 0 s
Bit rate mode                            : Variable
Bit rate                                 : 705 kb/s
Channel(s)                               : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 44.1 kHz
Bit depth                                : 16 bits
Replay gain                              : -0.48 dB  <-----
Replay gain peak                         : 0.679779  <-----
Stream size                              : 20.2 MiB (100%)
Writing library                          : libFLAC 1.3.1 (UTC 2014-11-25)

参考:

相关内容