E/MPEG4Writer(2166): Missing codec specific data
Sounds like you didn't call MediaMuxer#addTrack()
with a MediaFormat
that included the CSD. See the EncodeAndMuxTest.java code for an example of how to do this.
Looking at the MPEG4Writer implementation used by MediaMuxer
, there's an isTrackMalformed()
check on line 2360; it sets ERROR_MALFORMED
if the CSD data isn't present, but doesn't return immediately. Nothing clears the error, so it'll do a bunch of work and then fail, which seems to match what you're seeing.