From Hacker Public Radio 1393

Failure to include metadata tags is like sending e-Mail without any text on the subject line

oggenc does NOT transfer attached pictures from flac input (though it DOES transfer all vorbiscomment metadata. FLAC stores attached pictures in a separate metadata structure so oggenc misses it. opusenc - at least in recent beta versions - DOES appear to transfer the attached pictures as well as the vorbiscomments, though. Another reason to upgrade to opus, I suppose...) 

The 2 Most Important Meta-tag Systems
ID3 Version 2.3
&#9;.mp3 files
Vorbiscomments
&#9;.opus
&#9;ogg vorbis
&#9;.flac
&#9;.speex

webm/matroska
windows media
.wav 

KID3-CLI 3.0 is a post-encoding metadata editor available on many platforms.  Has a command line version too.

PuddleTag on Linux for sure, Mac unofficially &amp;amp; possibly on Windows, supports multiple attached pictures &amp;amp; modern file formats, good for editing whole directories at once.

Linux command line tag editors
MPG123-ID3dump for .mp3 files including attached pictures, comes with MPG123 command line audio player
ID3TDD supports multiple pictures, but tags them all as 3-Front Cover
vorbiscomment, but you must generate the METADATA_BLOCK_PICTURE yourself.  Package includes ogginfo tool which displays ogg vorbis metadata
opustools package encoder &amp;amp; decoder, opusinfo displays metadata but doesn't dump pictures
exiftool mostly used for photos, but can display metadata from pretty much every media file except for .opus

