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 0
die 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 ultrafast
in Verbindung mit der -crf 0
Einstellung 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 👴🏻