FFMPEGENCOPTS="-c:a alac"
OUTPUTTYPE="m4a"
- And then sit back and enjoy the music :)
+ And then sit back and enjoy the music :)
+
+Q. Will FFmpeg be used with abcde for any other audio formats?
+A. The plan is to use FFmpeg (or avconv) when FFmpeg has a good quality native
+ encoder available. For example FFmpeg has a low quality native native encoder
+ for Vorbis and AAC which will not be used but a great reverse engineered alac
+ encoder that has been used in abcde. FFmpeg also has a good WavPack encoder
+ that has been added in abcde 2.7.1 which can be added into your ~/.abcde.conf
+ file as follows:
+
+ # WVENCODERSYNTAX=wavpack
+ WVENCODERSYNTAX=ffmpeg
+ # Appropriate PATH:
+ WAVPACK=wavpack
+ FFMPEG=ffmpeg
+ # Appropriate options:
+ FFMPEGENCOPTS="-c:a wavpack -compression_level 6"
+ WAVPACKENCOPTS="-hx3"
+ # Correct output type:
+ OUTPUTTYPE="wv"
+
+ You can see in this example how easy it is to switch from one WavPack encoder to
+ another by changing the comment mark '#' on the WVENCODERSYNTAX line. Plans are
+ to use FFmpeg for True Type Audio (tta) as well as MPEG-1 Audio Layer II (mp2) as
+ well as respectively ttaenc and twolame.
5. USEPIPES
========
fi
;;
wv)
- if [ "$DOTAG" = "y" ]; then
- $RUN_COMMAND nice $EFFECTIVE_NICE $WVENCODER $WVENCODEROPTS -w Artist="$TRACKARTIST" -w Album="$DALBUM" \
- -w Title="$TRACKNAME" -w Track="$1" -w Genre="$CDGENRE" -w Year="$CDYEAR" ${COMMENT:+-w Comment="$COMMENT"} "$IN" -o "$OUT"
- else
- $RUN_COMMAND nice $EFFECTIVE_NICE $WVENCODER $WVENCODEROPTS "$IN" -o "$OUT"
- fi
+ case "$WVENCODERSYNTAX" in
+ wavpack)
+ if [ "$DOTAG" = "y" ]; then
+ $RUN_COMMAND nice $EFFECTIVE_NICE $WVENCODER $WVENCODEROPTS -w Artist="$TRACKARTIST" -w Album="$DALBUM" \
+ -w Title="$TRACKNAME" -w Track="$1" -w Genre="$CDGENRE" -w Year="$CDYEAR" ${COMMENT:+-w Comment="$COMMENT"} "$IN" -o "$OUT"
+ else
+ $RUN_COMMAND nice $EFFECTIVE_NICE $WVENCODER $WVENCODEROPTS "$IN" -o "$OUT"
+ fi
+ ;;
+ ffmpeg)
+ if [ "$DOTAG" = "y" ]; then
+ $RUN_COMMAND nice $EFFECTIVE_NICE $WVENCODER -i "$IN" $WVENCODEROPTS -metadata artist="$TRACKARTIST" \
+ -metadata album="$DALBUM" -metadata title="$TRACKNAME" -metadata track=${TRACKNUM:-$1} -metadata date="$CDYEAR" \
+ -metadata genre="$CDGENRE" -metadata comment="$COMMENT" "$OUT"
+ else
+ $RUN_COMMAND nice $EFFECTIVE_NICE $WVENCODER -i "$IN" $WVENCODEROPTS "$OUT"
+ fi
+ ;;
+ esac
;;
ape)
$RUN_COMMAND nice $EFFECTIVE_NICE $APENCODER "$IN" "$OUT" $APENCODEROPTS
# mpc (Musepack)
MPCENC=mpcenc
# wv (wavpack)
+# WVENC is retained in abcde 2.7.1 for backwards compatibility
+# with abcde 2.7:
WVENC=wavpack
+WAVPACK=wavpack
# ape
APENC=mac
APETAG=apetag
# mpc
MPCENCOPTS=
# wv
-WVENCOPTS=
+WAVPACKENCOPTS=
# ape
# Monkey's Audio Console (mac) chokes without a mode setting
# so we set one here.
[ "$WVENCODERSYNTAX" = "default" ] && WVENCODERSYNTAX=wavpack
[ "$DOTAG" = "y" ]
[ "$DOREPLAYGAIN" = "y" ] && NEEDWVGAIN=y
+ [ "$WVENCODERSYNTAX" = "ffmpeg" ] && DOREPLAYGAIN=n
;;
ape)
[ "$APENCODERSYNTAX" = "default" ] && APENCODERSYNTAX=mac
esac
case "$WVENCODERSYNTAX" in
wavpack)
- WVENCODEROPTS="${WVENCODEROPTSCLI:-$WVENCOPTS}"
- WVENCODER="$WVENC"
+ # Syntax changed slightly between abcde 2.7 and abcde 2.7.1,
+ # and in the interests of backward compatibility:
+ if [ -z "$WAVPACKENCOPTS" ] && [ -n "$WVENCOPTS" ]; then
+ WVENCODEROPTS="${WVENCODEROPTSCLI:-$WVENCOPTS}"
+ WVENCODER="$WAVPACK"
+ else
+ WVENCODEROPTS="${WVENCODEROPTSCLI:-$WAVPACKENCOPTS}"
+ WVENCODER="$WAVPACK"
+ fi
+ ;;
+ ffmpeg)
+ WVENCODEROPTS="${WVENCODEROPTSCLI:-$FFMPEGENCOPTS}"
+ WVENCODER="$FFMPEG"
;;
esac
case "$APENCODERSYNTAX" in
.TP
.B WVENCODERSYNTAX
Specifies the style of encoder to use for WavPack. We support \'wavpack\'
-as \'default\'.
+as \'default\' but \'ffmpeg'\ is the other option.
.TP
.B APENCODERSYNTAX
Specifies the style of encoder to use for Monkey's Audio (ape). We support \'mac\',
.B PATHNAMES
The following configuration file options specify the pathnames of their
respective utilities: LAME, TOOLAME, GOGO, BLADEENC, L3ENC, XINGMP3ENC, MP3ENC,
-VORBIZE, OGGENC, FLAC, SPEEXENC, MPCENC, WVENC, APENC, OPUSENC, ID3, EYED3,
+VORBIZE, OGGENC, FLAC, SPEEXENC, MPCENC, WAVEPACK, APENC, OPUSENC, ID3, EYED3,
METAFLAC, CDPARANOIA, CD_PARANOIA, CDDA2WAV, PIRD, CDDAFS, CDDISCID, CDDBTOOL,
EJECT, MD5SUM, DISTMP3, VORBISCOMMENT, NORMALIZE, CDSPEED, MP3GAIN, VORBISGAIN,
MPCGAIN, MKCUE, MKTOC, CUE2DISCID (see option "\-X"), DIFF, HTTPGET, GLYRC,
.B COMMAND-LINE OPTIONS
If you wish to specify command-line options to any of the programs \fBabcde\fR uses,
set the following configuration file options: LAMEOPTS, TOOLAMEOPTS, GOGOOPTS,
-BLADEENCOPTS, L3ENCOPTS, XINGMP3ENCOPTS, MP3ENCOPTS, VORBIZEOPTS, WVENCOPTS, APENCOPTS,
+BLADEENCOPTS, L3ENCOPTS, XINGMP3ENCOPTS, MP3ENCOPTS, VORBIZEOPTS, WAVEPACKENCOPTS, APENCOPTS,
OGGENCOPTS, FLACOPTS, SPEEXENCOPTS, MPCENCOPTS, FAACENCOPTS, NEROAACENCOPTS, FDKAACENCOPTS,
OPUSENCOPTS, ID3OPTS, EYED3OPTS, MP3GAINOPTS, CDPARANOIAOPTS, CDDA2WAVOPTS, PIRDOPTS,
CDDAFSOPTS, CDDBTOOLOPTS, EJECTOPTS, DISTMP3OPTS, NORMALIZEOPTS, CDSPEEDOPTS, MKCUEOPTS,
encoder. Defaults to "vorbis". Valid settings are "vorbis" (or "ogg")
(Ogg/Vorbis), "mp3" (MPEG-1 Audio Layer III), "flac" (Free Lossless Audio
Codec), "spx" (Ogg/Speex), "mpc" (MPP/MP+ (Musepack), "m4a" (AAC or ALAC),
-"wv" (WavPack", "wav" (Microsoft Waveform) or "opus" (Opus Interactive Audio Codec). Values
+"wv" (WavPack"), "wav" (Microsoft Waveform) or "opus" (Opus Interactive Audio Codec). Values
like "vorbis,mp3" encode the tracks in both Ogg/Vorbis and MP3 formats. For example
.br
OUTPUTTYPE=vorbis,flac
# flac - the only supported for FLACENCODERSYNTAX at the moment
# speexenc - the only encoder for SPEEXENCODERSYNTAX
# mpcenc - encoder for MPCENCODERSYNTAX
-# wavpack - encoder for WVENCODERSYNTAX
+# wavpack, ffmpeg - encoder for WVENCODERSYNTAX
# mac - for APENCODERSYNTAX
# faac, neroAacEnc, fdkaac, qaac, fhgaacenc, ffmpeg - for AACENCODERSYNTAX
# opusenc - for OPUSENCODERSYNTAX
# WavPack:
# Look at 'wavpack --help' for detailed options, consider using '-hx3'
# for a good quality encode
-#WVENCOPTS=
+#WAVENCOPTS=
+# FFmpeg can also be used for WavPack encoding and for this consider
+# setting the following with a compression_level between 0-8:
+#FFMPEGENCOPTS="-c:a wavpack -compression_level 6"
# For Wavpack replay gain we set both the default of 'track gain'
# as well as this option for 'album gain'. Better media players
# such as vlc can select either or neither.
abcde 2.7.1
+ * Encoding to WavPack with FFmpeg. Some slight changes to WavPack
+ syntax with backward compatibility built in for abcde 2.7.
* Encoding to m4a container with FFmpeg or avconv. This allows
for alac encoding with FFmpeg's reverse engineered alac encoder.
* AAC encoding with fhgaacenc via Wine. Tagging is provided