有人有一些示例代码来播放具有当前 javaCPP/javaCV 版本和 FFmpegFrameGrabber 的简单视频文件吗?
我尝试了这个解决方案,但它显然太旧了,并且由于不兼容的 FrameGrabber 接口(返回“Frame”-Object 而不是“IplImage”-Object)而无法与当前的 javacv 版本一起使用。如果我手动更改代码(使用 Frame 而不是 IplImage),它会返回错误消息:
java.lang.VerifyError: Bad type on operand stack
Exception Details:
Location:
org/bytedeco/javacv/FFmpegFrameGrabber.startUnsafe()V @1291: invokespecial
Reason:
Type 'org/bytedeco/javacpp/avutil$AVFrame' (current frame, stack[2]) is not assignable to 'org/bytedeco/javacpp/Pointer'
Current Frame:
bci: @1291
flags: { }
locals: { 'org/bytedeco/javacv/FFmpegFrameGrabber', integer, 'org/bytedeco/javacpp/avformat$AVInputFormat', 'org/bytedeco/javacpp/avutil$AVDictionary', integer, 'org/bytedeco/javacpp/avcodec$AVCodec', integer, integer, integer, integer }
stack: { uninitialized 1283, uninitialized 1283, 'org/bytedeco/javacpp/avutil$AVFrame' }
Bytecode:
0x0000000: 2a01 b500 332a bb00 8659 01b7 0087 b500............
仅供参考:我正在比较不同的 java 库来播放视频文件并提取它们的像素数据(xuggler、vlcj、...)并搜索最好的。我真的很喜欢在我的测试中包含 javacv 但它不起作用:(