bytedeco / javacv

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

Filter freezedetect detection is an error that occurs #1637

Open Nirvana-feng opened 3 years ago

Nirvana-feng commented 3 years ago

When I detected the freeze frame, there was an error. Can you show me? Exception in thread "main" org.bytedeco.javacv.FrameFilter$Exception: avfilter_graph_parse_ptr() error -22 at org.bytedeco.javacv.FFmpegFrameFilter.startVideoUnsafe(FFmpegFrameFilter.java:364) at org.bytedeco.javacv.FFmpegFrameFilter.startUnsafe(FFmpegFrameFilter.java:268) at org.bytedeco.javacv.FFmpegFrameFilter.start(FFmpegFrameFilter.java:251) at freezedetect.filterTest(freezedetect.java:44) at freezedetect.main(freezedetect.java:58) Input #0, avi, from 'F:\javacv_project\color_cast.avi': Metadata: encoder : Lavf58.65.101 Duration: 00:03:33.37, start: 0.000000, bitrate: 2203 kb/s Stream #0:0: Video: mpeg4 (Simple Profile) (FMP4 / 0x34504D46), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 2063 kb/s, 30 fps, 30 tbr, 30 tbn, 30 tbc Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, fltp, 128 kb/s No such filter: 'freezedetect'

saudet commented 3 years ago

That just means this filter isn't enabled for some reason. Please try to enable it in the build here: https://github.com/bytedeco/javacpp-presets/tree/master/ffmpeg

Nirvana-feng commented 3 years ago

Hello, I will revise it as you said. There is another mistake: Exception in thread "main" java.lang.ExceptionInInitializerError at org.bytedeco.javacv.FFmpegFrameGrabber.(FFmpegFrameGrabber.java:363) at com.feng.controller.Filtertest.filterTest(Filtertest.java:24) at com.feng.controller.Filtertest.main(Filtertest.java:51) Caused by: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:724) at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:531) at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:355) at sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java:286) at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:120) at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:72) at java.lang.Class.createAnnotationData(Class.java:3521) at java.lang.Class.annotationData(Class.java:3510) at java.lang.Class.getAnnotation(Class.java:3415) at org.bytedeco.javacpp.Loader.checkPlatform(Loader.java:881) at org.bytedeco.javacpp.Loader.load(Loader.java:983) at org.bytedeco.javacpp.Loader.load(Loader.java:947) at org.bytedeco.ffmpeg.avformat.Read_packet_Pointer_BytePointer_int.(Read_packet_Pointer_BytePointer_int.java:45) ... 3 more

saudet commented 3 years ago

That probably means there are missing JAR files in your class path. You'll need to make sure that all the JAR files are in your class path or it will not work.

saudet commented 3 years ago

It looks like "freezedetect" is a new filter, so you're probably not using the latest version of JavaCV. Please try again with JavaCV 1.5.5.