Page MenuHomePhabricator

Enable AAC-LC support for Commons uploads and TMH/etc. playback (not patent-encumbered anymore since 2018)
Open, LowestPublic

Description

Part of the MPEG-2 Part 7 Standard (1997) which is likely to be patent free in 2018. T166024

It enjoy a wide industry and hardware support.

What about HE-AAC
This format adds backwards compatible features to the AAC encoder for supporting low bit-rates. HE-AAC is typically used for bit-rates 32–80 kbps and HE-AAC v2 for 16–40 kbps.

Event Timeline

Poyekhali changed the task status from Open to Stalled.May 22 2017, 2:15 AM
Poyekhali triaged this task as Lowest priority.

According to MPEG-LA, MPEG-2 is patent free in the United States now.

This task first needs to answer, in which file format it wants to support the codec. Codec detection happens in the file format parsing, so for each file format you want the codec to be supported in, you will have to take separate technical steps on that level (and thus likely separate tickets).

Aklapper changed the task status from Stalled to Open.Aug 16 2020, 2:17 PM

Not stalled anymore since 2018, hence resetting task status.

Aklapper renamed this task from Once it's not patent-encumbered, enable AAC-LC support for Commons uploads and TMH/etc. playback to Enable AAC-LC support for Commons uploads and TMH/etc. playback (not patent-encumbered anymore since 2018).Aug 16 2020, 2:18 PM

Question: should other profiles of AAC be enabled or just AAC-LC?

Current state of this:

  • AAC-LC is "probably ok" but we'd need to run through legal first
  • avoid touching any other variants for now :D
    • therefore if accepting *input* we must check what things actually use? or do we care? or check legal?
  • upload input with AAC is not uncommon in MPEG-2 and *very* common in MP4/ISO-BMFF flavor formats (.mp4, .m4a, .mov, .3gp)
    • the upstream getid3 library we use for metadata has a bunch of bugs in the MPEG parser and doesn't grok AAC or AC3 tracks, needs fixing
    • not sure if we can detect AAC-LC vs AAC-HC with that on MP4s, need to double-check the spec
  • transcode output of AAC-LC in fragmented MP4 for HLS-style streaming would be trivial to add, and would integrate nicely for HLS playback that I'm presently soft-launching for iOS but we will use on other OSs later via video.js+MSE.
  • note that our other audio output formats for HLS tracks are currently limited to stereo (MP3 only does stereo, and Opus supports more channels but Apple's implementation is hardcoded to support stereo only!) so AAC output may be a requirement for multichannel surround sound output

Part of the reason why I waited was to aim for something like HE-AAC.