我试图将网络摄像头捕获的视频从服务器发送到客户端。
我在netbeans中使用Jmyron来获取相机。
首先,我使用BufferedImage.toString()
并试图发送我通过套接字的字符串。我还尝试将BufferedImage
转换为字节数组并发送它,以便我可以在另一方执行相反的过程。
似乎Socket正在发送一行然后停止。
所以你能告诉我是否还有另一种方法可以做到这一点。或者我可能做错了什么?
Jmyron还提供RTP吗?因为我想实时发送视频。
我是从服务器发送的: BufferedImage captureImage
boolean Test= true;
while (Test) {
ServerSocket ser = new ServerSocket(25000);
Socket sock = ser.accept();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write( captureImage, "jpg", baos );
baos.flush();
byte[] imageInByte = baos.toByteArray();
baos.close();
DataOutputStream dOut = new DataOutputStream(sock.getOutputStream());
dOut.write(imageInByte);
}
从客户收到:
boolean Test = true;
public Clientcam() throws IOException {
initComponents();
while (Test) {
Socket ser = new Socket("localhost",25000);
byte[] b = null ;
DataInputStream dIn = new DataInputStream(ser.getInputStream());
dIn.readFully(b);
InputStream in = new ByteArrayInputStream(b);
newImage = ImageIO.read(in);
newlbl.setIcon(new ImageIcon(newImage));
}
}