id3 tags within 4k hevc encoded m4f?

Hello!


We cannot seem to retrieve id3 tags out of our 4k HEVC segments, as timedMetadata doesn't seem to update the way ts streams do. Opening an unencrypted m4f segment within a hex editor clearly shows the id3 tag as being there. Also checked using bento parser as well. Is there a different method to retrieving id3 tags when these are encoded into m4f emsg box?


Any guidance would be appreciated.


Thanks,

Accepted Reply

HEVC must be carried in fMP4 containers (for Apple platforms). The only supported way to carry ID3 timed metadata in fMP4 containers is in an emsg box. You can find a draft of the spec for that here:


https://aomediacodec.github.io/av1-id3/


but note that current Apple clients require the scheme URI to be https://developer.apple.com/streaming/emsg-id3

Replies

HEVC must be carried in fMP4 containers (for Apple platforms). The only supported way to carry ID3 timed metadata in fMP4 containers is in an emsg box. You can find a draft of the spec for that here:


https://aomediacodec.github.io/av1-id3/


but note that current Apple clients require the scheme URI to be https://developer.apple.com/streaming/emsg-id3

Could you please elaborate more on "Apple clients requiring the scheme URI to be https://developer.apple.com/streaming/emsg-id3?"

We have a tvOS app using AVKit for handling live stream playback. We currently observe timedMetadata via KVO on AVPlayerItem. The issue we have is the KVO callback for timedMetadata is never triggered for 4K stream. We don't have this issue when playing non-4K stream though.


Thanks!

We are experiencing the same issue (timedMetedata KVO not firing for 4k stream).


Looking forward to some guidance from Apple here.
We also noticed that timedMetadata is set to be deprecated. Is there a new place we should be looking for the ID3 tag?