在JavaFX中播放H.264编码流

时间:2018-07-01 06:41:21

标签: java javafx media h.264 netcat

我有一个Raspberry Pi,它从raspivid获取视频数据并将其传输到netcat,然后将其发送到我的PC,在其中我可以读取这样的每一帧:

ServerSocketChannel serverChannel = ServerSocketChannel.open();
serverChannel.socket().bind(new 
InetSocketAddress(Main.config.getInt("VIDEO_STREAM_PORT")));
serverChannel.configureBlocking(true);
SocketChannel channel = serverChannel.accept();
InetSocketAddress remoteAddress = (InetSocketAddress) 
channel.getRemoteAddress();
int BUFFER_SIZE = 2 << 16 - 1;
ByteBuffer buff = ByteBuffer.allocate(BUFFER_SIZE);
while (channel.read(buff) != -1) {
   buff.flip();
   if (buff.hasRemaining()) {
      buff.compact();
   } else {
      buff.clear();
   }
}

在JavaFX中将这些帧作为视频播放的最佳方法是什么?除了将每个帧解码为BufferedImage并将其渲染之外,还有其他方法吗?还是我完全想不到另一种方法?

在Linux上,您可以仅使用netcat | mplayer来完成我想要的操作,但是我想在JavaFX应用程序中完成此操作。

0 个答案:

没有答案