MediaInfoLib icon indicating copy to clipboard operation
MediaInfoLib copied to clipboard

[Information] Eclipsa Audio / IAMF (Immersive Audio Model & Formats)

Open cjee21 opened this issue 10 months ago • 5 comments

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

cjee21 avatar Feb 13 '25 09:02 cjee21

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

cjee21 avatar Apr 18 '25 09:04 cjee21

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)

cjee21 avatar Apr 20 '25 15:04 cjee21

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.

JeromeMartinez avatar Apr 20 '25 17:04 JeromeMartinez

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.

cjee21 avatar Jul 29 '25 11:07 cjee21

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.

JeromeMartinez avatar Jul 30 '25 13:07 JeromeMartinez