Use MP4Muxer from jcodec on API level 16-18 and streamable #1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
MediaCodec and MediaExtractor is available from API level >= 16 in fact. But MediaMuxer is only available in API level >= 18.
Another problem is "The mp4 file will not be streamable." message printed. It is bug or bad spec of MediaMuxer.cpp.
jcodec does not depend on Android API, and also seems to support streaming.
Below is jcodec's mp4 rewriter for streaming.
https://github.com/jcodec/jcodec/blob/26df5b767473fc93690789743091475a35e5efb7/src/main/java/org/jcodec/movtool/Flattern.java
NOTE:
Because compatibility test suite (CTS) for MediaCodec is first added in Android 4.3 (API 18).
So runtime CTS checker should be implemented for older devices.