Verlustfreie Bildschirmaufzeichnungssoftware

8

Für ein kleines Projekt von mir möchte ich kurze Screenshots aufnehmen, die Funktionen meines Programms zeigen. Derzeit verwende ich eine kleine App auf meiner Ubuntu-Box, die direkt animierte GIF-Ausgaben erstellt. Der Nachteil ist, dass GIF einige Einschränkungen in der Anzahl der Farben hat. Wenn Sie einige der Gifs untersuchen, stellen Sie möglicherweise fest, dass sie zwar gut aussehen, aber nicht perfekt sind, insbesondere wenn Sie sich die Alias-Schriftarten ansehen

Animiertes GIF

Es gibt einige handgemachte Lösungen, zum Beispiel die Demonstration auf der Sublime-Text-Site . Um etwas so Schönes zu haben, müssen Sie zuerst Ihren Bildschirm völlig verlustfrei aufnehmen. Die meisten mir bekannten Screencasting-Programme komprimieren das Video leider.

Frage: Ich habe Ubuntu und OSX zur Verfügung. Welche (wenn möglich kostenlosen) Screencasting-Lösungen gibt es, mit denen ich verlustfreie Videos erstellen kann?

Zusätzliches Guthaben für Programme, bei denen ich die Region oder das Fenster zum Aufnehmen und Ausschalten von Audio auswählen kann.

Aktualisieren

Um klar zu machen, was ich mit verlustfrei meine: Normalerweise werden Videos mit einer Methode komprimiert, die perfekt für natürliche Bilder / Videos ist, aber schrecklich für Bilder / Videos mit scharfen Kanten und einfarbigen Strukturen . Ich habe zwei Screenshots gemacht und einen kleinen Teil gezoomt, damit diese Effekte sichtbar sind. Die erste wird mit gtk-recordmydesktop von höchster Qualität durchgeführt und die Artefakte im grauen Bereich sind deutlich sichtbar

Geben Sie hier die Bildbeschreibung ein

Die zweite Aufgabe wird mit dem kleinen Tool " Record your Desktop" ausgeführt , mit dem GIF-Dateien direkt gespeichert werden und die exakten Pixel des Bildschirms ohne Komprimierung erfasst werden.

Geben Sie hier die Bildbeschreibung ein

Was ich möchte, ist ein Screen-Caster, der seine Videos in diesem Rohformat ohne die Einschränkungen von GIF speichert.

Möglicherweise verwandte Fragen:

Halirutan
quelle
Ich habe meine Antwort mit dem Vorschlag gtk-recordMyDesktop gelöscht, da die volle Qualität nicht verlustfrei ist. Ich war mir einfach nicht sicher, ob es so war oder nicht. Ich habe leider keinen Linux-Rechner zum Testen. Jetzt weiß ich, danke, dass Sie mich wissen ließen, dass es nicht Ihren Bedürfnissen entsprach.
AJ Henderson
@AJHenderson Ich würde mich über jedes Programm freuen , entweder Linux oder MacOSX. Speziell für Mac scheint es viele kleine Tools zu geben, aber ich muss Zeit haben, um sie alle auszuprobieren, und sie können verlustfrei aufnehmen .
Halirutan

Antworten:

7

FFmpeg mit einem verlustfreien Codec ist eine Lösung. Ich erinnere mich an einen Vergleich verschiedener Codecs, der qtrleergab , dass Apple Animation (bekannt als ffmpeg als ) die beste Qualität für die Bildschirmaufnahme bietet.

ffmpeg -f x11grab -r 25 -s 1024x768 -i :0.0 -c:v qtrle output.mov

Stoppen Sie es, indem Sie das Terminal öffnen, während es läuft und drückt q. Ändern Sie natürlich die Auflösung (1024x768 hier) entsprechend Ihrer eigenen. Für einen Abschnitt des Bildschirms Auswahl finden Sie, wie Sie den Bildschirm greifen auf dem ffmpeg - Wiki.

Möglicherweise ist in dem ffmpegmit Ihrer Linux-Distribution gelieferten qtrleCodec nicht enthalten. In diesem Fall müssen Sie Ihre eigene Version herunterladen und kompilieren .

