OUTPUTTYPE="mp2"
So currently FFmpeg supports: alac, wavpack and mp2. FFmpeg native aac support will
- be added when it comes out of 'experimental'.
+ be added when it comes out of 'experimental'. FFmpeg is also used as the default
+ encoder for the Matroska or mka container. A typical example, using the FFmpeg
+ native ac3 encoder, is:
+
+ MKAENCODERSYNTAX=ffmpeg
+ FFMPEG=ffmpeg
+ FFMPEGENCOPTS="-c:a ac3 -b:a 448k"
+ OUTPUTTYPE="mka"
+
+ Other suitable codecs for this usage are Vorbis, MP2, MP3, LC-AAC, HE-AAC, WMAv1,
+ WMAv2, eAC3 and Opus. There is much more to come in the future for abcde and FFmpeg!
+
5. USEPIPES
========
echo "-n No lookup. Don't query CDDB, just create and use template"
echo "-N Noninteractive. Never prompt for anything"
echo "-o <type1[,type2]...>"
-echo " Output file type(s) (vorbis,mp3,flac,spx,mpc,wav,m4a,opus,wv,ape,mp2,tta). Defaults to vorbis"
+echo " Output file type(s) (vorbis,mp3,flac,spx,mpc,wav,m4a,opus,mka,wv,ape,mp2,tta). Defaults to vorbis"
echo "-p Pad track numbers with 0's (if less than 10 tracks)"
echo "-P Use UNIX pipes to read+encode without wav files"
echo "-r <host1[,host2]...>"
opus)
run_command tagtrack-$OUTPUT-$1 true
;;
+ mka)
+ run_command tagtrack-$OUTPUT-$1 true
+ ;;
flac)
(
echo ARTIST="$TRACKARTIST"
opus)
TEMPARG="PIPE_$OPUSENCODERSYNTAX"
;;
+ mka)
+ TEMPARG="PIPE_$MKAENCODERSYNTAX"
+ ;;
flac)
TEMPARG="PIPE_$FLACENCODERSYNTAX"
;;
opus)
OUTPUT=$OPUSOUTPUTCONTAINER
;;
+ mka)
+ OUTPUT=$MKAOUTPUTCONTAINER
+ ;;
flac)
OUTPUT=$FLACOUTPUTCONTAINER
;;
;;
esac
;;
+ mka)
+ case "$MKAENCODERSYNTAX" in
+ ffmpeg)
+ if [ "$DOTAG" = "y" ]; then
+ $RUN_COMMAND nice $EFFECTIVE_NICE $MKAENCODER -i "$IN" $MKAENCODEROPTS -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 $MKAENCODER -i "$IN" $MKAENCODEROPTS "$OUT"
+ fi
+ ;;
+ esac
+ ;;
flac)
case "$2" in
%local*%)
opus)
OUTPUT=$OPUSOUTPUTCONTAINER
;;
+ mka)
+ OUTPUT=$MKAOUTPUTCONTAINER
+ ;;
flac)
OUTPUT=$FLACOUTPUTCONTAINER
;;
opus)
OUTPUT=$OPUSOUTPUTCONTAINER
;;
+ mka)
+ OUTPUT=$MKAOUTPUTCONTAINER
+ ;;
flac)
OUTPUT=$FLACOUTPUTCONTAINER
;;
MP3ENCODERSYNTAX=default
OGGENCODERSYNTAX=default
OPUSENCODERSYNTAX=default
+MKAENCODERSYNTAX=default
FLACENCODERSYNTAX=default
SPEEXENCODERSYNTAX=default
MPCENCODERSYNTAX=default
case "$OUTPUT" in
vorbis:*|ogg:*) OGGENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;;
opus:*) OPUSENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;;
+ mka:*) MKAENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;;
mp3:*) MP3ENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;;
flac:*) FLACENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;;
spx:*) SPEEXENCODEROPTSCLI="$( echo $OUTPUT | cut -d: -f2- )" ;;
[ "$OPUSENCODERSYNTAX" = "default" ] && OPUSENCODERSYNTAX=opusenc
OPUSOUTPUTCONTAINER=opus
;;
+ mka)
+ [ "$MKAENCODERSYNTAX" = "default" ] && MKAENCODERSYNTAX=ffmpeg
+ MKAOUTPUTCONTAINER=mka
+ ;;
mp3)
[ "$MP3ENCODERSYNTAX" = "default" ] && MP3ENCODERSYNTAX=lame
[ "$DOTAG" = "y" ] && NEEDTAGGER=y
OPUSENCODER="$OPUSENC"
;;
esac
+case "$MKAENCODERSYNTAX" in
+ ffmpeg)
+ MKAENCODEROPTS="${MKAENCODEROPTSCLI:-$FFMPEGENCOPTS}"
+ MKAENCODER="$FFMPEG"
+ ;;
+esac
case "$FLACENCODERSYNTAX" in
flac)
FLACENCODEROPTS="${FLACENCODEROPTSCLI:-$FLACOPTS}"
PIPEENCODERSVARCHECK="PIPE_$OGGENCODERSYNTAX" ;;
opus)
PIPEENCODERSVARCHECK="PIPE_$OPUSENCODERSYNTAX" ;;
+ mka)
+ PIPEENCODERSVARCHECK="PIPE_$MKAENCODERSYNTAX" ;;
flac)
PIPEENCODERSVARCHECK="PIPE_$FLACENCODERSYNTAX" ;;
spx)
# Make sure a buncha things exist
for X in $CDROMREADER $CDDISCID ${NEEDTAGGER+$TAGGER} $MP3ENCODER \
- $OGGENCODER $OPUSENCODER $FLACENCODER $SPEEXENCODER $MPCENCODER \
+ $OGGENCODER $OPUSENCODER $MKAENCODER $FLACENCODER $SPEEXENCODER $MPCENCODER \
$AACENCODER $WVENCODER $CDDBTOOL $APENCODER $MP2ENCODER $TTAENCODER \
${NEEDHTTPGET+$HTTPGET} ${NEEDDISTMP3+$DISTMP3} \
${NEEDCOMMENTER+$VORBISCOMMENT} ${NEEDMETAFLAC+$METAFLAC} \
.TP
.B \-o [filetype][:filetypeoptions]
Select output type. Can be "vorbis" (or "ogg"), "mp3", "flac", "spx", "mpc", "m4a",
-"wav", "wv", "ape" or "opus". Specify a comma-delimited list of output types to obtain
-all specified types. See the OUTPUTTYPE configuration variable. One can pass
-options to the encoder for a specific filetype on the command line separating
+"wav", "wv", "ape", "opus" or "mka". Specify a comma-delimited list of output types
+to obtain all specified types. See the OUTPUTTYPE configuration variable. One can
+pass options to the encoder for a specific filetype on the command line separating
them with a colon. The options must be escaped with double-quotes.
.TP
.B \-p
subdirectory named after the artist under the current directory. This can be
modified using the OUTPUTFORMAT and VAOUTPUTFORMAT variables in your
\fIabcde.conf\fR. Each file is given an extension identifying its compression
-format, 'vorbis' for '.ogg', '.mp3', '.flac', '.spx', '.mpc', '.wav', 'wv', 'ape' or '.opus'.
+format, 'vorbis' for '.ogg', '.mp3', '.flac', '.spx', '.mpc', '.wav', '.wv',
+'.ape', '.opus' or '.mka'.
.SH CONFIGURATION
\fBabcde\fR sources two configuration files on startup - \fI/etc/abcde.conf\fR and
\fI$HOME/.abcde.conf\fR, in that order.
Specifies the style of encoder to use for the Opus encoder. At this point only
\'opusenc\' is available for Opus encoding.
.TP
+.B MKAENCODERSYNTAX
+Specifies the style of encoder to use for the Matroska or mka container. At this
+point only \'ffmpeg\' is available to utilise the mka container. Safe audio codecs
+for mka include Vorbis, MP2, MP3, LC-AAC, HE-AAC, WMAv1, WMAv2, AC3, eAC3 and Opus.
+See the FAQ document for more information.
+.TP
.B NORMALIZERSYNTAX
Specifies the style of normalizer to use. Valid options are \'default\'
and \'normalize'\ (and both run \'normalize-audio\'), since we only support it,
(Ogg/Vorbis), "mp3" (MPEG-1 Audio Layer III), "flac" (Free Lossless Audio
Codec), "mp2" (MPEG-1 Audio Layer III), "spx" (Ogg/Speex), "mpc" (MPP/MP+ (Musepack),
"m4a" (AAC or ALAC),"wv" (WavPack"), "wav" (Microsoft Waveform), "opus"
-(Opus Interactive Audio Codec) or "tta" (True Audio). Values like "vorbis,mp3"
-encode the tracks in both Ogg/Vorbis and MP3 formats. For example:
+(Opus Interactive Audio Codec), "tta" (True Audio) or "mka" (Matroska). Values like
+"vorbis,mp3" encode the tracks in both Ogg/Vorbis and MP3 formats. For example:
.br
OUTPUTTYPE=vorbis,flac
.br
For each value in OUTPUTTYPE, \fBabcde\fR expands a different process for encoding,
tagging and moving, so you can use the format placeholder, OUTPUT, to create
different subdirectories to hold the different types. The variable OUTPUT will
-be 'vorbis', 'mp3', 'flac', 'spx', 'mpc', 'm4a', mp2, 'wv', 'ape', 'tta' and/or 'wav',
-depending on the OUTPUTTYPE you define. For example
+be 'vorbis', 'mp3', 'flac', 'spx', 'mpc', 'm4a', mp2, 'wv', 'ape', 'tta', 'wav'
+and/or 'mka' depending on the OUTPUTTYPE you define. For example
.br
OUTPUTFORMAT='${OUTPUT}/${ARTISTFILE}/${ALBUMFILE}/${TRACKNUM}._${TRACKFILE}'
.TP
-# System defaults for abcde version 2.7.1
+# System defaults for abcde version 2.7.2
# Nothing in this file is uncommented by default.
#
# If you wish to override these system-wide settings, create your own
#OGGENCODERSYNTAX=default
#FLACENCODERSYNTAX=default
#SPEEXENCODERSYNTAX=default
+#MKAENCODERSYNTAX=default
#MPCENCODERSYNTAX=default
#WVENCODERSYNTAX=default
#APENCODERSYNTAX=default
# 'twolame --help',a highly recommended setting is "--bitrate 320".
#TWOLAMENCOPTS=
-# FFmpeg or avconv can be used for several audio codecs:
+# FFmpeg or avconv can be used for several audio codecs, as well as being
+# the default encoder for the Matroska container mka::
# 1. Encoding to WavPack (FFmpeg only: avconv does not have a native encoder).
# Consider setting the following with a compression_level between 0-8:
# FFMPEGENCOPTS="-c:a wavpack -compression_level 6"
# OUTPUTTYPE can be any of a number of formats, either a single format
# (e.g. "ogg") or a combination of them separated with ","
# (e.g. "flac,mp3"). Currently recognised and supported are:
-# "flac", "m4a", "mp3, "mpc", "ogg", "opus", "spx", "vorbis", "wav", "wv", "ape"
+# "flac", "m4a", "mp3, "mpc", "ogg", "opus", "mka", "spx", "vorbis", "wav", "wv", "ape"
#OUTPUTTYPE=ogg
# Output filename format - change this to reflect your inner desire to
abcde 2.7.2
+ * Support for output to the Matroska container (mka). Encoder
+ is FFmpeg (or avconv). Typical conf file syntax would be:
+
+ MKAENCODERSYNTAX=ffmpeg
+ FFMPEG=ffmpeg
+ FFMPEGENCOPTS="-c:a ac3 -b:a 448k"
+ OUTPUTTYPE="mka"
+
+ Thanks to Shantiq and Fakeoutdoorsman of the Ubuntu Forums
+ for the idea.
* Add id3tag mp3 tagger as this is the tagger available to
OpenBSD users. Thanks to Christopher Zimmermann for the
notification and patch.