AVPlayer: Pulling Timed Metadata from an aac File

Situation:

I have an HLS audio only stream comprised of aac files. I've confirmed that timed metadata is attached to the stream using ffprobe. Unfortunately I'm unable to access the timed metadata from the AVPlayer.

Output from FFProbe

~ ffprobe index_1_296.aac
....
Input #0, aac, from 'index_1_296.aac':
  Metadata:
id3v2_priv.com.apple.streaming.transportStreamTimestamp: \x00\x00\x00\x00.\x00\x05\xc0
  Duration: 00:00:06.02, bitrate: 96 kb/s
  Stream #0:0: Audio: aac (LC), 48000 Hz, stereo, fltp, 96 kb/s

What I've done:

In my class containing the AVPlayer I've extended the AVPlayerItemMetadataOutputPushDelegate and implemented the metadataOutput method.

Code

I followed an example I found here: https://dcordero.medium.com/hls-timed-metadata-with-avplayer-9e20806ef92f however below is the code implementing the metadataOutput method:

func metadataOutput(_ output: AVPlayerItemMetadataOutput, didOutputTimedMetadataGroups groups: [AVTimedMetadataGroup], from track: AVPlayerItemTrack?) {
        if let item = groups.first?.items.first
        {
            item.value(forKeyPath: #keyPath(AVMetadataItem.value))
            let metadataValue = (item.value(forKeyPath: #keyPath(AVMetadataItem.value))!)
            print("Metadata value: \n \(metadataValue)")
        } else {
            print("MetaData Error")
        }
    }

What I'm seeing:

When playing manifests containing .ts files this metadataOutput method is triggered with timed metadata. However when I'm playing a manifest containing only .aac files the metadataOutput method is never triggered.

Question:

  1. Does AVPlayer support extracting timed metadata from aac files?
  2. If it does are there any examples of this working?
AVPlayer: Pulling Timed Metadata from an aac File
 
 
Q