我怎样才能建立与DVR连接并解码这些数据?(How can I set up connection

2019-08-01 19:54发布

我的系统由一个数字视频记录器(DVR)和两个摄像机,它们与DVR连接的。 硬盘录像机可以作为服务器也(连接到LAN)。 该系统被列入Android应用程序,在这里我把信息有关服务器,端口,用户名和密码(我可以添加使用服务器软件帐户)。 该应用程序从摄像机传输视频。 我还可以通过HTTP DVR(仅IE)连接,然后将其显示ActiveX应用程序。

什么我做的是写类似的应用程序,但我还是坚持了一个问题 - 我怎么可以获取从DVR视频流? 我与Java方面的专家,并试图连接到DVR,未果。

这里是我的代码:

import java.net.*;
import java.io.*;

public class VideoStream
{

final static int BUFFER_SIZE = 1024000;
public static void main(String[] args) throws Exception 
{
    Authenticator.setDefault(new Authenticator()
    {
        protected  PasswordAuthentication  getPasswordAuthentication()
        {
            System.out.println("Authenticatting...");
            PasswordAuthentication p=new PasswordAuthentication("login", "password".toCharArray());
        return p;       
        }
    });
    Socket s = new Socket();
    String host = "192.168.80.107"; //192.168.80.107
    PrintWriter s_out = null;
    BufferedReader s_in = null;
    BufferedInputStream bufferedInputStream = null;

    try
    {
        s.connect(new InetSocketAddress(host, 34599));
        System.out.println("Is connected? : " + s.isConnected());

        s_out = new PrintWriter(s.getOutputStream(), true);
        s_in = new BufferedReader(new InputStreamReader(s.getInputStream()));
        //bufferedInputStream = new BufferedInputStream(s.getInputStream());
    }
    catch(UnknownHostException e)
    {
        e.printStackTrace();
        System.exit(1);
    }
    catch(Exception e)
    {
        e.printStackTrace();
        System.exit(1);
    }

    byte[] b = new byte[BUFFER_SIZE];
    //bufferedInputStream.read(b);

    int bytesRead = 0;
    System.out.println("Reading... \n");
    while((bytesRead = s_in.read()) > 0)
    {
        System.out.println(s_in.readLine());
    }
    System.out.println("Done");
}

我尝试不同的端口(TCP和包括Android应用程序)。 插座与服务器连接,但它“挂起”当我尝试使用read()方法(甚至退出while循环)。 验证器不工作过。

关于DVR的一些信息:

  1. 支持的协议:TCP / IP,UDP,SMTP,NTP,DHCP,DDNS
  2. 视频压缩:H.264
  3. 操作系统:Linux

我会非常感激的任何建议。

Answer 1:

正如其他人在评论中指出,该意见是了解现有的Android应用程序是如何工作的。

这可能是值得尝试检查数据包和回复(与像嗅探器捕获鲨鱼的Droid关于Android客户端和DVR之间的通信)。



文章来源: How can I set up connection with DVR and decode the data?
标签: java android dvr