Ich möchte einen Live-Stream von (einem Fenster auf) meinem Linux-Desktop über eine kostenlose Streaming-Site erstellen und das aufgezeichnete Video als gefälschte Webcam verwenden. Unter Windows gibt es dafür viele Tools. Mit ffmpeg kann ich Eingaben in einem bestimmten Fenster erfassen, aber ich kann keine Möglichkeit finden, das Video auf einem gefälschten Gerät im Webcam-Stil auszugeben, das von Flash verwendet werden kann.
Kann jemand eine Methode (oder Software) dafür empfehlen?
linux
ffmpeg
screencasts
virtual-webcam
bkconrad
quelle
quelle
Antworten:
Sie können v4l2loopback installieren . Es ist ein Kernelmodul, das eine Webcam simuliert. Laden Sie es mit:
Dann müssen Sie den Videostream mit einem Programm wie ffmpeg an das Gerät / dev / video0 senden. Um den Desktop zu erfassen und ihn mit ffmpeg an / dev / video0 weiterzuleiten, können Sie die folgende Befehlszeile verwenden:
Ändern Sie den Wert von -r von 15 in einen anderen Wert, wenn Sie eine andere Bildrate wünschen. Die Auflösung wird im Parameter -s ausgewählt. Wenn Sie einen Versatz von der oberen linken Ecke des Bildschirms angeben möchten, übergeben Sie ihn im Parameter -i in der Form "-i: 0.0 + x, y", wobei x und y der horizontale bzw. vertikale Versatz sind.
quelle
[x11grab @ 0x24013c0] Stream #0: not enough frames to estimate rate; consider increasing probesize
,[v4l2 @ 0x2409520] ioctl(VIDIOC_G_FMT): Invalid argument
undCould not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Benutze v4l2loopback mit mplayer .
make
undsu -c 'make install'
),su -c 'modprobe v4l2loopback'
,Ändern Sie dann eine Zeile in der Datei
examples/yuv4mpeg_to_v4l2.c
des v4l2loopback-Quellordners abzu
und
make
in diesem Ordner tun .Führen Sie es dann aus dem folgenden
examples
Verzeichnis aus:wo Sie
movie.mp4
mit dem Namen Ihrer Videodatei ersetzen . Und ersetzen Sie/dev/video0
mit Ihrem Loopback-Gerät.MPlayer ist in der Lage, alle Webstreams, alle Arten von Videodateien abzuspielen, sogar von stdin! Ich habe es gerade mit einer Datei von http://www.tagesschau.de getestet .
Anstelle des $ TS könnte man ein setzen
-
(was für stdin steht). Und vor mplayer leitet Ihr Befehl ffmpeg seine Ausgabe auf stdout um. Also so etwas wie:Habe den letzten nicht getestet, weil du nicht weißt, wie dein ffmpeg-Befehl aussieht.
quelle
./yuv4mpeg_to_v4l2 < /dev/video0 &
Leads./yuv4mpeg_to_v4l2: : missing YUV4MPEG2 header
. Wie ersetze ich/tmp/pipe
durch/dev/video0
?Welche Distribution benutzt du? Ich hatte Erfolg mit WebCamStudio unter Arch in Kombination mit dem webbasierten "Studio" von Livestream. Es ist allerdings eine Weile her, seit ich es benutzt habe.
http://www.ws4gl.org/
Was versuchst du genau zu tun? Mit x11grab kompiliertes ffmpeg kann den Desktop aufzeichnen. Ich hatte nur begrenzten Erfolg damit, Ustream davon zu überzeugen, aber es ist wieder eine Weile her und ich denke, dass das, was ich getan habe, nicht mehr funktioniert.
Wenn Sie nur eine Datei statt Ihres Desktops streamen möchten (ich denke, wenn Sie "Ein Fenster" sagen, meinen Sie "VLC"), kann ich Sie in die richtige Richtung lenken, damit das mit Livestream funktioniert (vielleicht) Ustream). Ich finde ungeschickt heraus, wie das durch Experimentieren geht. Es ist nicht fantastisch, aber es funktioniert mit Livestream.
Justin.tv hat Skripte, die auch von VLC auf ihren Dienst streamen können.
http://apiwiki.justin.tv/mediawiki/index.php/Linux_Broadcasting_API
quelle
Erstens macht appear.in wahrscheinlich, was Sie wollen, ohne Ärger (ich bin nicht angeschlossen): http://appear.in/
Zweitens können Sie mithilfe von OBS, das kürzlich die Linux-Unterstützung (!) Hinzugefügt hat, Streams an Twitch oder andere Dienste senden: https://obsproject.com/
OBS löst auch das viel schwierigere Problem, den Sound und die Audioeingabe des Systems während der Bildschirmaufnahme auf Ubuntu zu muxen (nicht durch irgendetwas im
universe
Repo gelöst , das ich bisher gefunden habe).Ich habe keine großartigen Unix-y-Lösungen. Aber die haben in der realen Welt für mich funktioniert.
quelle