FFmpegRecorder icon indicating copy to clipboard operation
FFmpegRecorder copied to clipboard

Video is green color using avutil.AV_PIX_FMT_NV21 format

Open ritesh94 opened this issue 7 years ago • 5 comments

setting the pixel format:

    FFmpegFrameFilter frameFilter = new FFmpegFrameFilter(TextUtils.join(",", filters),
                    previewWidth, previewHeight);
            frameFilter.setPixelFormat(AV_PIX_FMT_NV21);
mFrameRecorder.record(filteredFrame);

build.gradle

ext {
    versions = [
            'ffmpeg': '3.4.1-1.4'
    ]
}

    compile(group: 'org.bytedeco', name: 'javacv-platform', version: '1.4') {
        exclude group: 'org.bytedeco.javacpp-presets'
    }

    compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: versions.ffmpeg
    compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: versions.ffmpeg, classifier: 'android-arm'

Tried the following too, but no luck: 1.

 mFrameRecorder.setPixelFormat(avutil.AV_PIX_FMT_NV21);
FFmpegFrameFilter frameFilter = new FFmpegFrameFilter(TextUtils.join(",", filters),
                    previewWidth, previewHeight);
            frameFilter.setPixelFormat(AV_PIX_FMT_NV21);
mFrameRecorder.record(filteredFrame);

2.

mFrameRecorder.setPixelFormat(avutil.AV_PIX_FMT_NV21);
FFmpegFrameFilter frameFilter = new FFmpegFrameFilter(TextUtils.join(",", filters),
                    previewWidth, previewHeight);
            frameFilter.setPixelFormat(AV_PIX_FMT_NV21);
mFrameRecorder.record(filteredFrame,AV_PIX_FMT_NV21);

 mFrameRecorder.record(filteredFrame,avutil.AV_PIX_FMT_NV21);

ritesh94 avatar Jan 29 '18 06:01 ritesh94

Confirmed this bug. You can use ffmpeg 3.2.1-1.3 with javacv 1.3 for the moment.

CrazyOrr avatar Feb 13 '18 01:02 CrazyOrr

@CrazyOrr Using the above version with other Gradle dependencies give me an Unsatisfied link error

Caused by: java.lang.UnsatisfiedLinkError: org.bytedeco.javacpp.avutil

ritesh94 avatar Apr 30 '18 14:04 ritesh94

Try this.

CrazyOrr avatar May 03 '18 01:05 CrazyOrr

Try the latest version of JavaCV and ffmpeg, with 64-bit support, has this issue fixed already:

dependencies {
    ...
    def javacvVersion = '1.4.2'
    def ffmpegVersion = '4.0.1'
    compile(group: 'org.bytedeco', name: 'javacv-platform', version: javacvVersion) {
        exclude group: 'org.bytedeco.javacpp-presets'
    }
    compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: "${ffmpegVersion}-${javacvVersion}"
    compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: "${ffmpegVersion}-${javacvVersion}", classifier: 'android-arm' // for 'armeabi-v7a'
    compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: "${ffmpegVersion}-${javacvVersion}", classifier: 'android-arm64' // for 'arm64-v8a'
}

CrazyOrr avatar Jul 19 '18 13:07 CrazyOrr

Tried the latest version of JavaCV and ffmpeg, with 64-bit support, But problem remaining.

abhijithrkrishna avatar Jul 25 '19 16:07 abhijithrkrishna