There are lots of media file formats, but the only one that uses ID3v1 or ID3v2.3 metadata tagging system is the .mp3 file format.
&#9;The LAME .mp3 encoder appears to accept only 1 attached picture on the command line.
&#9;.mp4 is an object-oriented file format, kind of like a special version of Quicktime format
&#9;&#9;Quicktime isn't a "filetype", it's a framework.  But it gets used like a filetype.
&#9;The .mp4 specification includes an ID3 data object you could put an entire ID3 header into
&#9;.m4a is the audio version of a .mp4 filetype
&#9;&#9;You might see .m4a files with this ID3 data object populated by a valid ID3 object
&#9;&#9;But .m4a files typically come from iTunes, but Apple uses an undocumented proprietary format for metadata, so you probably won't normally see the ID3 object on a .m4a file from Apple
There are 2 or 3 other undocumented metadata formats you might run into as well (I don't know what they are.)

ID3 Version 1 is an UNRELATED bad old format with SERIOUS LIMITATIONS.
&#9;All metadata is crammed into a specialized 128B data structure at the end of an .mp3 file.
&#9;By putting the 128B at the end of an .mp3 file, crappy players that did not understand what it was would probably just interpret it as more sound a play it as some noise, or if your player crashed on the metadata, it would do so at least AFTER you got to hear the file
&#9;30B each of title, artist, album, comment
&#9;4B year
&#9;1B genre code number, which of course, limits the genres to 2^8 = 256 labels, that need to be looked up in a table to find the definition.
&#9;There are ~141 genre codes defined by ID3v1
&#9;None of them are "podcast"
&#9;
ID3 Version 2.3
&#9;Completely different than ID3v1
&#9;A whole bunch (~75?) of special data fields, each with their own special data structure at the beginning of the file
&#9;Each field has a special 4-character code to identify it, such as TCON for genre or TIT2 for title
&#9;The (~75?) special data fields use (~5-6) different KINDS of special data structures
&#9;&#9;Of these (~75?) special data fields, 39 fields use the text-class kind of special data structure
&#9;&#9;The text-based data fields have the same structure
&#9;&#9;Except for comments, which has its own structure
&#9;&#9;And except for the "involved persons list", which is a catch-all text field for stuffing in all the names &amp;amp; roles for everyone else whose role isn't defined in one of the other special fields.
&#9;&#9;When you stuff multiple entries into a text field, you separate them with a forward slash '/'
&#9;&#9;Attached Picture
&#9;&#9;&#9;Aside from the text-based special data fields above, the only other frame anybody normally uses is the "attached picture" field.
&#9;&#9;&#9;Not just a copy of a .jpg file or whatever image format
&#9;&#9;&#9;Specifies a MIME type of picture data
&#9;&#9;&#9;Has a free-form text description of the picture data
&#9;&#9;&#9;You can have multiple "attached picture" fields
&#9;&#9;&#9;&#9;Except for 2 "file icon" attached picture types, one copy each only
&#9;&#9;&#9;Has a number code to indicate what the picture is supposed to be
&#9;&#9;&#9;&#9;Cover art
&#9;&#9;&#9;&#9;Inside cover
&#9;&#9;&#9;&#9;Liner notes art
&#9;&#9;&#9;&#9;Artist headshots 
&#9;&#9;&#9;&#9;Record publisher logo
&#9;&#9;&#9;&#9;Image of the silk-screened CD art on the disc it came from
&#9;&#9;&#9;&#9;Back cover
&#9;&#9;&#9;&#9;A brightly colored fish (the ogg format uses a cartoon fish for its logo, picture type 17)
&#9;&#9;&#9;&#9;etc.
&#9;"Content Type" = genre
&#9;The genre field is text in ID3v2, not a number code like ID3v1
&#9;But the ID3v2 specification still suggests adding the ID3v1 genre code number to this field
&#9;Text field TXXX
&#9;&#9;User-defined
&#9;&#9;You can have as many TXXX fields as you want, so long as the descriptions are different
&#9;&#9;A key name
&#9;&#9;A string value
&#9;&#9;Could be used to include vorbiscomments

ID3 Version 2.4
&#9;Don't bother using ID3v2.4
&#9;Not widely used
&#9;If Windows won't read your files' tags, maybe someone tagged them with the ID3v2.4 format instead of the ID3v2.3 format.
&#9;Mostly a few backwards-incompatible renamings of a few tags
&#9;A few obscure new tags
&#9;When you stuff multiple entries into a text field, you separate them with a NULL, instead of the forward slash '/' used by ID3v2.3
&#9;Chapters
&#9;&#9;There was a 2005 method of stuffing another ID3 header into the first one to make chapter tags, but this was made 5 years after ID3v2.4, which isn't used much anyway, and only the BBC ever used it with their own player software, so you should never try to use this either.  If you have to do some archaeology on an old BBC file, you might need to know this.  Otherwise, just use vorbiscomments if you want to make an "enhanced podcast" with images that show up during playback like a slideshow, based on the chapter tags.

.mp3 format only uses ID3 format metadata tags
All the other file formats we care about use Vorbiscomments
https://wiki.xiph.org/Chapter_Extension
https://www.linuxcommand.org/man_pages/vorbiscomment1.html
https://wiki.xiph.org/VorbisComment
https://en.wikipedia.org/wiki/VorbisComment

Vorbiscomments
&#9;All printable characters, must be text characters, no non-printable characters or control codes
&#9;You could search vorbiscomments with grep
&#9;Tag key names are case insensitive
&#9;You can create your own key names
&#9;All tags are OPTIONAL; you can have an ogg file with NO tags present and it will still be compliant
&#9;But there is a recommended standard for common metadata
&#9;&#9;https://age.hobba.nl/audio/mirroredpages/ogg-tagging.html
&#9;&#9;Singleton tags should only appear once
&#9;&#9;&#9;If one of these tags appears more than once (a non-compliant mistake), its last appearance should be displayed if there is only room to display one instance of the tag.
&#9;&#9;Genre should be TEXT not a number
&#9;&#9;You might put comments in the DESCRIPTION field, or make your own "comment" tag, although "comment" isn't in the recommended standard.  You could put the same data in both places, although you're duplicating the data.
&#9;&#9;ISRC tag="International Standard Recording Code", a special tracking code for commercial audio recordings 
&#9;The chapter comments proposed tags are very similar to codes fed to .matroska tools to create tags for those files
&#9;Replay gain tags could be used/set by user's player software to select a relative playback volume for track adjustment, if you like.
&#9;Location supports geo-tagging the track, although what this means isn't clear. GEO_LOCATION
&#9;&#9;Is it where the track was recorded?
&#9;&#9;Is it thee location referred to in the content?
&#9;&#9;Is it the location where the intended audience is?
&#9;&#9;Is it a tag that specifies where user's device should be when it automatically starts to play?
&#9;&#9;Is it a bunch of waypoints of recordings of chapters you took at different scenic locations in a travelogue?
&#9;Attached pictures are a pain.
&#9;&#9;A visible picture is obviously not text-encoded (other than ASCII art).  Not human readable.
&#9;&#9;Shouldn't be in the metadata anyway, should be an independent file inside the container
&#9;&#9;But ogg files don't support encapsulation of picture format files in the container
&#9;&#9;And .mp3 files have been including the binary encoded album art pictures for so long, it is standard practice in .mp3 format
&#9;&#9;Encoding a picture inside a vorbiscomments tag involves encoding it as printable text characters.
&#9;&#9;&#9;e-Mail programs have to do this kind of thing too, encoding pictures as text
&#9;&#9;&#9;5 or 10 years ago ( right now is 2013-12-05 ) people were doing this with an obsolete field called "COVERART" with the contents of the field being nothing more than the base64 encoded .jpg or .png file
&#9;&#9;&#9;&#9;Don't do this now, no one will ever see the cover art
&#9;&#9;&#9;&#9;Nobody ever implemented using this field
&#9;&#9;&#9;&#9;It was replaced long ago by an officially documented structure
&#9;&#9;METADATA_BLOCK_PICTURE is the correct vorbiscomments tag name for a picture.
&#9;&#9;&#9;https://wiki.xiph.org/VorbisComment#Cover_art
&#9;&#9;&#9;A complete Base64 encoded data structure, includes
&#9;&#9;&#9;&#9;Width
&#9;&#9;&#9;&#9;Height
&#9;&#9;&#9;&#9;MIME type
&#9;&#9;&#9;&#9;Description [optional]
&#9;&#9;&#9;&#9;Picture Type number code ( similar to ID3 )
&#9;&#9;&#9;.flac uses vorbiscomments for its metadata
&#9;&#9;&#9;&#9;Except for attached pictures
&#9;&#9;&#9;&#9;Unlike .vorbis, .speex &amp;amp; .opus files, .flac files are not inside .ogg containers.  .flac is its own container format.
&#9;&#9;&#9;&#9;.flac has its own attached picture block, very similar to .mp3 files
&#9;&#9;&#9;&#9;&#9;.flac also calls this tag "METADATA_BLOCK_PICTURE"
&#9;&#9;&#9;&#9;&#9;&#9;But it does not have the same format as the vorbiscomments METADATA_BLOCK_PICTURE tag!
&#9;&#9;&#9;.vorbis, .speex &amp;amp; .opus files
&#9;&#9;&#9;&#9;Don't have a special metadata block just for attached pictures
&#9;&#9;&#9;&#9;These build a .flac METADATA_BLOCK_PICTURE tag, then Base64 encoded it into text that can be used as a valid vorbiscomment METADATA_BLOCK_PICTURE tag.
&#9;&#9;The .flac &amp;amp; .opus LINUX command line file encoders allow you to include as many attached pictures as you want as switches
&#9;&#9;The LINUX command line ogg vorbis encoder does not allow you to include multiple pictures
&#9;&#9;&#9;BUT, the ogg vorbis encoder does accept .flac files for input
&#9;&#9;&#9;&#9;It will transfer the .flac file's metadata to the finished .vorbis file, including any extra pictures that were already in the .flac file's metadata
&#9;&#9;So if you make .flac files with complete metadata as the source to work from, you can generate .opus &amp;amp; .vorbis files without editing the metadata further
&#9;&#9;
.mp4 is a Apple Computer Company format.
&#9;If you wanted to create an "enhanced podcast" that shows pictures at certain times specified by chapter markers, you'd have to use special iTunes tags with .mp4 files to make it work, normally only on apple hardware, but WanAMP can also read this format and shows the pictures on a Windows box.
&#9;No one else knows haw to make them, as this is not documented well or supported on most other players.
&#9;You should just use Ogg Vorbis with vorbiscomments that have chapter markers instead.
&#9;
.wav files
&#9;The lowest common denominator for audio files
&#9;Usually lossless PCM audio
&#9;Simple in structure, widely supported
&#9;.wav files support metadata, but they are badly documented
&#9;Audacity can include a limited set of tags in a .wav both as an "info chunk", whatever that is, AND as an ID3 tag
&#9;
.webm is a special file format version of .matroska
&#9;.matroska metadata is even worse than ID3
&#9;&#9;Uses ~100 rigidly defined tag names
&#9;.webm uses ~70 of those .matroska tags
&#9;The tags are heavily video-related, seems to presume the .matroska files will only contain movies
&#9;Supposed to be object-oriented
&#9;&#9;Burying some tags inside other tags, such as a "character" tag inside an "actor" tag
&#9;"thanks to" tag is a catch-all for stuff that couldn't go anywhere else
&#9;This metadata is tacked onto the end of the file so in theory you don't ever need to reincode the video file if you need to change the metadata
&#9;&#9;Streaming media won't get the metadata until the entire file is played, unless the whole file is being buffered to the end before playback
&#9;.webm doesn't support attached pictures at all
&#9;&#9;.matroska has limited support for attached pictures
&#9;&#9;&#9;Allows a large and a small version of a "banner graphic"
&#9;&#9;&#9;Allows a large and a small version of an "album art graphic"
&#9;.webm audio files only exist as afterthought to video
&#9;&#9;You could make one with GNU Media Goblin
&#9;&#9;&#9;Useful only as a "test"

.asf or .wma audio files are bad, obscure, Windows media file formats
&#9;.asf=.mp4
&#9;.wma=.m4a
&#9;.wmv=.m4v
&#9;All of these Windows media files are really just .asf format, similar to the way .m4a &amp;amp; .m4v are really just .mp4 format.
&#9;Metadata is limited
&#9;&#9;5 different metadata "objects"
&#9;&#9;&#9;Can contain different kinds of metadata
&#9;&#9;&#9;"content description object", a very small set of pre-defined metadata fields, 64kB each
&#9;&#9;&#9;&#9;title
&#9;&#9;&#9;&#9;author
&#9;&#9;&#9;&#9;copyright
&#9;&#9;&#9;&#9;description
&#9;&#9;&#9;&#9;rating
&#9;&#9;&#9;"content branding" object
&#9;&#9;&#9;&#9;Limited to a single banner image
&#9;&#9;&#9;&#9;album art
&#9;&#9;&#9;&#9;URL for copyright warning stored online
&#9;&#9;&#9;"extended content description" object
&#9;&#9;&#9;&#9;Random other metadata
&#9;&#9;&#9;"metadata" object
&#9;&#9;&#9;&#9;Seems to be an "extended metadata content" object that can refer to just one file inside the .asf container, not just all of them at once
&#9;&#9;&#9;"metadata library object"
&#9;&#9;&#9;&#9;Anything else

No browsers automatically display audio or video metadata by default, built-in.  The web designer must write code to include this on the page.