Autor Thema: Video-Aufnahme von USB-Camera – welche Software? – SimpleScreenRecorder?  (Gelesen 181 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline perchlorat

  • Vollwertiges Mitglied
  • ***
  • Beiträge: 125
  • Dankeschön: 1 mal
  • Karma: +0/-0
    • Lebenslust jetzt! – Praxis für Psychotherapie
  • Desktop: XFCE
  • Grafikkarte: nVidia GeForce GTX 1650
  • Grafikkartentreiber: nonfree
  • Kernel: 5.10.2
  • Prozessor: i5-7400
  • Skill: Anfänger
  • Zweig: stable
Um den Fehler eines Smartphone mit wenig Aufwand per Video zu dokumentieren, wollte ich meine USB-Kamera (Logitech C920 mit 1080p) benutzen. In der Software "SimpleScreenRecorder" kann ich statt eines aufzunehmenden Rechtecks auch "Record V4L2 device" auswählen und dann auch ein Pixelformat angeben (das vermutlich zu den Fähigkeiten der Kamera passen sollte). Gleiches gilt für die Framerate von 30 fps.
Im Audio-Eingang hab ich natürlich ebenfalls die Kamera ausgewählt.
Für die Qualität / Kompression habe ich 16 gewählt.
Als Ausgabe soll eine *.mp4-Datei entstehen. Codec H.264

Problem: Direkt nach Aufnahmestart meldet das Programm:
[FastScaler::Scale] Warning: No fast pixel format conversion available (1,5 -> 23,1), using swscale instead. This is not a problem, but performance will be worse.
Je nach von mir gewähltem Pixelformat wird mit 5 oder 10 oder 15 fps aufgenommen. Der Ton ist OK.

Natürlich ist solch eine Framerate unbrauchbar. Die Kamera kann 1080p bei 30 fps liefern. Ich hab dann noch das Preset auf "ultrafast" und den Qualitätsfaktor auf 12 reduziert, aber es hat an der üblen Framerate nichts geändert.

In "QtV4L2" kann ich bis max 720p @ 30fps alle Formate frei wählen und auf dem Monitor auch problemlos darstellen. Aber ich kann diese Einstellungen anscheinend nirgends verbindlich systemweit fest legen.

Auffällig ist dabei noch Folgendes:
Wenn ich mit V4L2 z.B. 1080p @ 30fps eingestellt habe, geht das nur in Verbindung mit der Einstellung auf CaptureImageFormat = MJPG (Motion-JPEG). Beende ich V4L2, mache einen Versuch mit dem SimpleScreenRecorder und starte dann wieder V4L2, so finde ich dort die Einstellungen vom SimpleScreenRecorder vor, nämlich 960 x 720 @ 15 fps sowie CaptureImageFormat = YUYV 4:2:2. Und dieses CaptureImageFormat lässt nicht mehr als 15fps zu.
Demnach muss es ja wohl doch irgend eine Konfigurationsdatei geben, die von V4L2 und vom SimpleScreenRecorder verändert wird.

Frage: Wie kann ich jetzt mit einer möglichst einfachen Software mit der USB-Kamera ein Video aufnehmen? Und zwar möglichst in 720p @ 30 fps.

Anmerkung:
Möglicherweise hängt diese Schwierigkeit auch mit diesem Problem zusammen:
Wenn ich Jitsi- oder Zoom-Sessions habe, wird nie z.B. das 720p Pixelformat der Kamera genutzt, das diese locker liefern kann, sondern bestenfalls im 4:3-Format 960 x 720 und 15 fps. Ich betreibe einen eigenen Jitsi-Server, dessen Einstellungen auf maximale Videoqualität ermöglichen. Die Begrenzung liegt also auch hier eindeutig auf der Seite von Manjaro und wie die Kamera hier behandelt wird.


Offline perchlorat

  • Vollwertiges Mitglied
  • ***
  • Beiträge: 125
  • Dankeschön: 1 mal
  • Karma: +0/-0
    • Lebenslust jetzt! – Praxis für Psychotherapie
  • Desktop: XFCE
  • Grafikkarte: nVidia GeForce GTX 1650
  • Grafikkartentreiber: nonfree
  • Kernel: 5.10.2
  • Prozessor: i5-7400
  • Skill: Anfänger
  • Zweig: stable
Hab gerade experimentell ein Workaround gefunden:
1.) V4L2 starten und gewünschte Kamera-Einstellungen vornehmen.
2.) In V4L2 das Capturing starten. Das Live-Bild der Kamera wird angezeigt.
3.) SimpleScreenRecorder starten und Rechteck über das Capturing-Fenster legen.
4.) Aufnahme starten usw.

Ergebnis ist das, was ich eigentlich auch ohne Umweg erreichen wollte, eine Aufnahme mit 720p @ 30fps. Auch höhere Pixelformate wären natürlich möglich.

Dennoch halte ich meine Fragen zur Diskussion hier offen.

