C++ library for reading and writing MP4/M4A/AAC (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags
Go to file
Martchus ee09a50915 removed useless destructors 2015-12-21 18:35:47 +01:00
aac fixed includes 2015-09-06 19:57:33 +02:00
adts fixed includes 2015-09-06 19:57:33 +02:00
avc fixed includes 2015-09-06 19:57:33 +02:00
avi fixed includes 2015-09-06 19:57:33 +02:00
id3 removed useless destructors 2015-12-21 18:35:47 +01:00
matroska removed useless destructors 2015-12-21 18:35:47 +01:00
mp4 removed useless destructors 2015-12-21 18:35:47 +01:00
mpegaudio fixed some warnings 2015-09-19 23:42:05 +02:00
ogg using CRC tab directly 2015-10-16 21:46:53 +02:00
resources improved project files 2015-12-08 08:38:26 +01:00
vorbis removed useless destructors 2015-12-21 18:35:47 +01:00
wav set format id 2015-09-23 00:03:05 +02:00
.gitignore added .directory, docs/ 2015-07-31 01:26:21 +02:00
CMakeLists.txt disable new ABI (can't catch ios_base::failure with new ABI) 2015-12-13 20:44:45 +01:00
LICENSE Initial commit 2015-04-22 19:11:19 +02:00
README.md improved handling of "SegmentInfo"-element 2015-10-14 19:42:48 +02:00
abstractattachment.cpp added methods to buffer attachments 2015-11-26 14:22:44 +01:00
abstractattachment.h fixed buffer being released instead of discarded 2015-12-21 00:03:04 +01:00
abstractchapter.cpp fixed includes 2015-09-06 19:57:33 +02:00
abstractchapter.h fixed includes 2015-09-06 19:57:33 +02:00
abstractcontainer.cpp improved handling of "SegmentInfo"-element 2015-10-14 19:42:48 +02:00
abstractcontainer.h improved handling of "SegmentInfo"-element 2015-10-14 19:42:48 +02:00
abstracttrack.cpp set extension channel config to stereo if PS is present 2015-09-24 01:15:27 +02:00
abstracttrack.h set extension channel config to stereo if PS is present 2015-09-24 01:15:27 +02:00
backuphelper.cpp fixed includes 2015-09-06 19:57:33 +02:00
backuphelper.h First commit 2015-04-22 19:22:01 +02:00
basicfileinfo.cpp fixed includes 2015-09-06 19:57:33 +02:00
basicfileinfo.h First commit 2015-04-22 19:22:01 +02:00
caseinsensitivecomparer.h fixed includes 2015-09-06 19:57:33 +02:00
exceptions.cpp fixed spelling mistakes 2015-10-16 21:46:36 +02:00
exceptions.h First commit 2015-04-22 19:22:01 +02:00
fieldbasedtag.h removed useless destructors 2015-12-21 18:35:47 +01:00
general.pri disable new ABI (can't catch ios_base::failure with new ABI) 2015-12-13 20:44:45 +01:00
genericcontainer.h fixed includes 2015-09-06 19:57:33 +02:00
genericfileelement.h fixed buffer being released instead of discarded 2015-12-21 00:03:04 +01:00
generictagfield.h fixed includes 2015-09-06 19:57:33 +02:00
localeawarestring.cpp First commit 2015-04-22 19:22:01 +02:00
localeawarestring.h added comments and move c'tor 2015-11-10 21:27:40 +01:00
margin.h First commit 2015-04-22 19:22:01 +02:00
mediafileinfo.cpp add notifications from container when applying changed via container 2015-12-21 00:03:53 +01:00
mediafileinfo.h added more methods to control file layout when applying changes 2015-11-26 14:28:54 +01:00
mediaformat.cpp changed handling of SBR/PS AAC extension 2015-09-24 00:19:04 +02:00
mediaformat.h changed handling of SBR/PS AAC extension 2015-09-24 00:19:04 +02:00
nestingsupportingtag.h First commit 2015-04-22 19:22:01 +02:00
notification.cpp fixed includes 2015-09-06 19:57:33 +02:00
notification.h fixed spelling mistake 2015-09-23 00:02:44 +02:00
positioninset.h First commit 2015-04-22 19:22:01 +02:00
signature.cpp fixed detection of MPEG audio frame header 2015-09-19 22:33:11 +02:00
signature.h fixed includes 2015-09-06 19:57:33 +02:00
size.h fixed includes 2015-09-06 15:42:18 +02:00
statusprovider.cpp fixed includes 2015-09-06 19:57:33 +02:00
statusprovider.h fixed includes 2015-09-06 19:57:33 +02:00
tag.cpp fixed includes 2015-09-06 19:57:33 +02:00
tag.h fixed includes 2015-09-06 19:57:33 +02:00
tagparser.doxygen First commit 2015-04-22 19:22:01 +02:00
tagparser.pro improved project files 2015-12-08 08:38:26 +01:00
tagtarget.cpp fixed includes 2015-09-06 19:57:33 +02:00
tagtarget.h allow specific targets to be created with createAppropriateTags() 2015-10-13 23:32:00 +02:00
tagvalue.cpp fixed includes 2015-09-06 19:57:33 +02:00
tagvalue.h fixed includes 2015-09-06 19:57:33 +02:00

README.md

Tag Parser

C++ library for reading and writing MP4 (iTunes), ID3, Vorbis and Matroska tags.

Supported formats

The tag library can read and write the following tag formats:

  • iTunes-style MP4 tags (MP4-DASH is supported)
  • ID3v1 and ID3v2 tags
  • Vorbis comments (cover art via "METADATA_BLOCK_PICTURE" is supported)
  • Matroska/WebM tags and attachments

The library can also display technical information such as the ID, format, language, bitrate, duration, size, timestamps, sampling frequency, FPS and other information of the tracks.

It also allows to inspect and validate the element structure of MP4 and Matroska files.

For examples check out the CLI interface of my Tag Editor (which is also on Git).

Build instructions

The tagparser library depends on c++utilities and is built in the same way. It also depends on zlib.

TODO

  • Use padding to prevent rewriting the entire file to save tags.
  • Support more tag formats (EXIF, PDF metadata, ...).
  • Do tests with Matroska files which have multiple segments.