java - 使用 java 套接字在网络上传输视频

标签 java sockets streaming server rtsp

我正在开发一个网络java应用程序。我想从网络传输视频(也许使用套接字)。我在互联网上搜索,但没有找到任何有效的服务器和客户端代码来将视频从服务器流式传输到客户端。 任何人都可以找到流媒体服务器和客户端或编写一个简单的程序,以便我可以理解如何使用 java 完成流媒体。

PS。我在互联网上找到了与此相关的作业。但它有错误,有些方法也没有实现。如果您可以删除错误并完成方法,这也会很有帮助。 http://cs.anu.edu.au/student/comp3310/2004/Labs/lab6/lab5.html

最佳答案

参见:Any simple (and up to date) Java frameworks for embedding movies within a Swing Application? ,只需引用仅 JavaFX 的代码示例(您不需要任何 Swing 代码)。

import javafx.application.Application;
import javafx.scene.*;
import javafx.scene.media.*;
import javafx.stage.Stage;

public class VideoPlayerExample extends Application {
  public static void main(String[] args) throws Exception { launch(args); }
  @Override public void start(final Stage stage) throws Exception {
    final MediaPlayer oracleVid = new MediaPlayer(
      new Media("http://download.oracle.com/otndocs/products/javafx/oow2010-2.flv")
    );
    stage.setScene(new Scene(new Group(new MediaView(oracleVid)), 540, 208));
    stage.show();

    oracleVid.play();
  }
}

因此,将您的视频编码为 format understood by JavaFX (例如 h264 编码的 mp4)并将其放置在 http 服务器上,您可以通过 http 从 JavaFX 客户端加载视频数据。确保您的客户是certified system configuration for media playback using JavaFX .

这可能足以满足您的需要。


如果您需要更奇特的东西,JavaFX 还支持 http live streaming ,您可以阅读并查看是否需要(您可能不需要)。我没有关于设置 http 实时流媒体服务器的说明,也没有关于如何执行此操作的互联网上某个位置的链接(如果您想走那条路,您必须对此进行自己的研究)。


另外,请注意,我转换了 mjpeg player lab assignment you reference in your question请JavaFX回答问题:Display RTP MJPEG 。如果您想在较低的层次上了解此类视频播放是如何完成的,那么它会很有用。但是,我不建议在生产项目中使用此方法进行视频播放 - 而只需使用内置的 JavaFX MediaPlayer。

关于java - 使用 java 套接字在网络上传输视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28023336/

相关文章:

java - 将 KeyListener 添加到 Jframe 问题

Java二分查找,高值抛出异常

c - 在原始套接字上 Ping 数据包

java - 有没有与 Android 的 Xcode clang 静态分析器相当或相似的东西?

java - 我正在尝试编写一个包含 2 个赛车手的程序,但它一直给我一个 IllegalThreadStateException

java - socket.getInetAddress().getHostAddress() 奇怪的问题

html - 如何用c语言通过tcp发送http协议(protocol)的html文件?

mongodb - 如何使用 nodejs 流式传输 MongoDB 查询结果?

javascript - 如何显示当前 Twitch 流的状态?

java - Dojo 和 Java 中的 AJAX PUSH(流)实现