小编Ryu*_*yuu的帖子

如何在局域网上实时播放视频流?

我正在尝试建立一个系统,能够将局域网上的其他几台PC的屏幕截图广播.

到目前为止,我设法使用rtmp模块在Raspberry Pi上安装nginx,我可以通过OBS使用Raspberry作为RTMP服务器进行流式传输.我使用VLC观看流.

这是问题所在.进行广播的主要电脑将显示倒计时和潜在摄像机馈送的计时器,因此理想的是将广播延迟保持在最低(实时?).我目前在屏幕上发生的事情和流之间有4-6秒的延迟,我正在寻找进一步减少它的方法.

  • 有没有办法确定延迟时间是由于编码造成的,有多少是由于传输造成的?
  • 我目前正在1080p30捕获,并尝试降低缩放和最小化网络影响等选项无济于事.
  • 我在这个论坛上阅读了有关局域网广播的其他主题,有人确实提到RTMP不是一个好方法......如果是,那么什么是更好的方法?
  • 任何建议都欢迎和赞赏.我最感兴趣的是免费的解决方案,因为我没有预算,而且对其他人免费这样做.
  • 我也确实研究了VLC流媒体,但我不想显示电脑的整个屏幕,因为观众不必看到控件.VLC唯一能做的就是指定要播放的屏幕哪个部分看起来不是一个很好的解决方案.我之所以选择OBS,是因为它是唯一可以根据我的知识播放特定窗口的免费广播软件.

提前致谢 :)

lan real-time vlc rtmp video-streaming

9
推荐指数
1
解决办法
6万
查看次数

listFiles()在不应该返回null时返回null.它过去一直工作到最近,并没有被修改

public static void main(String[] args) throws InterruptedException {
    // TODO Auto-generated method stub
    while(true)
    {
        ArrayList<File> wallpapers = new ArrayList<File>();
        File dir = new File("C:/Windows/System32/oobe/info/backgrounds/");
        if(dir.listFiles() == null)
            System.out.println("Empty");
        for(File img : dir.listFiles())
        {
            if(img.getName().endsWith(".jpg") && img.getName() != "backgroundDefault.jpg")
                wallpapers.add(img);
        }
        File current = new File("C:/Windows/System32/oobe/info/backgrounds/backgroundDefault.jpg");
        int i = 1;
        for(File img : wallpapers)
        {
            File f = new File("C:/Windows/System32/oobe/info/backgrounds/"+ i++ +".jpg");
            current.renameTo(f);
            File file = new File("C:/Windows/System32/oobe/info/backgrounds/backgroundDefault.jpg");
            img.renameTo(file);
            Thread.sleep(60000);
        }

    }
}   }
}
Run Code Online (Sandbox Code Playgroud)

此代码每分钟更改Windows登录屏幕的背景图像.listFiles()为dir返回null,我得到一个NullPointerException for(File img:dir.listFiles()).我以为文件权限可能有问题,所以我尝试将文件路径更改为我桌面上的目录,并且工作正常.所以我假设我无法访问系统文件,因为我的程序没有足够的权限.我还要确切地说,这段代码直到最近一直运行良好.它没有被修改.我刚刚发现我的登录壁纸不再改变了.即使程序确实有效,我也无法在通过Eclipse启动程序时修改文件名,但是我会将其导出为.jar,并使用具有最高权限的任务计划程序安排它,以便为其提供管理权限,直到它工作没有任何问题,直到最近.我还尝试忽略错误,认为它们与访问权限相关,并尝试通过任务计划程序以及使用批处理文件启动具有最高权限的可执行jar.我甚至尝试通过我用管理员权限打开的cmd启动jar无效但仍然在cmd中说NullPointerException.我有点失落,也会感激任何帮助.

java jar batch-file nullpointerexception access-rights

8
推荐指数
1
解决办法
2万
查看次数