Übelsuppe
quelle
Ich habe auch von Apple Animation gehört . Lass mich das versuchen.
Halirutan
+1 Funktioniert perfekt. Warten wir, ob jemand ein Programm ohne Befehlszeile entwickelt. Andernfalls wird dies meine akzeptierte Antwort sein.
Halirutan
Wenn niemand etwas vorschlägt und Sie wirklich ein GUI-Frontend wollen, scheint mir dies eine einfache Aufgabe für jemanden mit GUI-Kenntnissen zu sein (dh nicht für mich: v), sodass Sie wahrscheinlich jemanden finden könnten, der bereit wäre ein einfaches Frontend in einer halben Stunde zu einem vernünftigen Preis zusammenzupeitschen, vielleicht sogar im Chat. SE
evilsoup
Dies funktioniert unter OS X nicht, das ist traurig.
Anzeigename
Nun, ich möchte mich noch einmal für diese Antwort bedanken. Ich verwende OBS mit der qtrleCodierung, um eine perfekte .mov-Datei zu erstellen. Dann extrahiere ich die Frames und verwende Image Magick, um ein sehr kleines und unglaublich schönes animiertes GIF zu erstellen. Der Vorteil von OBS besteht darin, dass Sie die Ausgabeauflösung und das Fenster oder den Teil des Bildschirms, den Sie aufzeichnen möchten, einfach einstellen können. Sie können damit problemlos mehrere aufgenommene Regionen und Audio kombinieren. So etwas hat man unter Linux selten gesehen!
Halirutan
3

Alternativ können Sie Ihre Bildschirmausgabe mit einem Gerät wie Blackmagic Intensity an einen zweiten Computer weiterleiten, um sie aufzunehmen. Es unterstützt die Aufnahme in ein völlig unkomprimiertes Format (stellen Sie sicher, dass Sie eine SSD oder ein RAID-Setup zum Aufzeichnen haben, da die Bitrate sehr hoch ist).

Der Computer, an dem Sie arbeiten, sollte also über einen Dual-Monitor-Ausgang verfügen. Spiegeln Sie das Display so, dass ein Ausgang an Ihren Monitor und der andere an einen PC mit einer BlackMagic PCIe-Karte (oder USB 3.0-Karte) geht, der den Ausgang aufzeichnet. Verwenden Sie DVI / HDMI, nicht VGA.

