ubuntu - 使用 VLC 在两个屏幕上显示视频

标签 ubuntu video vlc gnome

我想建立一个基于 Ubuntu 16.04/Gnome/VLC 2.2.2 的视频客户端。它应该在两个屏幕上启动后直接全屏播放单个视频。视频通过 VLC 网络界面进行控制。

一切都在一个屏幕上运行良好。但是,对于多个屏幕,我遇到了全屏模式仅显示在其中一个屏幕上的问题。

我尝试了几种方法来修复它:

1) 使用正常的全屏模式。
只在一个屏幕上显示视频

2) 使用此处描述的墙视频过滤器:http://windows7themes.net/en-us/stretch-videomovie-across-2-monitors/
这有多个问题。通常,它无法正确显示视频。其中一个窗口出现输出错误。我也不知道如何自动定位这些窗口并使它们进入(伪)全屏模式。阅读有关此功能的一些线程让我认为它目前已损坏。

3)调整窗口大小以填满整个屏幕(手动)
这通常有效。但是,它仍然会在视频和 Gnome 的桌面元素周围显示一个窗口。是否可以解决此问题并在启动时自动调整视频大小/位置?

我怎样才能让它工作?

最佳答案

在尝试了几种方法后,这是我最终得到的解决方案:

  • 将视频分成两部分
  • 启动两个vlc实例
  • 在其中一个屏幕上制作每个全屏
  • 给每个 vlc 实例一个不同的 http 端口来控制它
  • 将vlc的web界面复制到我自己的网站(一些javascript、图片、css和html文件)
  • 在我的网络服务器上处理对“/requests/status.xml”的调用。这就是 vlc 网络界面要求获取播放器的当前状态并发送命令的内容。
  • 将普通的 status.xml 请求转发到其中一个实例,将带有命令的所有内容转发到 vlc 的两个实例。

  • 这是为了全屏启动两个 vlc 实例:
    vlc --http-port 8080 --http-password vlc123 --loop --video-x=0 --video-y==100 --fullscreen --qt-fullscreen-screennumber=1 '/path/to/my/video1' &
    
    vlc --http-port 8090 --http-password vlc123 --loop --video-x=2000 --video-y==100 --fullscreen --qt-fullscreen-screennumber=2 '/path/to/my/video2' &
    

    这里是 CherryPy 代理:
    class VlcProxy(object):
        @cherrypy.expose
        def index(self, **args):
            command_parameter = ""
            if args.has_key("command"):
                command_parameter = "?command=" + args["command"]
                if args.has_key("val"):
                    command_parameter += "&val=" + args["val"]
                # if there is a command, send it to both running vlc instances
                url = videoclient_baseurl + ":8090/requests/status.xml" + command_parameter
                thread.start_new_thread(self.request, (url, "", "vlc123"))
    
            # if it is only a status, then one response is enough
            response = self.request(videoclient_baseurl + ":8080/requests/status.xml" + command_parameter, "", "vlc123")
            return response
    

    这不是我所期望的干净简单的解决方案,但到目前为止效果很好。缺点是您需要代理 vlc 调用,并且视频可能(理论上)不同步。但是,在我的情况下,这从未发生过。

    好的部分是 vlc 网络界面现在是我的应用程序的一部分。如果我只想重新定位按钮,则不需要更新 vlc。

    关于ubuntu - 使用 VLC 在两个屏幕上显示视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43100413/

    相关文章:

    java - 下载 Youtube 视频?

    video - 第一张图片没有使用 ffmpeg 将图像显示到视频中

    ios - ios10 safari 的 html 页面中的视频元素是否有限制

    python - 使用 VLC 的 Python 绑定(bind)时,选项 --plugin-path 不再存在错误

    python - 有没有办法使用 vlc python 模块播放加载到内存的视频

    php - E : Couldn't find any package by glob 'php-7.4'

    php - eclipse : "PHP Fatal error: Call to undefined function mysqli_connect()"

    java - 从 vlcj 播放器数组中播放视频

    Bash Autocomplete Ubuntu 列出所有而不是循环

    java - 如何开始在 Ubuntu Linux 上使用和开发?