Ich nehme unkomprimiertes 4K-Video von meiner Sony A7R II über ein Videoaufnahmegerät auf und verwende ffmpeg, um das Video zu speichern.
Mein Problem ist, dass ich nicht weiß, welchen Codec ich verwenden soll. Die beiden Optionen, die ich ausprobiert habe, sind:
libx264
, nvenc
und qvx
sie alle füllen im Wesentlichen den Puffer auf und beginnen dann nach weniger als einer Minute Aufnahme, Frames zu überspringen.Ich mache das alles auf einem Laptop, daher habe ich wenig Spielraum für das Hinzufügen von Hardwarecodierung, insbesondere wenn man bedenkt, dass die Lösungen von Intel und Nvidia – zumindest auf meinem Computer – für 4K eindeutig unzureichend sind.
Meine Anforderungen sind, dass der Codec Folgendes zulässt:
Nur für den Fall, dass es nützlich ist, mein Laptop hat einen i7-4710MQ und 32 GB RAM.
Update : einige Klarstellungen: Ich nehme mit 30 FPS auf, mein Aufnahmegerät ist INOGENI, das Sampling ist 4:2:0. Und nein, ich möchte nicht mehr Qualität verlieren, als ich muss. Wenn ich 100 GB/Stunde für die Aufnahme aufwenden muss, bin ich damit einverstanden.
Wie von @Mulvya erwähnt, denke ich, dass das Problem die Voreinstellung "langsam" ist.
Eine Möglichkeit besteht darin, einen komprimierten Stream zu codieren, der ebenfalls verlustfrei ist. Der x264-Encoder kann dies beispielsweise mit "-preset ultrafast -qp 0" tun. Dies wird wahrscheinlich dazu führen, dass Ihre dritte Anforderung (Kompatibilität) nicht bestanden wird, aber da es verlustfrei ist, können Sie später auf billige sich drehende Festplatten umcodieren. Sie können auch den verlustfreien Huffyuv-Encoder verwenden, der möglicherweise besser unterstützt wird. Bei dieser Methode gibt es einige Fallstricke, daher sollten Sie Ihren Workflow auf jeden Fall von Anfang bis Ende testen. Siehe insbesondere diese Frage: Die Verwendung von h264 im loseless-Modus bringt kleine unerwartete Ergebnisse
Wenn Sie diesen Weg gehen, würde ich auch damit experimentieren, Subsampling fallen zu lassen und mit 4:4:4 zu codieren. Es erhöht Ihre Dateigröße möglicherweise nicht so stark und hilft Ihnen, wenn Sie vorhaben, Nachbearbeitungsarbeiten durchzuführen.
Eine weitere Option, abhängig von Ihrem Budget, ist der Kauf eines Encoders. Ich liebe FFmpeg, aber es soll überall funktionieren und nicht Ihre Hardware voll ausnutzen. Mainconcept ist nicht zu teuer und wird besser in der Lage sein, den i7-Prozessor zu verwenden, für den Sie bereits geschält haben. (Siehe zum Beispiel https://software.intel.com/en-us/articles/using-the-intel-media-sdk-within-mainconcept-h264avc-encoder-for-intel-quick-sync-video .) Sie bieten auch einen HEVC-Encoder an, der Ihre Dateigröße weiter verringern würde. Ich kann jedoch nicht für die Qualität bürgen, da meine Erfahrung mit Ateme ist. Aber ich glaube, Sie können es zumindest kostenlos auswerten.
Gyan
RawBean
RawBean
Dimitri Nesteruk
Dimitri Nesteruk
ffmpeg -f dshow -rtbufsize 2000M -video_size 3840x2160 -i video="2318-INOGENI 4K2USB3":audio="Digital Audio Interface (2318-INOGENI 4K2USB3)" -c:v nvenc -preset slow -loglevel info r:\4k.mp4
Gyan
libx264
mitveryfast
oderultrafast
voreingestellt und Profilmain
oderbaseline
.Dimitri Nesteruk
Dimitri Nesteruk
veryfast
scheint zu funktionieren, alles langsamere nicht