首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用vlcj读取Java rtsp流

用vlcj读取Java rtsp流
EN

Stack Overflow用户
提问于 2018-12-07 15:33:36
回答 1查看 1K关注 0票数 0

首先,我想指出的是,如何从摄像机中读取rtsp流的例子并不多。

到目前为止,我使用vlcj完成了rtsp流读取工作,这是相当困难的,因为有很多问题。

为了开始创建读取rtsp流的应用程序,我需要下载版本2.1.2中的VLC,这在我的例子中非常重要。接下来是添加两个依赖项

版本3.9.0中的vlcj库

代码语言:javascript
复制
    <dependency>
        <groupId>uk.co.caprica</groupId>
        <artifactId>vlcj</artifactId>
        <version>3.9.0</version>
    </dependency>

然后,我不得不将JNA版本降级为版本3.5.2,这样:

代码语言:javascript
复制
    <dependency>
        <groupId>net.java.dev.jna</groupId>
        <artifactId>jna</artifactId>
        <version>3.5.2</version>
    </dependency>

使用此配置,我设法用以下代码读取rtsp流:

代码语言:javascript
复制
public static void main(final String[] args) {
        /* import .dll libraries */
        NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), "C:\\Program Files\\VideoLAN\\VLC");
        Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);

        /* rtsp stream url */
        String mrl = "rtsp://192.168.1.1:5555/h264";
        String[] options = { ":network-caching=400" };

        /* getting MediaPlayer */
        MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory(args);
        HeadlessMediaPlayer mediaPlayer = mediaPlayerFactory.newHeadlessMediaPlayer();
        mediaPlayer.playMedia(mrl, options);

        /* infinite loop keeping stream reading alive */
        while (true) {
        }
    }

到目前为止,我只在测试中使用了简单的HeadlessMediaPlayer

我遇到的问题是相机和我的流之间有很大的延迟,因为它大约是1s,这不是很好。使用VLC,我可以将延迟设置为300-500 is,这真的很好,但是正如您在这里看到的,String[] options = {":network-caching=400"};将我的缓存设置为400。但变化不大。流有太大的延迟。有人修好了吗?

另一个问题是如何将这个rtsp流转换为HTTP流,所以也许我可以在JavaFX中使用它,因为有一个媒体播放器,但是它不支持rtsp流,只支持http。

EN

回答 1

Stack Overflow用户

发布于 2018-12-23 11:13:33

如何使用这些开关/选项并不总是明确或一致的。

您应该始终启用并检查本机日志,以查看是否实际应用了该选项。

你可以试试:

String[] options = {"--network-caching", "400"};

有时,这些选项将在playMedia调用上工作,但其他时候必须在创建MediaPlayerFactory时设置它们。

而且,通常情况下,不要使用像while(true)这样的紧循环,而是使用Thread.currentThread().join()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53672542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档