Search code examples
javaandroidjcodec

Encoding Images Into Video with JCodec Errors


I need to encode multiple images (Of which I have the complete path) into a video of a certain FPS on android.

Trials: How to create a video from an array of images in Android?

Why I couldn't get it to work: I added the Jcodec Dependecy to gradle file (

compile 'org.jcodec:jcodec:0.2.3'
compile 'org.jcodec:jcodec-android:0.2.2'

)

I then pasted the code into a function and this is what I get: As You can see I managed to import SequenceEncoder (import org.jcodec.api.SequenceEncoder;) But it doesn't recognize Buffered Image (I think it's because I have to use Bitmap)

And it gives me an error in the SequenceEncoder.

Also doesn't recognize the encodeImage Method.

Then I tried with the code I found on JCodec webSite:

SeekableByteChannel out = null;
    try {
        out = NIOUtils.writableFileChannel("/tmp/output.mp4");
        // for Android use: AndroidSequenceEncoder
        AWTSequenceEncoder encoder = new AWTSequenceEncoder(out, Rational.R(25, 1));
        for (...) {
            // Generate the image, for Android use Bitmap
            BufferedImage image = ...;
            // Encode the image
            encoder.encodeImage(image);
        }
        // Finalize the encoding, i.e. clear the buffers, write the header, etc.
        encoder.finish();
    } finally {
        NIOUtils.closeQuietly(out);
    }

But it doesn't recognize AWTSequenceEncoder and thus the methods encodeImage and finish.

What am I doing wrong?


Solution

  • Ok, I found the Answer to the problem, technically it is in the answers of this question: How to create a video from an array of images in Android?

    But has only two votes, despite being the only one that worked for me and for what I found out the only one that should work. You cannot use BufferedImages in android, while the most voted quesion do and the SequenceEncoder that I didn't find is replaced with AndroidSequenceEncoder.