このガイドラインに従おうとしています。http://afterdesign.net/2016/02/07/recording-headless-selenium-tests-to-mp4.htmlセレンテストを記録します。
ただし、そのポートを使用してxvfbに接続しようとすると、次の結果が表示されます。
[x11grab @ 0x1e3b460] ディスプレイ127.0.0.1:44を開くことができません。エラー 1. 127.0.0.1:44: 入力/出力エラー
私は問題を次のように単純化しました。 1つのウィンドウで:
xvfb-run --listen-tcp --server-num=44 --auth-file /tmp/xvfb.auth -s "-ac -screen 0 1920x1080x24" gedit
別のウィンドウで:
ffmpeg -f x11grab -video_size 1920x1080 -i 127.0.0.1:44 -codec:v libx264 -r 12 ~/test.mp4
得る
[x11grab @ 0x1e74460] Cannot open display 127.0.0.1:44, error 1.
127.0.0.1:44: Input/output error
これは、xvfbが実行されていないときに得られるのと同じ応答です。
ここでこの問題のように聞こえることがわかりました。https://bugzilla.redhat.com/show_bug.cgi?id=1340432しかし、この問題はバージョン1で解決されたと言われています。私はすでにバージョン1.17と2:1.18.4-0ubuntu0.2を使用しています。
どんなアイデアがありますか?
===更新===
Rauscherの答えに従って質問をまとめると、次のようになります。
端末でこれを行うとき:
$ Xvfb :44 -listen tcp -ac -screen 0 1920x1080x24
他の端末でこれを行います。
$ xdpyinfo -display localhost:44 | head -n10
name of display: localhost:44
version number: 11.0
vendor string: The X.Org Foundation
vendor release number: 11804000
X.Org version: 1.18.4
maximum request size: 16777212 bytes
motion buffer size: 256
bitmap unit, bit order, padding: 32, LSBFirst, 32
image byte order: LSBFirst
number of supported pixmap formats: 6
一方、端末でこれを行うときは、次のようになります。
$ xvfb-run --listen-tcp --server-num=44 -s "-ac -screen 0 1920x1080x24" google-chrome --user-data-dir=/tmp
(またはセレンテストなどの他のアプリケーション)
他の端末でこれを見ることができます。
$ xdpyinfo -display localhost:44
xdpyinfo: unable to open display "localhost:44".
解決策がありますが、まだtcpを介してxvfb-runに接続できません。
ベストアンサー1
私はxvfb-runよりもXvfbの経験があります。 Xvfbを直接実行してみることができます。
Xvfb :44 -auth /tmp/xvfb.auth -ac -screen 0 1920x1080x24
(Xvfbはデフォルトでtcpを受け取ります。以下を-nolisten tcp
使用して無効にできます。
そうしないと、IP 127.0.0.1の使用に問題がある可能性があり、他のIPを使用する可能性があります。私はこれについての経験はありませんが、うまくいきます/etc/hosts
。また、で提供されているすべてのIPがifconfig
機能する必要があります。