Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MP4 container #95

Open
LeonarddeR opened this issue Jul 21, 2014 · 9 comments
Open

MP4 container #95

LeonarddeR opened this issue Jul 21, 2014 · 9 comments

Comments

@LeonarddeR
Copy link

It's great to have flv container support for mp3 and aac audio. However, i'd be great if icecast could also wrap aac streams in an mp4-container (extension m4a) for example. This would greatly extend support of aac streams over the internet. Currently, only chrome and safari support the aac-adts streaming format, whereas IE and Firefox do support aac in an MP4 container.

@karlheyes
Copy link
Owner

I have no specification details on that wrapping. FLV itself was poorly defined but I managed to dig out enough details.

karl

@LeonarddeR
Copy link
Author

It seems there's a library for it: https://code.google.com/p/mp4v2/

@karlheyes
Copy link
Owner

Just need the time and inclination for it, both of which is lacking, I see patent issues can be a problem for distribution as usual.

karl.

@LeonarddeR
Copy link
Author

I've been searching around the web some more. It seems to be a complex process because of the following. AAC streams are in the ADTS format, which stands for Audio Data Transport Stream. MP4 seems to contain raw AAc data. So in other words, AAC must be compressed from adts to raw (unless an encoder supports outputting raw data, FDK-AAC does) and the raw data must be thrown in an MP4 container.
I'm not sure whether libmp4v2 could cover all this. Removing the adts headers from the aac packets shouldn't have to be that difficult, in which case mp4v2 could probably arrange an MP4 container for this. Another use case could be the usage of the libavcodec and libbavformat libraries.

@LeonarddeR
Copy link
Author

RAW-AAC streams are currently dropped by icecast: WARN format-mp3/validate_mpeg no frames detected for /prr-mb.aac (20049)

@karlheyes
Copy link
Owner

FLV wraps the raw aac frames so the routines can already strip the ADTS out, in the case of mp3 they are not stripped out but the specific mpeg alignment routine can invoke the necessary callback. How you actually store/process the mp4 framing is a question and also, is there any pre-streaming content and how to process metadata.

karl.

@LeonarddeR
Copy link
Author

Another resource which might be helpful:
http://www.jiscdigitalmedia.ac.uk/guide/aac-audio-and-the-mp4-media-format
The part below AAC and MP4 multimedia resources.

@gagarcia00
Copy link

It would be great if icecast could provide aac wrapped in m4a container. It seems that support for flash is becoming increasing threatened. As for patent issues. There are no patent or copyright issues for a streaming encoder only for commercial encoder/decoder applications. License fees are due on the sale of encoders and/or decoders only. Additionally, There are no patent license fees due on the distribution of bit-stream encoded in AAC, whether such bit-streams are broadcast, streamed over a network, or provided on physical media. So I would believe that GNU Icecast would be exempt from any AAC licensing issues.

@mrx23dot
Copy link

mrx23dot commented May 3, 2022

Is there anyway to stream m4a/AAC via icecast 7years later?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants