问题标签 [javacpp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ffmpeg - 使用 FFMPEG 获取最近的帧
我有一个 rtsp、udp 多播流。我通过在循环中调用 av_read_frame()方法来读取帧,它按预期工作。我的问题是,如果我让我的循环(比如说)睡眠 500 毫秒,我不会收到最近的帧。
因为,我没有阅读常规的视频文件,有没有办法获取最近的帧?(例如,我应该禁用或调整哪个缓冲区...我专注于可能是错误方法的 ffmpeg 内部缓冲区?)
android - Javacv android加载avutil错误
我正在尝试制作一个实时流媒体应用程序,并且我已按照以下链接将 javacv 添加到我的项目 https://github.com/bytedeco/javacv中。我在我的应用程序(app->src->main)中创建了 jniLibs 文件夹,但我的应用程序崩溃而没有任何错误。当我尝试调试时,我发现代码在 FFmpegFrameRecorder.class 的这一行中断
我不知道如何解决这个错误。请帮我解决这个问题。提前致谢
编辑这是堆栈跟踪:
这是我的 build.gradle :
java - 使用 javacpp-preset/tesseract 在退出时使 java 崩溃
我正在尝试使用 Tesseract 在 Java 应用程序中具有 OCR 功能。为此,我使用了此处找到的 Java/Tesseract 桥。
pom.xml
依赖:
它有效,我可以使用该库对图像进行 OCR 化。但是当 Java 程序完成时,JVM 崩溃了。举一个最小的例子,即使是第一个 Tesseract 初始化行就足够了:
如果我运行它main
,它会给出以下信息:
以及以下错误消息:( Java(TM) Platform SE binary funktioniert nicht mehr – Windows kann online nach einer Lösung für das Problem suchen.
) Java(TM) Platform SE binary does not work anymore – Windows can look for a solution to this problem online
。
我以前从未遇到过 Java 崩溃——但我以前也从未使用过原生程序。;-) 有没有人暗示在哪里寻找这种奇怪行为的解决方案?
编辑 2015-12-07:使用ListDLLs,我看到有问题的 DLL 位于C:\Users\...\AppData\Local\Temp\javacpp3256864312633\libgcc_s_dw2-1.dll
,因此“来自错误%PATH%
的 DLL”不是答案。
jar - JavaCPP,在 JAR 中归档本机库时出现 UnsatisfiedLinkError
我正在尝试从 Java 调用 Haskell 代码,使用JavaCPP来帮助创建必要的 JNI 绑定,正如在这个问题中已经讨论的那样。
这就是我使用它的方式:
内容HScode.java
:
汇编:
按照这种方法,我可以创建一个libHScode.so
和一个libjniHScode.so
using javacpp
,它运行良好:
罐
现在,接下来的步骤是我想将所有内容打包到一个 jar 中,并且能够com.example.HScode
从一个更大的 java 项目中使用这个 jar。
JavaCPP 的页面提到:
[...] 此外,在运行时,Loader.load() 方法会自动从 Java 资源加载本机库,这些库由构建过程放置在正确的目录中。它们甚至可以归档在 JAR 文件中,它不会改变任何内容。用户根本不需要弄清楚如何让系统加载文件。
所以我认为这应该可行。
但是,如果我从上面文件夹HScode.jar
的内容中制作一个 jar build
,以便我的 jar 包含libjniHScode.so
and libHScode.so
,并使用以下命令运行它:
然后它找不到我的本机代码(为匿名而编辑的异常):
我错过了什么?有谁知道当 JavaCPP 存档在 jar 中时,它是否真的可以找到本机代码?
ffmpeg - using compiled ffmpeg from javacpp-presets
I am using ffmpeg in my java project with javacpp-presets. I want to be able to edit the ffmpeg and libx264 for my needs. I edited the ffmpeg and libx264 source codes, compiled it and use it successfully through the command line. now I want to use the new source code within my java code using the javacpp-preset. how do I configure the javacpp-preset to work with my version of ffmpeg?
java - JNA/BridJ 等中的分段错误
我已经使用 JNI、JNA、BridJ 和 JavaCPP 多次重建我的 Java/C++ 项目,并且每次遇到随机(不可预测的)分段错误。我已经验证了使用这个库的纯 C++ 可执行文件永远不会导致分段错误,并且在 BridJ 的情况下,通过显式调用它来将其缩小到 Java 的垃圾收集器。
一种想法是,这些库正在创建 Java 端指针对象,它们调用free
或delete
当它们被垃圾收集(通过finalize
)而不是像在此应用程序中那样将 C++ 返回的指针视为借用引用。
但是我尝试了一个额外的测试(下面没有表示):我将 API 中的每个指针都转换为int64_t
(long
在 Java 中) 并在 C++ 中显式转换为适当的类型。我仍然看到罕见的段错误。
所以我的问题很广泛:什么可能导致这个问题?我将接受使用 JNA 或 BridJ 的答案,因为我可以轻松地在这两者之间切换。我认为我错过了一个基本问题,因为这个问题在我尝试过的所有库中都很普遍。
具体来说,这是我的 JNA 版本。我正在链接 CERN ROOT 库。RootTreeReader.h 是:
RootTreeReader.cpp 是:
他们的 Makefile 是
JNAerator 生成以下 RootTreeReaderLibrary.java:
我这样称呼它:
无论有没有显式的垃圾收集器调用,它都很少出现段错误。此段错误的 BridJ 版本很少没有并且经常使用显式垃圾收集器调用。
opencv - JavaCpp 等价于 Matlab 的 Permute
OpenCV Java Preset 中是否有任何等效的图像置换?我的图像表示为 org.bytedeco.javacpp.Mat。我正在使用下面的 JavaCpp OpenCV 预设
更新,@Miki 在评论中提出建议后,尝试使用 mixChannel api。但它似乎没有做与 permute Code 相同的功能:
输出:
resizedImage: org.bytedeco.javacpp.opencv_core$Mat[width=300,height=200,depth=8,channels=3]
transposedResizedImage: org.bytedeco.javacpp.opencv_core$Mat[width=300,height=200,depth=8,channels=3]
我期望 transposedResizedImage 的宽度/高度按照 from_to 数组中的顺序排列
java - 将 org.bytedeco.javacpp.Mat 转换为 Java int/float 数组
我的图像表示为 org.bytedeco.javacpp.Mat。我只是想将它转换为浮点/整数的 Java 数组。转换背后的原因是我想将其他库(Nd4j)中的 Java 数组用于图像置换目的。我尝试了以下方法,但它们不起作用。
android - 错误:使用 'org.bytedeco' 编译 GooglePlayServices 时,任务 ':app:dexDebug' 执行失败,名称:'javacv'
我通过编译编译组将音频与视频合并:'org.bytedeco',名称:'javacv',版本:'1.1',一切正常。
但是当我尝试compile 'com.google.android.gms:play-services:8.4.0'
用它编译时,它给出了这个错误
错误:任务“:app:dexDebug”执行失败。com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_75\bin\java.exe'' 完成非零退出值 2
构建.gradle
java - javacpp中如何处理C++类和std::future?
我正在将 javacpp https://github.com/bytedeco/javacpp用于 JNI C++ 到 Java
例如,我有一个使用 std::future 的 C++ 类
我想使用 CompletableFuture 从 C 函数中获取结果。我邀请了一些方法来做到这一点但不起作用
或者
如何从 Java 中使用它?谢谢!