Ich benutze solche Dinge:
avconv -f x11grab -s 1024x768 -r 24 -i 0:0 -deadline realtime -b 5000000 -minrate 200000 -maxrate 40000000 recording-filename-000.webm
Wo:
-f x11grab
- Erzwingt das "Format" der Eingabe für die Bildschirmaufnahme.
-s 1024x768
ist die Auflösung der Eingabedatei (aka Erfassungsbereich). Zum Beispiel entspricht der Desktopauflösung. Wenn es kleiner ist, befindet sich der Aufnahmebereich oben und links. In diesem Beispiel habe ich den Aufnahmebereich 1024 x 768 verwendet.
-r 24
- Framerate. Grundsätzlich werden 23 bis 30 FPS von echten Filmen verwendet, um ein flüssiges Aufnahmebild zu erhalten. Bei Screencasts kann es jedoch in Ordnung sein, diesen Wert zu reduzieren, um ein besseres Bild bei niedrigeren Bitraten zu erhalten. Ich habe 24 verwendet, um Bildschirmaufnahmen zu machen.
-i 0:0
ist ein Hinweis, um die Anzeige 0: 0 als Quelle zu verwenden (Gerät ist in Xorg-Notation). Wenn Sie nur 1 Monitor und Xorg-Standardeinstellungen haben, ist 0: 0 die meiste Zeit in Ordnung.
-deadline realtime
- ist ein Hinweis auf libvpx. Wir wollen Live-Capture. Wir wollen Echtzeitleistung. Deshalb wird libvpx es am besten tun, VP8 in REALTIME zu kodieren. Um dies zu tun, wird Qualität gegen Geschwindigkeit eingetauscht. Bei gegebener Bitrate ist die Qualität etwas schlechter als in Nicht-Echtzeit. Aber die Codierungsgeschwindigkeit würde explodieren. Auf meiner Hardware kann es also 1024x768 @ 24FPS, intensive Szenen, zermahlen, ohne Frames fallen zu lassen (leistungsstarke CPU wird jedoch empfohlen). In diesem Beispiel wollte ich eine Live-Aufnahme mit guter Bildwiederholrate und einem recht großen Aufnahmebereich. Die CPU-Auslastung durch den Codec könnte also ein Problem sein. Deshalb ist dieser Hinweis wirklich für gute Ergebnisse erforderlich.
-b 5000000
- Zielbitrate in Bit / Sekunde. Ich habe 5 Mbit verwendet, um ein mehr oder weniger gutes Bild von ziemlich intensiven Szenen zu erhalten. Der Codec versucht, die durchschnittliche Bitratengeschwindigkeit des Videos nahe an diesem Wert zu halten. Je niedriger dieser Wert ist, desto schlechter ist die Qualität und desto kleiner ist die Datei. Sie können ein wenig experimentieren, um eine Vorstellung davon zu bekommen, welche Bitrate für bestimmte Verwendungszwecke geeignet ist. Videofreigabedienste würden Videos herunterkonvertieren, wenn Sie überschießen. Wenn Sie einen eigenen Server verwenden möchten, müssen Sie sich um den Datenverkehr kümmern. Wenn Sie unterschreiten, ist die Bildqualität schlecht. Sie können den Wert jederzeit ändern, um eine Vorstellung davon zu bekommen, was für Sie am besten ist. 5 Mbit waren für die mehr oder weniger augenfreundliche Live-Aufnahme intensiver Szenen bei Spielen gedacht, bei denen Sie nicht leicht erkennen können, dass das Bild überkomprimiert ist. Für das Erfassen von Standbildanwendungen benötigen Sie im Grunde genommen weitaus weniger.
-minrate
200000 - ist eine minimal zulässige Bitrate für den Codec. Abhängig von der Art der zu erfassenden Objekte möchten Sie manchmal eine minimale Bitrate erzwingen, um ein vernünftig aussehendes Bild zu behalten, egal was passiert. Manchmal kann die Codec-Heuristik die Bitrate weit unter die von Ihnen gewünschten Werte reduzieren und bei einigen Szenen ein schlechtes Bild liefern. Mit dieser Option kann der Codec gezwungen werden, die minimale Bitrate beizubehalten, auch wenn der Codec der Meinung ist, dass die Szene einfach ist und die Bitrate möglicherweise gelöscht wird. Ein hoher Wert dieses Parameters kann die Dateigröße erhöhen, indem verhindert wird, dass der Codec niedrigere Bitraten verwendet.
-maxrate 40000000
- Dieser Wert steuert die maximale Burst-Bitrate bei intensiven Szenen. Ich habe einen sehr hohen Wert verwendet, um zu ermöglichen, dass der Codec weit über den gewünschten Durchschnitt hinausgeht, wenn er eine höhere Geschwindigkeit für erforderlich hält, um in bestimmten Szenen eine anständige Qualität zu gewährleisten. Um unter allen Bedingungen ein gut aussehendes Bild zu erhalten, ist es wünschenswert, diese Einstellung hoch genug zu wählen (40 Mbit entspricht der BlueRay-Geschwindigkeit und reicht aus). Wenn Sie es jedoch über Ihren eigenen Server streamen möchten, müssen Sie diesen Wert bei intensiven Szenen auf Kosten einer gewissen Bildqualität reduzieren. Andernfalls könnte der Server die gewünschte Burst-Bitrate nicht verarbeiten und sie nicht in Echtzeit an die Benutzer liefern. Dann würde der Spieler einem Puffer-Unterlauf gegenüberstehen (was ärgerlich ist). Video-Sharing-Dienste sorgen für sich selbst und konvertieren Videos normalerweise herunter, um die Parameter auf Kosten der Bildqualität zu senken.
recording-filename-000.webm
- ist ein Dateiname der Ausgabe. Wenn Sie die Erweiterung .webm verwenden, sind ffmpeg / avconv klug genug, um zu verstehen, dass Sie WEBM möchten. Es ist SO einfach - avconv errät das gewünschte Format anhand des Dateinamens. Also .WEBM-Dateien sind in WEBM.
Das war's - dieser Befehl führt eine direkte Bildschirmaufnahme in die webm-Datei durch. Es sind keine zusätzlichen Konvertierungen erforderlich und es libvpx
wird empfohlen, so schnell wie möglich zu sein. Es ist kein Ton zu hören, da keine Spezifikation für die Toneingabe vorliegt. Es kann oder kann nicht sein, was Sie wollen. Für Sound müssen Sie auch die Eingangsquelle für den Sound-Stream angeben.
PS: Das sieht vielleicht etwas kompliziert aus, aber am Ende des Tages können Sie feststellen, dass eine Größe nicht für alle passt. Um ein gutes Bild in allen Situationen zu erhalten, möchten Sie möglicherweise einige Codec-Handles verwenden und diese anpassen. Ffmpeg bietet Ihnen alle Handles, die Sie jemals brauchen könnten und noch viel mehr. Es ist eine schwere Waffe der Videokonvertierung und -codierung. Daher ist dieses Beispiel ein guter Ausgangspunkt für diejenigen, die mehr oder weniger fortgeschrittene Codierungen ausführen möchten und bereit sind, ein wenig zu experimentieren, um wirklich anständige Ergebnisse zu erzielen.