How do Opus R128_TRACK_GAIN tags, Vorbis-comment ReplayGain tags and the output gain header differ in reference level, and which players document or implement applying each?
RFC 7845 makes the Opus ID-header output gain the default gain. The optional R128_TRACK_GAIN/R128_ALBUM_GAIN tags are Q7.8 dB values relative to the EBU R128 reference, applied on top of the output gain, and must be updated or removed if the output gain changes; REPLAYGAIN_* tags should not appear in Opus comments. Players map R128 tags to ReplayGain's reference by adding 5 dB (mpv: ReplayGain 2 at -18 LUFS; MPD: ReplayGain 89 dB). mpv applies no replay gain unless asked, and album mode falls back to track gain. In the FFmpeg files read, only REPLAYGAIN_* tags are exported as side data and the Opus header gain read is commented out of the demuxer.
RFC 7845 makes the Opus ID-header output gain the default gain. The optional R128_TRACK_GAIN/R128_ALBUM_GAIN tags are Q7.8 dB values relative to the EBU R128 reference, applied on top of the output gain, and must be updated or removed if the output gain changes; REPLAYGAIN_* tags should not appear in Opus comments. Players map R128 tags to ReplayGain's reference by adding 5 dB (mpv: ReplayGain 2 at -18 LUFS; MPD: ReplayGain 89 dB). mpv applies no replay gain unless asked, and album mode falls back to track gain. In the FFmpeg files read, only REPLAYGAIN_* tags are exported as side data and the Opus header gain read is commented out of the demuxer.
Curator qualifications: Specs and code read 2026-10-22; no file tagged or played. Whether FFmpeg applies the Opus header gain in its decoder was not checked. Hydrogenaudio text is a proposal and was verified on the producer copy only.
Limitations: Specs and code read 2026-10-22; no file tagged or played.
Evidence status: statements located in the cited sources by a correlated desk review (Claude); not executed; not independently reviewed.
Structured fields
{
"citations": [
{
"url": "https://www.rfc-editor.org/rfc/rfc7845.txt",
"note": "RFC 7845 section 5.2.1 (L1360-1415) and ID header L797-808; mpv demux/demux.c at a43ab31 L3139-3156; mpv DOCS/man/options.rst at a43ab31 L2212-2224; MPD src/decoder/plugins/OpusTags.cxx at 1ec8726 L21-28, L56-68; FFmpeg libavformat/replaygain.c at 3a5eb94 L95-108; FFmpeg libavformat/oggparseopus.c at 3a5eb94 L65"
},
{
"url": "http://web.archive.org/web/20260913084341id_/https://wiki.hydrogenaudio.org/index.php?title=ReplayGain_2.0_specification",
"note": "RFC 7845 section 5.2.1 (L1360-1415) and ID header L797-808; mpv demux/demux.c at a43ab31 L3139-3156; mpv DOCS/man/options.rst at a43ab31 L2212-2224; MPD src/decoder/plugins/OpusTags.cxx at 1ec8726 L21-28, L56-68; FFmpeg libavformat/replaygain.c at 3a5eb94 L95-108; FFmpeg libavformat/oggparseopus.c at 3a5eb94 L65"
},
{
"url": "https://github.com/mpv-player/mpv/blob/a43ab319fdb7aec31874999e5562c9975328cbda/DOCS/man/options.rst",
"note": "RFC 7845 section 5.2.1 (L1360-1415) and ID header L797-808; mpv demux/demux.c at a43ab31 L3139-3156; mpv DOCS/man/options.rst at a43ab31 L2212-2224; MPD src/decoder/plugins/OpusTags.cxx at 1ec8726 L21-28, L56-68; FFmpeg libavformat/replaygain.c at 3a5eb94 L95-108; FFmpeg libavformat/oggparseopus.c at 3a5eb94 L65"
},
{
"url": "https://github.com/mpv-player/mpv/blob/a43ab319fdb7aec31874999e5562c9975328cbda/demux/demux.c",
"note": "RFC 7845 section 5.2.1 (L1360-1415) and ID header L797-808; mpv demux/demux.c at a43ab31 L3139-3156; mpv DOCS/man/options.rst at a43ab31 L2212-2224; MPD src/decoder/plugins/OpusTags.cxx at 1ec8726 L21-28, L56-68; FFmpeg libavformat/replaygain.c at 3a5eb94 L95-108; FFmpeg libavformat/oggparseopus.c at 3a5eb94 L65"
},
{
"url": "https://github.com/MusicPlayerDaemon/MPD/blob/1ec8726d07a634fbbdcee9d321211e2e6afe150e/src/decoder/plugins/OpusTags.cxx",
"note": "RFC 7845 section 5.2.1 (L1360-1415) and ID header L797-808; mpv demux/demux.c at a43ab31 L3139-3156; mpv DOCS/man/options.rst at a43ab31 L2212-2224; MPD src/decoder/plugins/OpusTags.cxx at 1ec8726 L21-28, L56-68; FFmpeg libavformat/replaygain.c at 3a5eb94 L95-108; FFmpeg libavformat/oggparseopus.c at 3a5eb94 L65"
},
{
"url": "https://github.com/FFmpeg/FFmpeg/blob/3a5eb948e76dc6390e4b3cff7becf84bc492b7af/libavformat/replaygain.c",
"note": "RFC 7845 section 5.2.1 (L1360-1415) and ID header L797-808; mpv demux/demux.c at a43ab31 L3139-3156; mpv DOCS/man/options.rst at a43ab31 L2212-2224; MPD src/decoder/plugins/OpusTags.cxx at 1ec8726 L21-28, L56-68; FFmpeg libavformat/replaygain.c at 3a5eb94 L95-108; FFmpeg libavformat/oggparseopus.c at 3a5eb94 L65"
},
{
"url": "https://github.com/FFmpeg/FFmpeg/blob/3a5eb948e76dc6390e4b3cff7becf84bc492b7af/libavformat/oggparseopus.c",
"note": "RFC 7845 section 5.2.1 (L1360-1415) and ID header L797-808; mpv demux/demux.c at a43ab31 L3139-3156; mpv DOCS/man/options.rst at a43ab31 L2212-2224; MPD src/decoder/plugins/OpusTags.cxx at 1ec8726 L21-28, L56-68; FFmpeg libavformat/replaygain.c at 3a5eb94 L95-108; FFmpeg libavformat/oggparseopus.c at 3a5eb94 L65"
}
]
}Evidence claims
- [sourced_fact] RFC 7845 makes the Opus ID-header output gain the default gain. The optional R128_TRACK_GAIN/R128_ALBUM_GAIN tags are Q7.8 dB values relative to the EBU R128 reference, applied on top of the output gain, and must be updated or removed if the output gain changes; REPLAYGAIN_* tags should not appear in Opus comments. Players map R128 tags to ReplayGain's reference by adding 5 dB (mpv: ReplayGain 2 at -18 LUFS; MPD: ReplayGain 89 dB). mpv applies no replay gain unless asked, and album mode falls back to track gain. In the FFmpeg files read, only REPLAYGAIN_* tags are exported as side data and the Opus header gain read is commented out of the demuxer. · locator: RFC 7845 section 5.2.1 (L1360-1415) and ID header L797-808; mpv demux/demux.c at a43ab31 L3139-3156; mpv DOCS/man/options.rst at a43ab31 L2212-2224; MPD src/decoder/plugins/OpusTags.cxx at 1ec8726 L21-28, L56-68; FFmpeg libavformat/replaygain.c at 3a5eb94 L95-108; FFmpeg libavformat/oggparseopus.c at 3a5eb94 L65 source
Rights
| component | license | hosting | redistribution | modification | training | Evidence and notes |
|---|---|---|---|---|---|---|
| documentation | unknown | permitted | permitted | unknown | unknown | Applies to this original summary only, not to the cited sources. |
Linked records
- cites → http://web.archive.org/web/20260913084341id_/https:/wiki.hydrogenaudio.org/index.php?title=ReplayGain_2.0_specification
- cites → https://github.com/FFmpeg/FFmpeg/blob/3a5eb948e76dc6390e4b3cff7becf84bc492b7af/libavformat/oggparseopus.c
- cites → https://github.com/FFmpeg/FFmpeg/blob/3a5eb948e76dc6390e4b3cff7becf84bc492b7af/libavformat/replaygain.c
- cites → https://github.com/MusicPlayerDaemon/MPD/blob/1ec8726d07a634fbbdcee9d321211e2e6afe150e/src/decoder/plugins/OpusTags.cxx
- cites → https://github.com/mpv-player/mpv/blob/a43ab319fdb7aec31874999e5562c9975328cbda/DOCS/man/options.rst
- cites → https://github.com/mpv-player/mpv/blob/a43ab319fdb7aec31874999e5562c9975328cbda/demux/demux.c
- cites → https://www.rfc-editor.org/rfc/rfc7845.txt