Beachten Sie, dass die Intensität nur Videoauflösungen unterstützt, daher ist eine Auflösung wie 1024 x 768 oder 1024 x 1024 usw. nicht gut - 480p, 720p, 1080p usw. sind das, was Sie zum Spiegeln Ihres Displays benötigen (21 "1080p-LCDs) $ 99 jetzt sowieso).

Anschließend können Sie das Rohvideo nach Belieben bearbeiten und komprimieren.

Anthony Agius
quelle
Hehe, ich denke das ist viel übertrieben, aber +1 für die Antwort. Ich brauche etwas schnelles, das ich verwenden kann, wenn ich eine Funktion zum Erstellen eines Screencasts entwickelt habe.
Halirutan
2

Ich hatte sehr ähnliche Anforderungen und fand schließlich auf Claquette .
Es ist eine OS X-App, die einen verlustfreien Codec verwendet. Sie können zwar vor der Aufnahme keinen Bildschirmbereich definieren , verfügen jedoch über eine Zuschneidefunktion, mit der Sie nach Abschluss der Aufnahme einen Bereich auswählen können. Audio kann auch ausgeschaltet werden. Filme können in verschiedenen Formaten exportiert werden (einschließlich h.264, ProRes und animiertes GIF).

Jermiajab
quelle
1
Scheint ein gutes kleines Programm zu sein. Derzeit mache ich meine kleinen Gifs mit Kazam, das mit Ubuntu geliefert wird. Dann verwende ich ein kleines Skript, das aus der akzeptierten Antwort erstellt wurde, um kleine und qualitativ hochwertige Gifs zu erstellen. +1
Halirutan
2

Unter OS X kann ScreenFlow anscheinend verlustfrei aufnehmen (nicht standardmäßig, dies kann jedoch in den Einstellungen aktiviert werden). Leider ist diese Anwendung nicht kostenlos. Immer noch auf der Suche nach kostenlosen Alternativen…

Wichtiges Update!

Dies gilt nur für Screenflow 4.5.3 (und möglicherweise einige frühere Versionen). In Screenflow 5 ist diese Funktion weg. Sie werben so, als könnten sie verlustfrei aufnehmen, aber das ist eine offensichtliche Lüge: Der "verlustfreie" Modus verwendet Apple ProRes, das nicht verlustfrei ist (und ich habe die Ausgabe getestet, es hat tatsächlich Artefakte), und es gibt keine Möglichkeit, einige auszuwählen anderer Codec (in Screenflow 4.5.3 wird der verlustfreie Modus durch Verwendung des Codecs "Animation" erreicht qtrle, dh in Screenflow 5 gibt es keine Möglichkeit, dies zu tun)

Also ... auf Wiedersehen, süßer Prinz.

Update 2

ffmpeg kann den Bildschirm auch aufzeichnen, wenn Sie lernen, wie man ihn richtig benutzt.

Anzeigename
quelle
Übrigens habe ich ScreenFlow zurückgekauft, als Sie Ihre Antwort gepostet haben. Auch wenn ich es nicht zum Erstellen der kleinen animierten Gifs verwende, auf die diese Frage abzielt, ist es dennoch ein sehr netter Screen-Caster mit vielen netten Funktionen.
Halirutan
Übrigens kann man nur eine aus "gif" und "small" auswählen. gif ist eine sehr ineffiziente Komprimierung.
Anzeigename
Ich würde Screenflow dafür verwenden. Ich habe Version 8 und sie exportiert ProRes 4444 in 100% Größe, was für die meisten Zwecke praktisch verlustfrei ist.
Tomh
Nun, es ist nicht wirklich verlustfrei, und die Frage ist nur verlustfrei
Anzeigename
1

Hier ist eine Option ohne Befehlszeile.

Versuchen Sie es mit Collaaj ( http://collaaj.com ). Funktioniert auf PC & Mac. Es funktioniert nicht unter Ubuntu, aber da Sie erwähnt haben, dass Sie OSX haben, sollte dies gut funktionieren. Ich denke, es sollte das tun, wonach Sie gefragt haben und mehr. B. Regionsauswahl, Auswahl von Eingaben usw., und Sie können Ihre Aufzeichnungen auf collaaj.com hochladen und pflegen, um jederzeit darauf zugreifen zu können. Sie haben eine schöne Reihe von Videos hier - http://collaaj.com/videos

Video Junkie
quelle
Können Sie mit diesem Tool wirklich die Fenster Ihres Bildschirms aufzeichnen? Ich habe nur gesehen, dass sie durch PowerPoint- oder PDF-Dateien scrollen. Außerdem muss ich die Frames des Videos extrahieren, was bedeutet, dass ich die Videos lokal speichern kann. Es scheint, dass dieses Tool es direkt hochlädt, um es zu teilen, oder?
Halirutan
Halirutan, 1. Ja, auf PC und Mac können Sie den gesamten Bildschirm aufnehmen. Sie können sogar Einstellungen zwischen 720P und 1080P ändern, Sie können auch gleichzeitig Bildschirm + Kamera ausführen.
Video Junkie
Halirutan, in Bezug auf Ihre zweite Frage, speichert Collaaj Videos lokal im MP4-Format und bietet Ihnen außerdem die Möglichkeit, sie in die Cloud hochzuladen und als URL zu teilen. Es ist sehr umfassend.
Video Junkie
Dieses Video erklärt klar - collaaj.com/9rE17cT
Video Junkie
0

Wenn Sie etwas weniger Kompliziertes benötigen, versuchen Sie es mit rec, das mir gehört :) https://sites.google.com/site/joopeter/

Es ist auch kostenlos, verlustfrei, aber effizienter und genauer!

Peter
quelle
Wie ich schrieb, habe ich OSX und Ubuntu zur Verfügung. Ihr Programm ist für Windoze XP und höher .
Halirutan
0

Bitte entschuldigen Sie meine Verspätung gegenüber der Party. Dies ist etwas, mit dem ich seit der letzten verlustfreien Bildschirmaufnahme gearbeitet habe

Ursprünglich habe ich OBS verwendet, um meinen Bildschirm im Laufe des Jahres 2019 hauptsächlich zum Hochladen von Bildschirmaufnahmen / Casting auf YouTube aufzunehmen. Vor kurzem habe ich jedoch begonnen, mit ffmpeg zu experimentieren, um meinen Bildschirm aufzunehmen, und das Mikrofon hat die Aufnahme von Desktop-Audio noch nicht getestet .

Ich habe mit den Vanille-ffmpeg-Einstellungen für die Aufnahme meines Bildschirms begonnen, aber die Standard-GOP-Einstellung der Aufnahme macht es äußerst schmerzhaft, wenn ich die Aufnahme in einem NLE / NLA-Editor wie dem Shotcut bearbeite. Deshalb habe ich das Screenshot- Dokument im ffmpeg-Wiki erneut gelesen und bemerkte, dass Bildschirmaufnahmen mit dem x264-Codec verlustfrei aufgenommen werden können, solange -crf 0die crf auf 0 gesetzt ist, was meiner Meinung nach bedeutet, dass ffmpeg den x264-Codec verwendet und keine verlustbehaftete Komprimierung auf die Aufnahme anwendet. Auch das Wiki schlägt vor, -preset ultrafastin Verbindung mit der -crf 0Einstellung des Befehls ffmpeg zu verwenden. Ich habe letzte Nacht mit diesen Einstellungen experimentiert und die Bildqualität / Dateigröße ist großartig.

Ich habe meinen Bildschirm 4K 3840 x 2160 Monitor mit 30 fps aufgenommen und die Bitrate war völlig überschaubar, dh. Ich glaube nicht, dass es jemals über 10 MB / s ging, und eine einminütige Aufnahme war ~ 48 MB, was für die Archivierung von Aufnahmen eine völlig akzeptable Dateigröße darstellt.

Vorsichtsmaßnahmen

  • Wenn Sie keine Befehlszeile bevorzugen, ist dies wahrscheinlich nichts für Sie, da ich festgestellt habe, dass es nicht sinnvoll ist, eine GUI für die Schnittstelle mit ffmpeg zu verwenden, da die meisten GUIs, mit denen ich experimentiert habe, veraltet sind.
  • Außerdem habe ich derzeit Probleme mit der gleichzeitigen Aufnahme von Audio- Mikrofon und Bildschirm unter einem einzigen ffmpeg-Prozess / Befehl. Daher muss ich den Befehl in zwei separate Befehle / verarbeitet aufteilen und gleichzeitig starten, um Audio / Video synchron zu halten.
    • Ich verwende macOS 10.13.6 und verwende den Nvidia- Webtreiber. Dies kann das Problem sein, warum der einzelne ffmpeg-Prozess / Befehl zum gleichzeitigen Aufzeichnen von Bildschirm und Mikrofon fehlschlägt. Ich bin mir nicht ganz sicher, worum es geht. 🤷‍♂️
  • Ich habe noch keine Lösung für die Aufzeichnung des Audios in einem verlustfreien Codec gefunden, aber das wird definitiv meine nächste Forschungsaufgabe sein
  • Außerdem möchte ich alle früheren Aufnahmen von ffmpeg & OBS mit dieser neuen Technik konvertieren , um sie für Archivierungszwecke aufzubewahren.

Sie erwähnen, dass Sie Ihre Aufnahmen in animierte GIFs konvertieren. Ich habe das folgende Projekt verwendet , um kleine Bildschirmaufzeichnungen in GIFs zu konvertieren. Sie funktionieren nur mit terminalbasierten Aufzeichnungen und haben damit angenehme Ergebnisse erzielt. Es gibt sogar einen Docker-Container, der die Verwendung für verschiedene Betriebssysteme recht einfach macht.

Ich habe vor einiger Zeit mit ffmpeg experimentiert , um iPhone-Aufnahmen in animiertes GIF zu konvertieren, was für das Hochladen des GIF auf Github nützlich war, da ich glaube, dass Github das Hochladen von Videodateien wie mov mkv oder mp4 nicht unterstützt .

Außerdem habe ich den QTRLE- Codec schnell durchsucht und es scheint, dass er nicht mit dem MP4- Containerformat kompatibel ist. Wenn also etwas anderes als MOV erforderlich ist, sollten Sie einen anderen Codec verwenden.

⚠️ Der folgende Befehl muss gleichzeitig installiert werden.

concurrently --kill-others \ 
"ffmpeg -f avfoundation -capture_cursor 1 \
-capture_mouse_clicks 1 \
-framerate 30 
-i "1:" -c:v libx264 -crf 0 -preset ultrafast \
lossless-screen-rec.mkv 2>/dev/null" \
"ffmpeg -f avfoundation -i ":3" \
-acodec alac \
lossless-mic-.m4a 2>/dev/null"

Mit dem obigen Befehl wird der Computerbildschirm verlustfrei mit x264 und mit alac auch verlustfrei mit Mikrofoneingaben erfasst. Beide Formate eignen sich gut für die Bearbeitung in einem NLA / NLE-Editor wie Shotcut.

⚠️ ":3"und 1:variiert je nach System unter macOS

So erhalten Sie eine Liste der Aufnahmegeräte unter macOS

ffmpeg -f avfoundation -list_devices true -i ""

Wie auch immer, ich weiß, dass dies eine Menge Informationen sind, aber ich dachte, ich würde diese Informationen teilen, weil ich ffmpeg in den letzten Wochen fast täglich verwendet habe, also dachte ich, ich würde teilen, was ich gelernt habe. und hinterlasse diese Info für zukünftige mich 👴🏻

ipatch
quelle
Herzlich willkommen! Können Sie einen vollständigen ffmpeg-Befehl freigeben? Dies würde es zukünftigen Lesern viel leichter machen, Ihre Antwort zu verwenden.
Michael Liebman