背景将图像从C程序移动到Java并显示在屏幕上的最有效方法?
我使用video4linux 2规范捕获视频。它是使用C程序实时捕获的。我也有一个可以在本地和远程运行的Java前端。远程方面很简单,我只是将图像压缩为JPEG格式,然后通过迷你http服务器将它们发送给客户端,客户端将其解压缩并显示在屏幕上。
当我们在本地运行时,我想以某种方式直接连接到内存并从Java访问图像。然后,尽可能使用尽可能小的CPU功率将它们移动到屏幕上。这是一个“监视”型系统,所以我可以一次运行8-16个摄像头。
问题
什么是从V4L2的mmap缓冲区中的图像数据(YUV420P)移动到我的Java应用程序,以显示在屏幕上的最有效方法是什么?如果有任何可用的,请显示代码或指向我的一些API /规范。
回答
在时间的关系,我决定只使用纯套接字和RGB发送数据。当Java客户端在同一台计算机上运行时,我能够显着提高性能。如果客户端正在远程运行,我仍然通过网络发送JPEG。接下来,我需要找到一个优化的JPEG解码器。
顺便说一句,这不是2个客户端,只是我的CameraStream小部件读取和解析这两种类型。