Does anyone know if the Android Transformer API optimize the input video to be streamable over the internet (by moving the moov atom to the front)? Is there a setting you can set for that?
All I could find in the documentation was this:
The input can be of any container format supported by ExoPlayer, but the output is always an MP4 file.
Considering the output is always an MP4, it is probably optimized for web streaming, but I would like to know for sure if that is the default case or if it is something you need to set before running the transformer.
Short answer: currently it doesn't support Fast Start.
Longer answer: The Media3 Transformer has 2 implementations of Muxer:
DefaultMuxer
usesFrameworkMuxer
which uses the systemMPEG4Writer
(part of the Stagefright engine).InAppMuxer
uses their own implementation calledMp4Muxer
.Both Muxers write the
moov
atom last (aftermdat
).You can verify this using a tool such as
AtomicParsley
.The Media3 team is aware of the issue: https://github.com/androidx/media/issues/727