Schwarzer Bildschirm beim Aufnehmen des Bildschirms von xvfb durch ffmpeg x11grab-Gerät

6228
shawnzhu

Ich versuche, Video von einem Firefox aufzunehmen, der vorbeigeführt wird, xvfb-runaber es wird immer nichts in der Videodatei außer schwarzem Bildschirm ausgegeben.

Folgendes habe ich getan:

Firefox starten, google.com öffnen:

$ xvfb-run firefox https://google.com 

Dann wird die Standard-Display-Server-Nummer 99 verwendet. Ich kann die Anzeigeinformationen per Befehl anzeigen xdpyinfo -display :99.

Ein Screenshot funktioniert sehr gut per Befehl:

$ xwd -root -silent -display :99.0 | xwdtopnm |pnmtojpeg > screen.jpg 

Verwenden Sie ffmpeg, um ein Video aufzunehmen:

$ ffmpeg -f x11grab -i :99.0 out.mpg 

Wenn ich die Videodatei wiedergebe out.mpg, ist der Bildschirm immer schwarz.

Gibt es einen Parameter, den ich übersehen habe?

Aktualisierung

Ich habe Fortschritte gemacht, dass das Video nur mit diesem Befehl anstelle eines schwarzen Bildschirms funktioniert:

$ ffmpeg -y -r 30 -g 300 -f x11grab -s 1024x768 -i :99 -vcodec qtrle out.mov 

Beachten Sie, dass für die Bildschirmauflösung Übereinstimmungen erforderlich sind, um weitere Optionen anzugeben xvfb-run:

$ xvfb-run -s "-screen 0 1224x768x16" -a firefox http://google.com 

Aber ich möchte immer noch mehr Rückmeldungen und Antworten erhalten.

5
Schwarz nach welchem ​​Spieler? Bitte zeigen Sie die vollständige Konsolenausgabe für jeden `ffmpeg`-Befehl. LordNeckbeard vor 10 Jahren 0
Im Anschluss an [the docs] (https://ffmpeg.org/ffmpeg-devices.html#x11grab) habe ich den Argumenten auch `-show_region 1` hinzugefügt. Immer noch kein Glück. Was mir auffiel: Nicht einmal die Region wird auf dem Display angezeigt. Wenn ich dies auf dem Hauptdisplay ": 0.0" starte, funktionieren beide (ich bekomme Video * und * sehe die Regionsgrenze). Wenn ich auf einem anderen Bildschirm (wie bei `vncserver`) laufe, funktioniert auch nichts. exhuma vor 8 Jahren 0

2 Antworten auf die Frage

4
dawnfantasy

Ich hatte das gleiche Problem und fand heraus: Sie müssen die Tiefe angeben (16 in diesem Fall), damit ffmpeg keinen schwarzen Bildschirm erzeugt.

z.B

Xvnc -geometry 1024x768 -depth 16 :10 <<---WORKS Xvnc -geometry 1024x768 :10 <<---does NOT work, produce black screen. 
"16" scheint der Standardwert zu sein (laut Xvnc4-Manpage). Ich habe das gleiche Problem und habe sowohl ```` als auch` `24`` als Tiefe versucht. Hab noch ein schwarzes Video. Haben Sie immer noch den Befehl, den Sie für `` ffmpeg`` verwendet haben? exhuma vor 8 Jahren 3
1
exhuma

Ich hatte das gleiche Problem. Anscheinend hatte es etwas mit der in den offiziellen Ubuntu-Paketen verfügbaren Version von ffmpeg zu tun (Kubuntu 15.04 in meinem Fall, um genau zu sein).

Ich habe die ffmpeg-Quellen heruntergeladen und mit Hilfe der Dokumente konnte ich etwas zum Laufen bringen.

Der Erstellungsprozess dauert sehr lange ! Standardmäßig sind viele Funktionen (z. B. x11grab) deaktiviert. Ich endete mit folgendem:

./configure \ --prefix=/home/exhuma/.local \ --enable-x11grab \ --enable-gpl \ --enable-libx264 \ --enable-libmp3lame \ --enable-nonfree 

Ich habe jetzt sowohl Video als auch Ton.