Offline quantix

  • Held Mitglied
  • *****
  • Beiträge: 618
  • Dankeschön: 98 mal
  • Karma: +0/-0
  • Desktop: Xfce + fish
  • Grafikkarte: Laptop Ati RS880M / PC GeForce GT 730
  • Grafikkartentreiber: Laptop free / PC nonfree
  • Kernel: 5.11
  • Prozessor: Laptop AMD Phenom II P920 / PC i5-4460
  • Skill: Anfänger
  • Zweig: stable
Das ganze kann man mit nur einem Programm machen.Es gibt im AUR das Paket Scrcpy, mit dem man den Bildschirm auf den Desktop spiegeln und das Phone mit Tastatur und Maus bedienen kann.
https://github.com/Genymobile/scrcpy
http://aur.archlinux.org/packages/scrcpy
Dazu muss am Mobilphon das USB-Debugging freigeschaltet werden und am PC/Laptop die Pakete android-tools und android-udev installiert sein.

Bevor man Scrcpy startet, muss man das Mobile mit dem PC verbinden und die Datenübertragung aktivieren. Danach kann man das Programm im Terminal mit
scrcpystarten. Will man ein Bildschirm-Video vom Smartphone erstellen, ruft man Scrcpy mit
scrcpy -r Dateiname.mp4auf. Mit -h sieht man alle Möglichkeiten. die Scrcpy bietet. Im AUR gibt es noch weitere Pakete, wie eine GUI und qt-Version.

Alles sollte so einfach wie möglich sein - aber nicht einfacher.
Albert Einstein

PGV ecogold, HP Pavilion dv7, Acer Spin 111, Raspberry Pi 2
Folgende Mitglieder bedankten sich: kisun

Offline perchlorat

  • Vollwertiges Mitglied
  • ***
  • Beiträge: 125
  • Dankeschön: 1 mal
  • Karma: +0/-0
    • Lebenslust jetzt! – Praxis für Psychotherapie
  • Desktop: XFCE
  • Grafikkarte: nVidia GeForce GTX 1650
  • Grafikkartentreiber: nonfree
  • Kernel: 5.10.2
  • Prozessor: i5-7400
  • Skill: Anfänger
  • Zweig: stable
Danke Quantix, deine Idee klingt prima. Allerdings sagte ich ja, dass das Smartphone einen sporadischen Darstellungsfehler zeigt und ich diesen Fehler und dessen Auftreten in einem Forum diskutieren will.
Schließe ich aber am USB-Anschluss des Smartphones etwas an, um sozusagen ein Screenrecording von dort auszuführen, würde ich das Smartphone so beeinflussen, dass entweder die Fehlersuche erschwert würde oder dass der benutzte USB-Anschluss vielleicht sogar den Fehler verhindern könnte.
Das Ganze ist eh schwer reproduzierbar. Daher bevorzuge ich eigentlich die USB-Kamera.

Ich werde das aber trotzdem mal probieren.

Unabhängig davon bleibt ja auch noch meine Frage, wie ich alle Video-Programme, insbesondere SimpleScreenRecorder sowie Jitsi und Zoom dazu bewegen kann, immer 720p Videostreams @30fps zu verarbeiten.

Offline quantix

  • Held Mitglied
  • *****
  • Beiträge: 618
  • Dankeschön: 98 mal
  • Karma: +0/-0
  • Desktop: Xfce + fish
  • Grafikkarte: Laptop Ati RS880M / PC GeForce GT 730
  • Grafikkartentreiber: Laptop free / PC nonfree
  • Kernel: 5.11
  • Prozessor: Laptop AMD Phenom II P920 / PC i5-4460
  • Skill: Anfänger
  • Zweig: stable
Schließe ich aber am USB-Anschluss des Smartphones etwas an, um sozusagen ein Screenrecording von dort auszuführen, würde ich das Smartphone so beeinflussen, dass entweder die Fehlersuche erschwert würde oder dass der benutzte USB-Anschluss vielleicht sogar den Fehler verhindern könnte.
Diese Befürchtung habe ich nicht. Es wird durch scrcpy nur der Bildschirminhalt des Smartphons angezeigt und nicht auf das OS des Phones zugegriffen wird.

Zitat
It focuses on:
 
  • lightness (native, displays only the device screen)
https://github.com/Genymobile/scrcpy
Um ganz sicher zu gehen, kann man die Steuerung durch Tastatur und Maus mit -n abschalten. In diesem Fall startet man die Aufname mit
scrcpy -n -r Dateiname.mp4Ich vermute, dass Screenrecording nicht im Phone, sondern von scrcpy am Computer durchgeführt wird.
Alles sollte so einfach wie möglich sein - aber nicht einfacher.
Albert Einstein

PGV ecogold, HP Pavilion dv7, Acer Spin 111, Raspberry Pi 2
Folgende Mitglieder bedankten sich: kisun