在Socket中发送网络摄像头的BufferedImage

时间:2015-02-15 12:46:09

标签: java sockets video webcam jmyron

我试图将网络摄像头捕获的视频从服务器发送到客户端。

我在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));

    }

}

0 个答案:

没有答案