我们目前正忙于一个项目,在该项目中,我们试图从 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/