2017-03-29 10 views
0

私はUbuntu 16.04/Gnome/VLC 2.2.2に基づいてビデオクライアントを設定します。 2つの画面でブートした直後にフルスクリーンで1つのビデオを再生する必要があります。ビデオはVLCのWebインターフェイスを介して制御されます。VLCで2つの画面にビデオを表示

すべてが1つの画面で正常に動作しています。しかし、複数の画面では、全画面モードのみが表示されるという問題が発生します。

1)は、通常のフルスクリーンモードを使用します。

は、私はそれを修正しようとしたいくつかの方法があります。 ビデオは1つの画面にのみ表示されます

2)ここに記載されているようにウォールビデオフィルタを使用してください:http://windows7themes.net/en-us/stretch-videomovie-across-2-monitors/ これには複数の問題があります。多くの場合、ビデオは正しく表示されません。いずれかのウィンドウに出力エラーがあります。また、これらのウィンドウを自動的に配置して(擬似)フルスクリーンモードにする方法もわかりません。この機能についていくつかのスレッドを読んで、私はそれが現在壊れていると思います。

3)画面全体を埋めるようにウィンドウのサイズを変更します(手動) これは一般的に機能します。しかし、それはまだビデオとGnomeのデスクトップ要素の周りにウィンドウを表示します。これを修正し、起動時にビデオのサイズを自動的に調整することは可能ですか?

これを動作させるにはどうすればよいですか?

答えて

0

いくつかの方法を試した後、これは私がなってしまったソリューションです:

  • スプリット二つの部分
  • スタートVLC
  • の2つのインスタンス内の映像がスクリーン
  • の1にそれぞれフルスクリーンを作ります
  • 各vlcインスタンスに、それを制御するための別のhttpポートを与える
  • vlcのWebインターフェイスを自分のWebサイトにコピーする(一部のjavascript、画像、cssおよびhtmlファイル)
  • 私のウェブサーバー上で "/requests/status.xml"を呼び出します。これは、プレーヤーの現在のステータスを取得してコマンドを送信するためにvlc webinterfaceが呼び出すものです。
  • plain status.xml要求をインスタンスの1つに転送し、コマンドを含むすべてのものをvlcの両方のインスタンスに転送します。

これは、フルスクリーンでの2つの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 webinterfaceが私のアプリケーションの一部になっていることです。ボタンの位置を変更したいだけなら、vlcを更新する必要はありません。

関連する問題