如何使用 Java 制作 RTSP 服务器流/发送 H264 格式
How to make RTSP server stream / send H264 format using Java
我目前正在尝试制作一个 RTSP server
,它使用 Java
流式传输 H264
格式的视频。
我的 RTSP client
将是一台通过以太网电缆连接到服务器的计算机显示器。我被告知显示器能够显示传入的 H264
格式的视频。我还没有显示器
虽然我还没有显示器,但我想看看有什么用。我通过使用一个 vlc media player
实例作为服务器并使用另一个 vlc media player
实例作为 this tutorial 之后的客户端来管理它。现在我必须实现一个可以流式传输 H264
格式的 RTSP server
。我找不到有关如何使用 Java 执行此操作的任何信息。 VLC media player
是否有 Java API
,或者是否有任何来源可以指导我如何使用 Java
实现此目的?
提前致谢。
编辑:Here我找到了一个很好的起点,如果我能做到,我会把解决方案作为源代码。
我解决了
- 您需要按照 this 准备您的环境。确保你使用 64 位版本或 32 位版本的 VLC,IDE、Java 和 OS.
- 您必须创建一个 class 并向其中添加以下代码块:
代码块:
public static void main(String[] args) throws Exception
{
// your VLC installation path
NativeLibrary.addSearchPath("libvlc", "C:\Program Files\VideoLAN\VLC");
String media = "your file url"; // example = file:///C:/test.mp4
// you are gonna use below value on the client
String[] options = {":sout=#rtp{sdp=rtsp://localhost:8554/stream"};
System.out.println("Streaming '" + media + "' to '" + options + "'");
MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory();
HeadlessMediaPlayer mediaPlayer = mediaPlayerFactory.newHeadlessMediaPlayer();
mediaPlayer.playMedia(media, options, ":no-sout-rtp-sap", ":no-sout-standard-sap", ":sout-all", ":sout-keep");
// Don't exit
Thread.currentThread().join();
}
- 现在您可以使用VLC 媒体播放器作为RTSP 客户端。打开 VLC 媒体
播放器在左上角点击"Media",然后点击“打开网络
Stream”。输入我们在上面给出的网络 Url
"rtsp://localhost:8554/stream" 让它等待。完成第 4 步后,按 "play".
- 运行 您的 class 作为 Java 应用程序。
现在您应该可以在之前作为 RTSP 客户端打开的 VLC 媒体播放器中看到您的视频了。
我目前正在尝试制作一个 RTSP server
,它使用 Java
流式传输 H264
格式的视频。
我的 RTSP client
将是一台通过以太网电缆连接到服务器的计算机显示器。我被告知显示器能够显示传入的 H264
格式的视频。我还没有显示器
虽然我还没有显示器,但我想看看有什么用。我通过使用一个 vlc media player
实例作为服务器并使用另一个 vlc media player
实例作为 this tutorial 之后的客户端来管理它。现在我必须实现一个可以流式传输 H264
格式的 RTSP server
。我找不到有关如何使用 Java 执行此操作的任何信息。 VLC media player
是否有 Java API
,或者是否有任何来源可以指导我如何使用 Java
实现此目的?
提前致谢。
编辑:Here我找到了一个很好的起点,如果我能做到,我会把解决方案作为源代码。
我解决了
- 您需要按照 this 准备您的环境。确保你使用 64 位版本或 32 位版本的 VLC,IDE、Java 和 OS.
- 您必须创建一个 class 并向其中添加以下代码块:
代码块:
public static void main(String[] args) throws Exception
{
// your VLC installation path
NativeLibrary.addSearchPath("libvlc", "C:\Program Files\VideoLAN\VLC");
String media = "your file url"; // example = file:///C:/test.mp4
// you are gonna use below value on the client
String[] options = {":sout=#rtp{sdp=rtsp://localhost:8554/stream"};
System.out.println("Streaming '" + media + "' to '" + options + "'");
MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory();
HeadlessMediaPlayer mediaPlayer = mediaPlayerFactory.newHeadlessMediaPlayer();
mediaPlayer.playMedia(media, options, ":no-sout-rtp-sap", ":no-sout-standard-sap", ":sout-all", ":sout-keep");
// Don't exit
Thread.currentThread().join();
}
- 现在您可以使用VLC 媒体播放器作为RTSP 客户端。打开 VLC 媒体 播放器在左上角点击"Media",然后点击“打开网络 Stream”。输入我们在上面给出的网络 Url "rtsp://localhost:8554/stream" 让它等待。完成第 4 步后,按 "play".
- 运行 您的 class 作为 Java 应用程序。
现在您应该可以在之前作为 RTSP 客户端打开的 VLC 媒体播放器中看到您的视频了。