[Information] Eclipsa Audio / IAMF (Immersive Audio Model & Formats)
Official site: https://aomedia.org/specifications/iamf/
News: Eclipsa Audio is also coming to Google TV, LG TVs, Android, more https://www.flatpanelshd.com/focus.php?subaction=showfull&id=1739336996
Demo: https://aomediacodec.github.io/iamf-tools/web_demo/
Specification: https://aomediacodec.github.io/iamf/
Sample files: https://github.com/AOMediaCodec/libiamf/tree/main/tests
Lib: https://github.com/AOMediaCodec/libiamf
Tools: https://github.com/AOMediaCodec/iamf-tools
FFmpeg IAMF encoding/muxing guide: https://github.com/AOMediaCodec/iamf-tools/blob/main/docs/external/encoding_with_external_tools.md
FFmpeg IAMF patches: https://github.com/search?q=repo%3AFFmpeg%2FFFmpeg+iamf+OR+iamfdec+OR+iamfenc+NOT+fate&type=commits&s=committer-date&o=desc
YouTube is serving IAMF streams for videos that have them.
Google blog: https://opensource.googleblog.com/2025/01/introducing-eclipsa-audio-immersive-audio-for-everyone.html
Videos with IAMF: https://www.youtube.com/playlist?list=PL_r7wm6hOG9rAD8d9ruYpVMo__jR0_eNL
Example:
>yt-dlp https://www.youtube.com/watch?v=ItvQeAkpG-M -f 773 --get-url
WARNING: Unknown codec iamf.001.001.Opus
https://rr4---sn-uh-3jie.googlevideo.com/videoplayback?<redacted>
>MediaInfo "https://rr4---sn-uh-3jie.googlevideo.com/videoplayback?<redacted>"
General
Complete name : https://rr4---sn-uh-3jie.googlevideo.com/videoplayback?<redacted>
Format : dash
Codec ID : dash (iso6/mp41/iamf)
File size : 14.4 MiB
Duration : 2 min 23 s
Overall bit rate : 843 kb/s
Encoded date : 2025-01-07 09:50:42 UTC
Tagged date : 2025-01-07 09:50:42 UTC
Audio
ID : 1
Format : iamf
Codec ID : iamf
Duration : 2 min 23 s
Bit rate : 841 kb/s
Stream size : 14.4 MiB (100%)
Title : ISO Media file produced by Google Inc.
Encoded date : 2025-01-07 09:50:42 UTC
Tagged date : 2025-01-07 09:50:42 UTC
Result of my attempt to parse IAMF without really knowing how MediaInfoLib functions actually work:
General
Complete name : Animated_demo_3OA_and_2_0.iamf
Format : IAMF
Format/Info : Immersive Audio Model and Formats
File size : 11.8 MiB
Audio
Format : IAMF
Format/Info : Immersive Audio Model and Formats
Commercial name : Eclipsa Audio
Format profile : Base Profile
000000 OBU_IA_Sequence_Header (8 bytes)
000000 Header (2 bytes)
000000 obu_type: 31 (0x1F) - (5 bits)
000000 obu_redundant_copy: No
000000 obu_trimming_status_flag: No
000000 obu_extension_flag: No
000002 obu_size: 6 (0x6) - (1 bytes)
000002 ia_code: 1767992678 (0x69616D66) - (32 bits) - iamf
000006 primary_profile: 1 (0x01) - (8 bits) - Base Profile
000007 additional_profile: 1 (0x1) - (8 bits)
000008 OBU_IA_Codec_Config (23 bytes)
000008 Header (2 bytes)
000008 obu_type: 0 (0x00) - (5 bits)
000008 obu_redundant_copy: No
000008 obu_trimming_status_flag: No
000008 obu_extension_flag: No
00000A obu_size: 21 (0x15) - (1 bytes)
00000A Data: (21 bytes)
00001F OBU_IA_Audio_Element (44 bytes)
00001F Header (2 bytes)
00001F obu_type: 1 (0x01) - (5 bits)
00001F obu_redundant_copy: No
00001F obu_trimming_status_flag: No
00001F obu_extension_flag: No
000021 obu_size: 42 (0x2A) - (1 bytes)
000021 Data: (42 bytes)
00004B OBU_IA_Audio_Element (14 bytes)
00004B Header (2 bytes)
00004B obu_type: 1 (0x01) - (5 bits)
00004B obu_redundant_copy: No
00004B obu_trimming_status_flag: No
00004B obu_extension_flag: No
00004D obu_size: 12 (0xC) - (1 bytes)
00004D Data: (12 bytes)
000059 OBU_IA_Mix_Presentation (121 bytes)
000059 Header (2 bytes)
000059 obu_type: 2 (0x02) - (5 bits)
000059 obu_redundant_copy: No
000059 obu_trimming_status_flag: No
000059 obu_extension_flag: No
00005B obu_size: 119 (0x77) - (1 bytes)
00005B Data: (119 bytes)
Result of my attempt to parse IAMF without really knowing how MediaInfoLib functions actually work:
Good enough for a first attempt, I'll update/tweak when you do a PR.
000002 ia_code: 1767992678 (0x69616D66) - (32 bits) - iamf
Use Skip_C4 for showing iamf in the mediatrace output.
More IAMF samples: https://www.vrtonung.de/en/immersive-audio-demo-test-iamf-spatial-sound-with-open-tools-7-1-4-ambisonics/#anchor2
Looks like they are adding object-based audio support in the next version: https://github.com/AOMediaCodec/iamf/commit/cbccab4e21d43666161908d3d75ef6522d1cfeaf
At the moment IAMF supports scalable-channel audio / channel-based and ambisonics / scene-based.
More IAMF samples:
thanks, added to my test files
Looks like they are adding object-based audio support in the next version:
When you find a file... :-p.