Difference between revisions of "Nero AAC"

From Hydrogenaudio Knowledgebase
Jump to: navigation, search
(Versions: brief history)
(Update dead links to internet archive)
(27 intermediate revisions by 4 users not shown)
Line 11: Line 11:
 
| use = Encoder/Decoder
 
| use = Encoder/Decoder
 
| license = see site for license
 
| license = see site for license
| website = [http://www.nero.com/enu/technologies-aac-codec.html Nero AAC Codec]
+
| website = [https://web.archive.org/web/20160304031341/http://www.nero.com/enu/company/about-nero/nero-aac-codec.php Information]<br />[https://web.archive.org/web/20160923100008/http://ftp6.nero.com/tools/NeroAACCodec-1.5.1.zip NeroAACCodec-1.5.1.zip]
 
}}
 
}}
 +
{{aac-encoders}}
 +
'''Nero AAC''' is a freely available software suite that includes a high-quality LC and HE [[AAC]] [[codec]] and metadata tool. It was released by Nero AG for personal non-commercial and/or technology-evaluation purposes. The download package contained binaries for both Windows and Linux. It was the same codec that was used in Nero's other, then current, commercial products.
  
The Nero AAC codec has been made freely available by Nero AG for personal non-commercial and/or technology-evaluation purposes. It is a commercial implementation of both LC AAC and HE AAC and provided as a set of three command-line tools that are used to encode, decode and apply tags to MP4 files. The download contains binaries for both Windows and Linux. It is the same codec that is used in Nero's other, commercial products.
+
It was generally perceived to have the highest quality [[VBR]] HE-AAC and good enough LC-AAC implementation in past. The codec could also create HEv1/v2 AAC streams for extremely low bitrates and supports multi-channel surround sound encoding.
 
+
It is generally percieved to have the highest quality [[VBR]] LC AAC implementation (although QuickTime bests it in [[CBR]] mode at 128kbps). The codec can also create HEv1/v2 AAC streams for extremely low bitrates and supports multi-channel surround sound encoding.
+
  
 
== Versions ==
 
== Versions ==
 +
The suite includes three command-line tools.
  
