As of version 2.7 abcde tests the version of faac being used for mp4v2
support and then appropriately places the audio either in .m4a or .aac.
Note that tagging is not possible with mpeg-2/ADTS streams in .aac.
+
+Q. How do I encode to Apple Lossless Audio Codec (alac)?
+A. As of abcde 2.7.1 there are 3 ways to encode to alac: using qaac, refalac
+ or FFmpeg. To use qaac or refalac follow the installation directions here:
+
+ http://www.andrews-corner.org/qaac.html#installation
+
+ and then set your ~/.abcde.conf file as follows:
+
+ AACENCODERSYNTAX=qaac
+ QAAC="$HOME/.wine/drive_c/qaac/qaac.exe"
+ # Or use the Open Source alac encoder with this small hack:
+ # QAAC="$HOME/.wine/drive_c/qaac/refalac.exe"
+ QAACENCOPTS="--alac --threading --verbose"
+ OUTPUTTYPE="m4a"
+
+ To use FFmpeg (or avconv) set your ~/.abcde.conf file as follows:
+
+ AACENCODERSYNTAX=ffmpeg
+ FFMPEG=ffmpeg
+ # Or give the path to avconv instead:
+ # FFMPEG=avconv
+ FFMPEGENCOPTS="-c:a alac"
+ OUTPUTTYPE="m4a"
+ And then sit back and enjoy the music :)
5. USEPIPES
========
Rippers: cdparanoia, debug, libcdio, cdda2wav, flac, pird.
Encoders: mp3enc, lame, bladeenc, oggenc, opusenc, flac, speexenc,
- mpcenc, wavpack, faac, neroAacEnc, fdkaac, qaac, fhgaacenc.
+ mpcenc, wavpack, faac, neroAacEnc, fdkaac, qaac, fhgaacenc,
+ ffmpeg.
Q. Can I add a ripper or encoder which is not supported?
A. Sure! If you plan to use a ripper or encoder which is not supported you
--artist="$TRACKARTIST" --album="$DALBUM" --title="$TRACKNAME" --tracknum=${TRACKNUM:-$1} \
--year="$CDYEAR" --genre="$CDGENRE" --comment="$COMMENT" $ATOMICPARSLEYOPTS --overWrite
;;
+ ffmpeg)
+ run_command tagtrack-$OUTPUT-$1 true
+ ;;
esac
;;
wav)
fhgaacenc)
$RUN_COMMAND nice $EFFECTIVE_NICE $WINE $AACENCODER $AACENCODEROPTS "$IN" "$OUT"
;;
+ ffmpeg)
+ if [ "$DOTAG" = "y" ]; then
+ $RUN_COMMAND nice $EFFECTIVE_NICE $AACENCODER -i "$IN" $AACENCODEROPTS -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 -i "$IN" $AACENCODER $AACENCODEROPTS "$OUT"
+ fi
+ ;;
esac
;;
wav)
# detailed notes in the sample abcde.conf file in the abcde tarball.
QAAC=qaac
FHGAACENC=fhgaacenc
+# The path to 'avconv' rather than 'ffmpeg'can be used here:
+FFMPEG=ffmpeg
ID3=id3
ID3V2=id3v2
FDKAACENCOPTS='--bitrate 192k'
QAACENCOPTS=
FHGAACENCOPTS=
+FFMPEGENCOPTS=
ID3OPTS=
EYED3OPTS=""
[ "$AACENCODERSYNTAX" = "neroAacEnc" ] && NEEDNEROAACTAG=y
[ "$AACENCODERSYNTAX" = "qaac" ] && NEEDWINE=y
[ "$AACENCODERSYNTAX" = "fhgaacenc" ] && NEEDWINE=y && NEEDATOMICPARSLEY=y
+ [ "$AACENCODERSYNTAX" = "ffmpeg" ] && [ "$DOTAG" = "y" ]
;;
wav)
if [ "$KEEPWAVS" = "y" ]; then
AACENCODER="$FHGAACENC"
fi
;;
+ ffmpeg)
+ if [ -z "$FFMPEGENCOPTS" ] && [ -n "$AACENCOPTS" ]; then
+ AACENCODEROPTS="${AACENCODEROPTSCLI:-$AACENCOPTS}"
+ AACENCODER="$FFMPEG"
+ else
+ AACENCODEROPTS="${AACENCODEROPTSCLI:-$FFMPEGENCOPTS}"
+ AACENCODER="$FFMPEG"
+ fi
+ ;;
esac
# and which tagger
PIPE_faac="-"
PIPE_qaac="-"
PIPE_fhgaacenc="-"
+PIPE_ffmpeg="-"
# Both neroAacEnc and fdkaac seem to manage without the addition of
# the 'ignorelength' option in PIPE_$AACENCODERSYNTAX when piping
# in this manner. Andrew.
.TP
.B AACENCODERSYNTAX
Specifies the style of encoder to use for M4A (AAC) encoder. We support \'faac\'
-as \'default\' as well as higher quality audio with neroAacEnc, fdkaac, qaac and fhgaacenc.
-If qaac or the Open Source refalac are used it is also possible to generate Apple
-Lossless Audio Codec (alac) files. Note that qaac, refalac and fhgaacenc are Windows applications
-which require Wine to be installed.
+as \'default\' as well as higher quality audio with neroAacEnc, fdkaac, qaac,fhgaacenc
+and FFmpeg or avconv. If qaac, refalac or FFmpeg / avconv are used it is also possible
+to generate Apple Lossless Audio Codec (alac) files. Note that qaac, refalac and fhgaacenc
+are Windows applications which require Wine to be installed.
.TP
.B WVENCODERSYNTAX
Specifies the style of encoder to use for WavPack. We support \'wavpack\'
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,
-IDENTIFY, DISPLAYCMD, CONVERT, QAAC, WINE, FHGAACENC and ATOMICPARSLEY.
+IDENTIFY, DISPLAYCMD, CONVERT, QAAC, WINE, FHGAACENC, ATOMICPARSLEY and FFMPEG.
.TP
.B COMMAND-LINE OPTIONS
If you wish to specify command-line options to any of the programs \fBabcde\fR uses,
OPUSENCOPTS, ID3OPTS, EYED3OPTS, MP3GAINOPTS, CDPARANOIAOPTS, CDDA2WAVOPTS, PIRDOPTS,
CDDAFSOPTS, CDDBTOOLOPTS, EJECTOPTS, DISTMP3OPTS, NORMALIZEOPTS, CDSPEEDOPTS, MKCUEOPTS,
VORBISCOMMMENTOPTS, METAFLACOPTS, DIFFOPTS, FLACGAINOPTS, VORBISGAINOPTS, HTTPGETOPTS,
-GLYRCOPTS, IDENTIFYOPTS, CONVERTOPTS, DISPLAYCMDOPTS, QAACENCOPTS, FHGAACENCOPTS and
-ATOMICPARSLEYOPTS.
+GLYRCOPTS, IDENTIFYOPTS, CONVERTOPTS, DISPLAYCMDOPTS, QAACENCOPTS, FHGAACENCOPTS,
+ATOMICPARSLEYOPTS and FFMPEGENCOPTS.
.TP
.B CDSPEEDVALUE
Set the value of the CDROM speed. The default is to read the disc as fast as
Specifies the encoding format to output, as well as the default extension and
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)),
+Codec), "spx" (Ogg/Speex), "mpc" (MPP/MP+ (Musepack), "m4a" (AAC or ALAC),
"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
# mpcenc - encoder for MPCENCODERSYNTAX
# wavpack - encoder for WVENCODERSYNTAX
# mac - for APENCODERSYNTAX
-# faac, neroAacEnc, fdkaac, qaac, fhgaacenc - for AACENCODERSYNTAX
+# faac, neroAacEnc, fdkaac, qaac, fhgaacenc, ffmpeg - for AACENCODERSYNTAX
# opusenc - for OPUSENCODERSYNTAX
# default is a valid option for oggenc, lame, flac, speexenc, mpcenc, wavpack, faac and opus.
# Currently this affects the default location of the binary, the variable
#NEROAACENC=neroAacEnc
#FDKAAC=fdkaac
#OPUSENC=opusenc
+# Note that if you use avconv rather than FFmpeg give the
+# path to avconv here:
+# FFMPEG=ffmpeg
# The path for qaac, refalac and fhgaacenc can be problematic as abcde
# cannot cope with the 'standard' Wine location with spaces. For example:
#APENCOPTS='-c4000'
# M4A/AAC
-# There are now 5 AAC encoders available to abcde :).
+# There are now 5 AAC encoders available to abcde :). FFmpeg
+# is also available for the m4a container...
# Note that the old AACENCOPTS has been rendered obsolete by
# the following options, new to abcde 2.7:
# 1. faac: see 'faac --long-help' and consider
# consider using '--vbr 4' for a decent quality encode.
#FHGAACENCOPTS=
+#FFMPEGENCOPTS=
+
# OPUS
# For the encoder options look at: 'opusenc -h'
#OPUSENCOPTS=
abcde 2.7.1
+ * 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
by AtomicParsley which has been added back to abcde :). This
allows encoding with HE-AAC v2, unavailable with qaac.
* Support added for AAC encoding with qaac via Wine. This
- also allows for Apple Lossless Audio Coding (alac) when
- using:
-
- QAACENCOPTS="--alac"
-
- This closes Issue 142, thanks to Bernd Fischer-Krellenberg
- for the enhancement request.
+ also allows for Apple Lossless Audio Coding (alac) using
+ either qaac or refalac. This closes Issue 142, thanks to
+ Bernd Fischer-Krellenberg for the enhancement request.
abcde 2.7