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

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

该流通过 IP 地址 192.168.1.1:5555 源自 Parrot AR Drone 2.0。
这就是我们卡住的地方。我们尝试使用的代码是这里的 DecodeandPlayVideo 示例:

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

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

最佳答案

好的,我们解决了问题:

首先,我们与无人机建立 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)

就这样!!

关于java - Xuggler 和从直播中播放,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13643648/

10-10 13:57