Xuggler和现场直播

时间:2012-11-30 10:46:04

标签: java video stream xuggler

我们目前正忙于一个项目,我们正在尝试在Java的实时流中播放视频文件。我们已经设法使用InputStreamReader通过Socket对象捕获流。

下一步是使用现有的库(Xuggler)或代码来解码此流并在一个简单的窗口中显示内容(视频)。

该流源自Parrot AR Drone 2.0,IP地址为192.168.1.1:5555。 那就是我们陷入困境的地方。我们尝试使用的代码是此处的DecodeandPlayVideo示例:

https://github.com/xuggle/xuggle-xuggler/blob/master/src/com/xuggle/xuggler/demos/DecodeAndPlayVideo.java

现在应该可以将它与输入流一起使用,但它当然应该是正确的格式。有什么方法可以帮助我们做到这一点吗?

2 个答案:

答案 0 :(得分:3)

我们解决了这个问题:

首先我们与无人机建立TCP连接:

try
    {
        socket_video_tcp = new Socket();
        socket_video_tcp.connect(new InetSocketAddress(commandSender.droneInetAddress, commandSender.VIDEO_PORT));
    }

我们的类是Runnable意味着我们还有一个方法run() 在此方法中,我们发送video_enable命令,我们还通过发送以下命令禁用动态视频比特率:video:bitrate_ctrl_mode 0;

public void run()
{
    commandSender.sendConfigCommand("VIDEO_ENABLE");
    commandSender.sendConfigCommand("VIDEOBITRATE");

    decode();
}

我们的decode()方法可以在这里找到:https://github.com/xuggle/xuggle-xuggler/blob/master/src/com/xuggle/xuggler/demos/DecodeAndPlayVideo.java

在这种解码方法中我们改变了这个:

 if (container.open(filename, IContainer.Type.READ, null) < 0)

对此:

if (container.open(socket_video_tcp.getInputStream(), null) < 0)

这就是全部!!

答案 1 :(得分:0)

从相关编辑中复制:

  

今天我们解决了这个问题。我们之前尝试加载套接字   连接到Icontainer.open   socketconnection.getInputStream。结果是0个流。过了一些   小调整结果是1流,我们可以看到实时视频   来自屏幕上的无人机!