The suite comes with three command line tools.
 
 
{| class="wikitable"
 
{| class="wikitable"
 
! Tool !! Role !! Latest Version  
 
! Tool !! Role !! Latest Version  
Line 32: Line 32:
  
 
=== History ===
 
=== History ===
 +
The codec was originally part of Nero Digital, a complete [[MPEG-4]] Audio/Video solution. The ASP/AVC (video) codec was developed by a French company called Ateme. Nero built an in-house team to develop the AAC (audio) codec that included Ivan Dimkovic, Menno Bakker, and others. Dimkovic was the author of the PsyTel codec, and the Nero AAC codec is said to be based on this work. Menno Bakker was the developer of [[FAAC]], one of the earliest widely-available AAC encoders, and also what would be become its companion decoder, [[FAAC|FAAD]]. The Nero AAC codec became a stand-alone package around 2006, although still called Nero Digital Audio until 2009. Nero apparently still uses the codec in its products. Neither Dimkovic nor Bakker currently work at Nero, and development of the codec has stalled, but the software is stable and remains a reliable, and high-quality, option for AAC encoding.  <!-- Not a copyvio, I wrote the same text at Wikipedia's Nero AAC Codec page at the same time. -bp0 -->
  
 
* Original release, version 1.0.0.0, on 2006-05-01.
 
* Original release, version 1.0.0.0, on 2006-05-01.
 
* Tagging utility added in version 1.0.0.2 (2006-05-18).
 
* Tagging utility added in version 1.0.0.2 (2006-05-18).
 
* Linux officially supported in version 1.1.34.2 (2007-08-06).
 
* Linux officially supported in version 1.1.34.2 (2007-08-06).
 +
* Renamed from Nero Digital Audio to Nero AAC in version 1.5.1.0 (2009-12-17).
 
* SSE2 no longer required in version 1.5.3.0 (2009-12-29).
 
* SSE2 no longer required in version 1.5.3.0 (2009-12-29).
 +
* Disappeared from nero.com on 2014-07-23.
 +
* Re-appeared on nero.com in 2014-09.
  
 
== NeroAacEnc ==
 
== NeroAacEnc ==
Line 71: Line 75:
 
{| class="wikitable"
 
{| class="wikitable"
 
! Quality
 
! Quality
! Bitrate (kbit/s)
+
! Bitrate (kbit/s) per channel
 
|-
 
|-
 
| 0.05
 
| 0.05
Line 188: Line 192:
 
Strings are all encoded in utf8.
 
Strings are all encoded in utf8.
  
{| class="wikitable"  
+
{| class="wikitable sortable"  
! Tag name !! Usage !! MP4 block modified !! Comment
+
! Tag name !!class="unsortable"| Usage !! MP4 block modified !!class="unsortable"| Comment
 
|-
 
|-
 
| title || -meta:title=<string> || ©nam
 
| title || -meta:title=<string> || ©nam
Line 199: Line 203:
 
| album || -meta:album=<string> || ©alb
 
| album || -meta:album=<string> || ©alb
 
|-
 
|-
| genre || -meta:genre=<string> || ©gen || This is the "User-defined" genre as opposed to the gnre block that stores ID3 integer genres
+
| genre || -meta:genre=<string> || gnre or ©gen || Stores an ID3 genre number (-1) as integer in the '''gnre''' block if one exists for the given string, or stores the string in the "user-defined" '''©gen''' block if not
 
|-
 
|-
 
| track || -meta:track=<int> || trkn || Block stores both track and totaltracks in one binary value
 
| track || -meta:track=<int> || trkn || Block stores both track and totaltracks in one binary value
Line 209: Line 213:
 
| totaldiscs || -meta:totaldiscs=<int> || disk || Block stores both disc and totaldiscs in one binary value
 
| totaldiscs || -meta:totaldiscs=<int> || disk || Block stores both disc and totaldiscs in one binary value
 
|-
 
|-
| url || -meta:url=<string> ||  
+
| url || -meta:url=<string> || ---- || Stored in com.apple.iTunes:url
 
|-
 
|-
| copyright || -meta:copyright=<string> ||  
+
| copyright || -meta:copyright=<string> || ---- || Stored in com.apple.iTunes:copyright
 
|-
 
|-
| comment || -meta:comment=<string> ||  
+
| comment || -meta:comment=<string> || ©cmt
 
|-
 
|-
| lyrics || -meta:lyrics=<string> ||  
+
| lyrics || -meta:lyrics=<string> || ©lyr
 
|-
 
|-
| credits || -meta:credits=<string> ||  
+
| credits || -meta:credits=<string> || ---- || Stored in com.apple.iTunes:credits
 
|-
 
|-
| rating || -meta:rating=<?> ||  
+
| rating || -meta:rating=<?> || ---- || Stored in com.apple.iTunes:rating
 
|-
 
|-
| label || -meta:label=<string> ||  
+
| label || -meta:label=<string> || ---- || Stored in com.apple.iTunes:label
 
|-
 
|-
| composer || -meta:composer=<string> ||  
+
| composer || -meta:composer=<string> || ---- || Stored in com.apple.iTunes:composer (See writer for '''©wrt''')
 
|-
 
|-
| isrc || -meta:isrc=<?> ||  
+
| isrc || -meta:isrc=<string> || ---- || Stored in com.apple.iTunes:isrc ([http://isrc.ifpi.org/en/ International Standard Recording Code])
 
|-
 
|-
| mood || -meta:mood=<?> ||  
+
| mood || -meta:mood=<string> || ---- || Stored in com.apple.iTunes:mood
 
|-
 
|-
 
| tempo || -meta:tempo=<int> || tmpo || Beats per minute, stored as a 16-bit integer
 
| tempo || -meta:tempo=<int> || tmpo || Beats per minute, stored as a 16-bit integer
 
|-
 
|-
| writer || -meta-user:writer=<string> ||  
+
| writer || -meta-user:writer=<string> || ©wrt
 
|-
 
|-
| contentgroup || -meta-user:contentgroup=<string> ||  
+
| contentgroup || -meta-user:contentgroup=<string> || ©grp
 
|-
 
|-
 
| album artist || -meta-user:'album artist'=<string> || aART
 
| album artist || -meta-user:'album artist'=<string> || aART
 
|-
 
|-
| description || -meta-user:description=<string> ||  
+
| description || -meta-user:description=<string> || desc
 
|-
 
|-
| network || -meta-user:network=<string> ||  
+
| network || -meta-user:network=<string> || tvnn
 
|-
 
|-
| show || -meta-user:show=<string> ||  
+
| show || -meta-user:show=<string> || tvsh
 
|-
 
|-
| season || -meta-user:season=<int> ||  
+
| season || -meta-user:season=<int> || tvsn || Stored as 32-bit integer
 
|-
 
|-
| episode || -meta-user:episode=<int> ||  
+
| episode || -meta-user:episode=<int> || tves || Stored as 32-bit integer
 
|-
 
|-
| episodename || -meta-user:episodename=<string> ||  
+
| episodename || -meta-user:episodename=<string> || tven
 
|-
 
|-
| sorttitle || -meta-user:sorttitle=<string> ||  
+
| sorttitle || -meta-user:sorttitle=<string> || sonm
 
|-
 
|-
| sortalbum || -meta-user:sortalbum=<string> ||  
+
| sortalbum || -meta-user:sortalbum=<string> || soal
 
|-
 
|-
| sortartist || -meta-user:sortartist=<string> ||  
+
| sortartist || -meta-user:sortartist=<string> || soar
 
|-
 
|-
| sortband || -meta-user:sortband=<string> ||  
+
| sortband || -meta-user:sortband=<string> || soaa
 
|-
 
|-
| sortwriter || -meta-user:sortwriter=<string> ||  
+
| sortwriter || -meta-user:sortwriter=<string> || soco
 
|-
 
|-
| sortshow || -meta-user:sortshow=<string> ||  
+
| sortshow || -meta-user:sortshow=<string> || sosn
 
|-
 
|-
 
| itunescompilation || -meta-user:itunescompilation=<0,1> || cpil || iTunes only. More common to use something like "Various Artists" in the Album Artist field  
 
| itunescompilation || -meta-user:itunescompilation=<0,1> || cpil || iTunes only. More common to use something like "Various Artists" in the Album Artist field  
 
|-
 
|-
| itunespodcast || -meta-user:itunespodcast=<string> ||  
+
| itunespodcast || -meta-user:itunespodcast=<0,1> || pcst
 +
|-
 +
| tool || ''read-only'' || ©too || NeroAacEnc sets this value to "Nero AAC codec / <''version''>"
 +
|-
 +
| ''covers''
 +
| -add-cover:<type>:<jpegfile> <br /> -dump-cover:<type>:<jpegfile> <br /> -remove-cover:<type> <br /> -remove-cover:all
 +
| covr
 +
| Types: front, back
 
|}
 
|}
  
 
=== Notes ===
 
=== Notes ===
  
neroAacTag has a bug. Meta tag values that contain one or more semi-colons (;) will get split up into multiples of that tag.
+
neroAacTag has a quirk related to its memory-stick tag capability. Meta tag values that contain one or more semi-colons (;) will get split up into multiples of that tag.
  
 
For example, you run the following command:
 
For example, you run the following command:
Line 280: Line 291:
 
neroAacTag will show your tag as correctly applied but iTunes or Mp3tag will not see that. (Mp3tag will show you the duplicate tags in the Extended tags view.)
 
neroAacTag will show your tag as correctly applied but iTunes or Mp3tag will not see that. (Mp3tag will show you the duplicate tags in the Extended tags view.)
  
==Example EAC Settings==
+
== Examples ==
 +
 
 +
=== Linux ===
 +
bash script to transcode FLAC to AAC in Linux preserving metadata:
 +
 
 +
<pre><nowiki>
 +
#!/bin/bash
 +
 +
# Transcode FLAC to AAC (M4A) using:
 +
#  flac, metaflac, neroAacEnc, neroAacTag
 +
 
 +
# Creates M4A versions of all FLAC in the current directory.
 +
 
 +
AACENC="neroAacEnc"
 +
AACTAG="neroAacTag"
 +
TMPCVR="/run/shm/flac_cover.jpg"
 +
 
 +
gettagvalue_metaflac () {
 +
local SRCF="$1"
 +
local BLOCK="$2"
 +
local VALUE=$(metaflac "$SRCF" --show-tag="$BLOCK")
 +
 +
shopt -s nocasematch
 +
if [[ $VALUE =~ ^"$BLOCK"=(.*?) ]]; then
 +
VALUE=${BASH_REMATCH[1]}
 +
else
 +
VALUE=""
 +
fi
 +
shopt -u nocasematch
 +
echo "$VALUE"
 +
}
 +
 
 +
for f in *.flac
 +
do
 +
TITLE=$(gettagvalue_metaflac "$f" "TITLE")
 +
ARTIST=$(gettagvalue_metaflac "$f" "ARTIST")
 +
ALBUMARTIST=$(gettagvalue_metaflac "$f" "ALBUMARTIST")
 +
ALBUM=$(gettagvalue_metaflac "$f" "ALBUM")
 +
TRACKNUMBER=$(gettagvalue_metaflac "$f" "TRACKNUMBER")
 +
TRACKTOTAL=$(gettagvalue_metaflac "$f" "TRACKTOTAL")
 +
DISCNUMBER=$(gettagvalue_metaflac "$f" "DISCNUMBER")
 +
DISCTOTAL=$(gettagvalue_metaflac "$f" "DISCTOTAL")
 +
DATE=$(gettagvalue_metaflac "$f" "DATE")
 +
GENRE=$(gettagvalue_metaflac "$f" "GENRE")
 +
 
 +
if [ -e "$TMPCVR" ]; then
 +
rm "$TMPCVR"
 +
fi
 +
metaflac --export-picture-to="$TMPCVR" "$f"
 +
 
 +
fm4a=$(echo "$f" | sed s/\.flac$/.m4a/g)
 +
flac -s -d -c "$f" | "$AACENC" -ignorelength -q 0.5 -if - -of "$fm4a"
 +
 
 +
"$AACTAG" "$fm4a" \
 +
-meta:title="$TITLE" \
 +
-meta:artist="$ARTIST" \
 +
-meta-user:'album artist'="$ALBUMARTIST" \
 +
-meta:album="$ALBUM" \
 +
-meta:year="$DATE" \
 +
-meta:track="$TRACKNUMBER" \
 +
-meta:totaltracks="$TRACKTOTAL" \
 +
-meta:disc="$DISCNUMBER" \
 +
-meta:totaldiscs="$DISCTOTAL" \
 +
-meta:genre="$GENRE"
 +
 
 +
if [ -e "$TMPCVR" ]; then
 +
"$AACTAG" "$fm4a" -add-cover:front:"$TMPCVR"
 +
rm "$TMPCVR"
 +
fi
 +
 
 +
done
 +
</nowiki></pre>
 +
 
 +
=== EAC Settings ===
  
 
The following settings are examples of what one might use for music and spoken word sources, respectively. Files will be tagged properly using these commands via neroaactag.exe. These commands do run ReplayGain on the files.
 
The following settings are examples of what one might use for music and spoken word sources, respectively. Files will be tagged properly using these commands via neroaactag.exe. These commands do run ReplayGain on the files.
Line 286: Line 370:
 
This is the syntax for older versions of EAC. For 1.0 beta 2 and above, variables have a changed syntax. See [[http://wiki.hydrogenaudio.org/index.php?title=EAC_and_AAC]]
 
This is the syntax for older versions of EAC. For 1.0 beta 2 and above, variables have a changed syntax. See [[http://wiki.hydrogenaudio.org/index.php?title=EAC_and_AAC]]
  
===320kbps CBR AAC (Forced LC)===
+
====320kbps CBR AAC (Forced LC)====
 
'''Program, including path, used for compression''': C:\Windows\system32\cmd.exe<br>
 
'''Program, including path, used for compression''': C:\Windows\system32\cmd.exe<br>
 
'''Additional Command Line Options''': /c ""C:\path\to\neroaacenc.exe" -cbr 320000 -lc -if %s -of %d && "C:\path\to\Neroaactag.exe" %d -meta:artist="%a" -meta:album="%g" -meta:track="%n" -meta:title="%t" -meta:genre="%m" -meta:year="%y""
 
'''Additional Command Line Options''': /c ""C:\path\to\neroaacenc.exe" -cbr 320000 -lc -if %s -of %d && "C:\path\to\Neroaactag.exe" %d -meta:artist="%a" -meta:album="%g" -meta:track="%n" -meta:title="%t" -meta:genre="%m" -meta:year="%y""
  
===Q0.3 VBR AAC (Forced HE)===
+
====Q0.3 VBR AAC (Forced HE)====
 
'''Program, including path, used for compression''': C:\Windows\system32\cmd.exe<br>
 
'''Program, including path, used for compression''': C:\Windows\system32\cmd.exe<br>
 
'''Additional Command Line Options''': /c ""C:\Program Files\Exact Audio Copy\neroaacenc.exe" -q 0.3 -he -if %s -of %d && "C:\Program Files\Exact Audio Copy\Neroaactag.exe" %d -meta:artist="%a" -meta:album="%g" -meta:track="%n" -meta:title="%t" -meta:genre="%m" -meta:year="%y""
 
'''Additional Command Line Options''': /c ""C:\Program Files\Exact Audio Copy\neroaacenc.exe" -q 0.3 -he -if %s -of %d && "C:\Program Files\Exact Audio Copy\Neroaactag.exe" %d -meta:artist="%a" -meta:album="%g" -meta:track="%n" -meta:title="%t" -meta:genre="%m" -meta:year="%y""
  
== Nero AAC in Foobar ==
+
=== Foobar ===
  
 
The Nero AAC Codec can be used inside Foobar2000's convert function.
 
The Nero AAC Codec can be used inside Foobar2000's convert function.
Line 300: Line 384:
 
== References ==
 
== References ==
  
[http://www.hydrogenaudio.org/forums/index.php?showtopic=44310 Recommended Settings Sticky]
+
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=44310 Recommended Settings Sticky]
 +
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=44283 Discussion Thread for the Recommended Setting Sticky]
  
[http://www.hydrogenaudio.org/forums/index.php?showtopic=44283 Discussion Thread for the Recommended Setting Sticky]
+
== External links ==
 +
* [https://en.wikipedia.org/wiki/Nero_AAC_Codec Nero AAC Codec] at Wikipedia

Revision as of 17:43, 14 September 2018


Nero AAC Codec

Developer(s) Nero AG
Release information
Initial release {{{released}}}
Stable release See table
Preview release n/a
Compatibility
Operating system Windows, Linux
Additional information
Use Encoder/Decoder
License see site for license
Website Information
NeroAACCodec-1.5.1.zip
Current AAC encoders
(most to least recommended)
1 Apple AAC M/W
2 FhG AAC (Winamp) W
3 Fraunhofer FDK AAC S/L/M/W
4 Nero AAC L/W
5 FFmpeg 3.0+ AAC encoder S/L/M/W
6 FAAC S/L/M/W
7 Libav (pre-3.0 FFmpeg) AAC encoder S/L/M/W
S Source code available; L Linux; M macOS; W Windows
List of AAC encoders

Nero AAC is a freely available software suite that includes a high-quality LC and HE AAC codec and metadata tool. It was released by Nero AG for personal non-commercial and/or technology-evaluation purposes. The download package contained binaries for both Windows and Linux. It was the same codec that was used in Nero's other, then current, commercial products.

It was generally perceived to have the highest quality VBR HE-AAC and good enough LC-AAC implementation in past. The codec could also create HEv1/v2 AAC streams for extremely low bitrates and supports multi-channel surround sound encoding.

Versions

The suite includes three command-line tools.

Tool Role Latest Version
neroAacEnc AAC encoder 1.5.4.0 (Feb 18 2010)
neroAacDec AAC decoder 1.5.1.0 (Dec 17 2009)
neroAacTag MP4 metadata editor 1.5.1.0 (Dec 17 2009)

History

The codec was originally part of Nero Digital, a complete MPEG-4 Audio/Video solution. The ASP/AVC (video) codec was developed by a French company called Ateme. Nero built an in-house team to develop the AAC (audio) codec that included Ivan Dimkovic, Menno Bakker, and others. Dimkovic was the author of the PsyTel codec, and the Nero AAC codec is said to be based on this work. Menno Bakker was the developer of FAAC, one of the earliest widely-available AAC encoders, and also what would be become its companion decoder, FAAD. The Nero AAC codec became a stand-alone package around 2006, although still called Nero Digital Audio until 2009. Nero apparently still uses the codec in its products. Neither Dimkovic nor Bakker currently work at Nero, and development of the codec has stalled, but the software is stable and remains a reliable, and high-quality, option for AAC encoding.

  • Original release, version 1.0.0.0, on 2006-05-01.
  • Tagging utility added in version 1.0.0.2 (2006-05-18).
  • Linux officially supported in version 1.1.34.2 (2007-08-06).
  • Renamed from Nero Digital Audio to Nero AAC in version 1.5.1.0 (2009-12-17).
  • SSE2 no longer required in version 1.5.3.0 (2009-12-29).
  • Disappeared from nero.com on 2014-07-23.
  • Re-appeared on nero.com in 2014-09.

NeroAacEnc

This is the encoder command-line tool. It is currently at version 1.5.4.0 and was last updated Feb 18th, 2010. It is used to encode a .WAV file containing PCM data into an .MP4 file containing an AAC stream.

Usage

Windows

neroAacEnc.exe [options] -if <input-file> -of <output-file>

Linux:

./neroAacEnc [options] -if <input-file> -of <output-file>

Note: Make sure the binary is executable

Where:

<input-file>
Path to source file to encode.
The file must be in Microsoft WAV format and contain PCM data.
Specify - to encode from stdin.
Note that multiple input files can be specified, they will be encoded together into a single output file with chapter marks indicating source file divisions.
<output-file>
Path to output file to encode to, in MP4 format.

Options:

Quality/bitrate control
-q <number>
Enables "target quality" mode. (VBR)
<number> is a floating-point number in 0...1 range. I.e. 0.5 or 0.75, etc. with 1 being the highest quality and thus also having the largest output file size.
-br <number>
Specifies "target bitrate" mode. (ABR)
<number> is target bitrate in bits per second ranging from 8000 to 400000.
-cbr <number>
Specifies "target bitrate (streaming)" mode. (CBR)
<number> is target bitrate in bits per second ranging from 8000 to 400000.

When neither of above quality/bitrate options is used, the encoder defaults to equivalent of -q 0.5

The following VBR quality settings result in the following average bitrates:

Quality Bitrate (kbit/s) per channel
0.05 16
0.15 33
0.25 66
0.35 100
0.45 146
0.55 192
0.65 238
0.75 285
0.85 332
0.95 381
Multipass encoding
-2pass
Enables two-pass encoding mode.
Note that two-pass mode requires a physical file as input, rather than stdin.
Using two-pass encoding is not recommended when using VBR.
-2passperiod <number>
Overrides two-pass encoding bitrate averaging period, in milliseconds.
Specify zero to use least restrictive value possible (default).
Advanced features / troubleshooting
-lc
Forces use of LC AAC profile (HE features disabled). (LC = Low Complexity)
-he
Forces use of HE AAC profile (HEv2 features disabled). (HE = High Efficiency)
-hev2
Forces use of HEv2 AAC profile

Note that the above switches (-lc, -he, -hev2) are not required and should normally not be used. The optimal AAC profile is automatically determined from quality/bitrate settings when no override is specified. A scenario where using the switches might be useful is to force LC when you have a device that doesn’t support HE.

-ignorelength
Ignores length signaled by WAV headers of input file. Useful for certain frontends using stdin.

NeroAacDec

NeroAacDec is the command-line decoder. It is currently at version 1.5.1.0 and was last updated Dec 17th, 2009. It decodes an .MP4 file into a .WAV file

Usage

Windows:

neroAacDec.exe -if <input file> -of <output file> [-chapter <number>]

Where:

<input-file>
Path of source input file to decode, in MP4 format.
<output-file>
Path to decode the file to, in WAV format.
Specify - to decode to stdout.

Options

-chapter <number>
Specify the chapter mark within the input MP4 file.

NeroAacTag

NeroAacTag is used to list or edit an MP4 file's meta-data. It is currently at version 1.5.1.0 and was last updated Dec 17th, 2009. By default is writes iTunes-compatible tags.

Usage

Windows:

neroAacTag.exe <file.mp4> <command> [<command> [<command> ...]]

Available commands

-list-meta
Lists existing metadata entries.
-meta:<name>=<value>
Sets specified metadata field to specified value. Eg. -meta:artist="Pink Floyd"
-meta-user:<name>=<value>
Sets specified metadata field to specified value. Allows non-standard metadata fields to be added.
WARNING: fields added using -meta-user are not guaranteed to be read back on all Nero Digital compliant software/hardware.
-list-standard-meta
Displays a list of field names usable with -meta command.
-list-standard-itunes-meta
Displays a list of iTunes field names. (Usable with -meta-user)
-list-standard-memorystick-meta
Displays a list of iTunes field names.
-list-covers
Lists cover art entries.
-write-nd-covers
Write cover art also to ND tags. Default is to write only to iTunes tags.
-add-cover:<type>:<jpegfile>
Creates a cover art entry from specified JPEG file. <type> specifies type of cover art entry and can be "front" or "back". If specified cover art entry already exists, its contents are overwritten. Eg. -add-cover:back:hello.jpg
-dump-cover:<type>:<jpegfile>
Dumps specified cover art entry contents to a JPEG file.
-remove-cover:<type>
Removes specified cover art entry.
-remove-cover:all
Removes all cover art entries.
-list-chapters
Lists chapters present in the file.
-chapter:<number>
Sets chapter index metadata edits apply to. Value of 0 (default state) applies edits to all present chapters. Also affects -list-meta output.
-chapters-to-tracknumbers
Generates track number metadata according to the chapter list.

Supported metadata fields

Strings are all encoded in utf8.

Tag name Usage MP4 block modified Comment
title -meta:title=<string> ©nam
artist -meta:artist=<string> ©ART
year -meta:year=<string> ©day Block actually supports full YYYY-MM-DD
album -meta:album=<string> ©alb
genre -meta:genre=<string> gnre or ©gen Stores an ID3 genre number (-1) as integer in the gnre block if one exists for the given string, or stores the string in the "user-defined" ©gen block if not
track -meta:track=<int> trkn Block stores both track and totaltracks in one binary value
totaltracks -meta:totaltracks=<int> trkn Block stores both track and totaltracks in one binary value
disc -meta:disc=<int> disk Block stores both disc and totaldiscs in one binary value
totaldiscs -meta:totaldiscs=<int> disk Block stores both disc and totaldiscs in one binary value
url -meta:url=<string> ---- Stored in com.apple.iTunes:url
copyright -meta:copyright=<string> ---- Stored in com.apple.iTunes:copyright
comment -meta:comment=<string> ©cmt
lyrics -meta:lyrics=<string> ©lyr
credits -meta:credits=<string> ---- Stored in com.apple.iTunes:credits
rating -meta:rating=<?> ---- Stored in com.apple.iTunes:rating
label -meta:label=<string> ---- Stored in com.apple.iTunes:label
composer -meta:composer=<string> ---- Stored in com.apple.iTunes:composer (See writer for ©wrt)
isrc -meta:isrc=<string> ---- Stored in com.apple.iTunes:isrc (International Standard Recording Code)
mood -meta:mood=<string> ---- Stored in com.apple.iTunes:mood
tempo -meta:tempo=<int> tmpo Beats per minute, stored as a 16-bit integer
writer -meta-user:writer=<string> ©wrt
contentgroup -meta-user:contentgroup=<string> ©grp
album artist -meta-user:'album artist'=<string> aART
description -meta-user:description=<string> desc
network -meta-user:network=<string> tvnn
show -meta-user:show=<string> tvsh
season -meta-user:season=<int> tvsn Stored as 32-bit integer
episode -meta-user:episode=<int> tves Stored as 32-bit integer
episodename -meta-user:episodename=<string> tven
sorttitle -meta-user:sorttitle=<string> sonm
sortalbum -meta-user:sortalbum=<string> soal
sortartist -meta-user:sortartist=<string> soar
sortband -meta-user:sortband=<string> soaa
sortwriter -meta-user:sortwriter=<string> soco
sortshow -meta-user:sortshow=<string> sosn
itunescompilation -meta-user:itunescompilation=<0,1> cpil iTunes only. More common to use something like "Various Artists" in the Album Artist field
itunespodcast -meta-user:itunespodcast=<0,1> pcst
tool read-only ©too NeroAacEnc sets this value to "Nero AAC codec / <version>"
covers -add-cover:<type>:<jpegfile>
-dump-cover:<type>:<jpegfile>
-remove-cover:<type>
-remove-cover:all
covr Types: front, back

Notes

neroAacTag has a quirk related to its memory-stick tag capability. Meta tag values that contain one or more semi-colons (;) will get split up into multiples of that tag.

For example, you run the following command:

neroAacTag test.m4a -meta:artist="Artist A; Artist B; Artist C"

Instead of having a single artist tag listing all three artists (artist="Artist A; Artist B; Artist C"), you get three artist tags with an artist listed in each (artist="Artist A" artist=" Artist B" artist=" Artist C").

neroAacTag will show your tag as correctly applied but iTunes or Mp3tag will not see that. (Mp3tag will show you the duplicate tags in the Extended tags view.)

Examples

Linux

bash script to transcode FLAC to AAC in Linux preserving metadata:

#!/bin/bash
 
# Transcode FLAC to AAC (M4A) using:
#   flac, metaflac, neroAacEnc, neroAacTag

# Creates M4A versions of all FLAC in the current directory.

AACENC="neroAacEnc"
AACTAG="neroAacTag"
TMPCVR="/run/shm/flac_cover.jpg"

gettagvalue_metaflac () {
	local SRCF="$1"
	local BLOCK="$2"
	local VALUE=$(metaflac "$SRCF" --show-tag="$BLOCK")
 	
	shopt -s nocasematch	
	if [[ $VALUE =~ ^"$BLOCK"=(.*?) ]]; then
		VALUE=${BASH_REMATCH[1]}
	else
		VALUE=""
	fi
	shopt -u nocasematch
	echo "$VALUE"
}

for f in *.flac
do
	TITLE=$(gettagvalue_metaflac "$f" "TITLE")
	ARTIST=$(gettagvalue_metaflac "$f" "ARTIST")
	ALBUMARTIST=$(gettagvalue_metaflac "$f" "ALBUMARTIST")
	ALBUM=$(gettagvalue_metaflac "$f" "ALBUM")	
	TRACKNUMBER=$(gettagvalue_metaflac "$f" "TRACKNUMBER")
	TRACKTOTAL=$(gettagvalue_metaflac "$f" "TRACKTOTAL")
	DISCNUMBER=$(gettagvalue_metaflac "$f" "DISCNUMBER")	
	DISCTOTAL=$(gettagvalue_metaflac "$f" "DISCTOTAL")
	DATE=$(gettagvalue_metaflac "$f" "DATE")
	GENRE=$(gettagvalue_metaflac "$f" "GENRE")

	if [ -e "$TMPCVR" ]; then
		rm "$TMPCVR"
	fi
	metaflac --export-picture-to="$TMPCVR" "$f"

	fm4a=$(echo "$f" | sed s/\.flac$/.m4a/g)
	flac -s -d -c "$f" | "$AACENC" -ignorelength -q 0.5 -if - -of "$fm4a"

	"$AACTAG" "$fm4a" \
		-meta:title="$TITLE" \
		-meta:artist="$ARTIST" \
		-meta-user:'album artist'="$ALBUMARTIST" \
		-meta:album="$ALBUM" \
		-meta:year="$DATE" \
		-meta:track="$TRACKNUMBER" \
		-meta:totaltracks="$TRACKTOTAL" \
		-meta:disc="$DISCNUMBER" \
		-meta:totaldiscs="$DISCTOTAL" \
		-meta:genre="$GENRE"

	if [ -e "$TMPCVR" ]; then
		"$AACTAG" "$fm4a" -add-cover:front:"$TMPCVR"
		rm "$TMPCVR"
	fi

done

EAC Settings

The following settings are examples of what one might use for music and spoken word sources, respectively. Files will be tagged properly using these commands via neroaactag.exe. These commands do run ReplayGain on the files.

This is the syntax for older versions of EAC. For 1.0 beta 2 and above, variables have a changed syntax. See [[1]]

320kbps CBR AAC (Forced LC)

Program, including path, used for compression: C:\Windows\system32\cmd.exe
Additional Command Line Options: /c ""C:\path\to\neroaacenc.exe" -cbr 320000 -lc -if %s -of %d && "C:\path\to\Neroaactag.exe" %d -meta:artist="%a" -meta:album="%g" -meta:track="%n" -meta:title="%t" -meta:genre="%m" -meta:year="%y""

Q0.3 VBR AAC (Forced HE)

Program, including path, used for compression: C:\Windows\system32\cmd.exe
Additional Command Line Options: /c ""C:\Program Files\Exact Audio Copy\neroaacenc.exe" -q 0.3 -he -if %s -of %d && "C:\Program Files\Exact Audio Copy\Neroaactag.exe" %d -meta:artist="%a" -meta:album="%g" -meta:track="%n" -meta:title="%t" -meta:genre="%m" -meta:year="%y""

Foobar

The Nero AAC Codec can be used inside Foobar2000's convert function.

References

External links