bytedeco / javacv

Java interface to OpenCV, FFmpeg, and more
Other
7.56k stars 1.58k forks source link

chromakey filter #388

Closed FanSerg2 closed 8 years ago

FanSerg2 commented 8 years ago

I have video with green background. I can use ffmpeg with chromakey filter in command line on Windows. ffmpeg -i video.mp4 -i punch_green.mp4 -filter_complex "[1:v]chromakey=0x12da11:0.2:0.2[chromakey_res];[0:v][chromakey_res]overlay=eof_action=pass[out]" -map "[out]" out.mp4 This example gets second video, removes green background and then overlays it on first video.

How can I do this with FFmpegFrameFilter?

When do I try execute this code FFmpegFrameFilter filter = new FFmpegFrameFilter("chromakey=0x12da11:0.2:0.2", grabberEffect.getImageWidth(), grabberEffect.getImageHeight()); I take next error Error: No such filter: 'chromakey'

saudet commented 8 years ago

This works just fine here. I get no errors.

FanSerg2 commented 8 years ago

I downloaded and installed javacpp-presets module with gradle:

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

Am I using the latest version ffmpeg (3.0.1)?

If I write compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '3.0.1-1.1', classifier: 'android-arm' I am getting an error: Failed to resolve: org.bytedeco.javacpp-presets:ffmpeg:3.0.1-1.1

How I can see the version ffmpeg in my project?

saudet commented 8 years ago

Try to install it manually: https://github.com/bytedeco/javacpp-presets/#manual-installation

FanSerg2 commented 8 years ago

I added next files:

    compile files('libs/ffmpeg-android-arm.jar')
    compile files('libs/ffmpeg.jar')
    compile files('libs/javacpp.jar')
    compile files('libs/javacv.jar')

and get this error :

04-19 12:11:24.684 10761-10761/? W/System.err: Error: No such filter: 'chromakey'
04-19 12:11:24.689 10761-10761/? W/System.err: org.bytedeco.javacv.FrameFilter$Exception: avfilter_graph_parse_ptr()
04-19 12:11:24.689 10761-10761/? W/System.err:     at org.bytedeco.javacv.FFmpegFrameFilter.startUnsafe(FFmpegFrameFilter.java:232)
04-19 12:11:24.689 10761-10761/? W/System.err:     at org.bytedeco.javacv.FFmpegFrameFilter.start(FFmpegFrameFilter.java:154)
.......
04-19 12:11:24.694 10761-10761/? W/System.err:     at dalvik.system.NativeStart.main(Native Method)
FanSerg2 commented 8 years ago

chromakey filter was added in ffmpeg version 3.0 https://github.com/FFmpeg/FFmpeg/blob/master/Changelog

saudet commented 8 years ago

JavaCV 1.2 uses FFmpeg 3.0 so this should now work. Enjoy!