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

Use MP4Muxer from jcodec on API level 16-18 and streamable #1

Closed
wants to merge 1 commit into from

Conversation

ypresto
Copy link
Owner

@ypresto ypresto commented Nov 8, 2014

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.

@ypresto
Copy link
Owner Author

ypresto commented Nov 20, 2014

Currently transcoding using ByteBuffer instead of SurfaceTexture is very difficult, and there would be device specific bugs.
So I'm almost discontinuing to challenge to implement it.

For note, use qt-faststart for streaming mp4.
Java implementation is available in MIT on below URL.
https://github.com/ypresto/qtfaststart-java

@ypresto ypresto closed this May 27, 2015
@ypresto ypresto deleted the jcodec-muxer branch April 27, 2016 03:12
changxiangzhong pushed a commit to changxiangzhong/android-transcoder that referenced this pull request Sep 26, 2016
ypresto pushed a commit that referenced this pull request Aug 19, 2019
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

Successfully merging this pull request may close these issues.

1 participant