Кодирование изображений в видео с ошибками JCodec - PullRequest
0 голосов
/ 04 сентября 2018

Мне нужно закодировать несколько изображений (из которых у меня есть полный путь) в видео определенного FPS на Android.

Испытания: Как создать видео из массива изображений в Android?

Почему я не мог заставить его работать: Я добавил зависимость Jcodec в файл Gradle (

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

)

Затем я вставил код в функцию, и вот что я получил: Как видите, мне удалось импортировать SequenceEncoder (import org.jcodec.api.SequenceEncoder;) Но он не распознает буферизованное изображение (я думаю, это потому, что я должен использовать растровое изображение)

И это дает мне ошибку в SequenceEncoder.

Также не распознает метод encodeImage.

Затем я попытался с кодом, найденным на веб-сайте JCodec:

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);
    }

Но он не распознает AWTSequenceEncoder и, следовательно, методы encodeImage и finish.

Что я делаю не так?

1 Ответ

0 голосов
/ 05 сентября 2018

Хорошо, я нашел ответ на проблему, технически он есть в ответах на этот вопрос: Как создать видео из массива изображений в Android?

Но имеет только два голоса, несмотря на то, что это был единственный, который работал на меня, и, как я выяснил, единственный, который должен работать. Вы не можете использовать BufferedImages в Android, в то время как наиболее проголосовавший вопрос делает, и SequenceEncoder , который я не нашел, заменен на AndroidSequenceEncoder .

...