Videokomprimierungsgrößen und -codecs von JPEG

626
Vinny

Ich baue einen Datenlogger mit 3 Kameras, der als JPEG-Frames (o.79MB / jpeg @ 24bit / Pixel) mit 24 Frames pro Sekunde ausgegeben wird. Ich möchte diese Bilder aufnehmen und in ein Video konvertieren. Jeder

Für das Video versuche ich, die Größe des Videos und das Kodierungsformat zu schätzen, das ich verwenden sollte, um eine 1080p-Videoqualität zu erzeugen? Und wie lässt sich die Zeit abschätzen, die für die Kodierung des Videos erforderlich wäre?

Gibt es eine Formel, die die endgültige erreichbare Datengröße abschätzen kann?

0

1 Antwort auf die Frage

1
slhck

Gibt es eine Formel, die die endgültige erreichbare Datengröße abschätzen kann?

Nein. Die Größe hängt stark von den gewählten Codierungseinstellungen ab, d. H. Dem Ratensteuerungsmodus, der durchschnittlichen Bitrate oder Durchschnittsqualität, der Bildrate, dem Kompromiss zwischen Komprimierungseffizienz und Geschwindigkeit, dem spezifischen Encoder usw.

Wenn Sie einen trivialen Bitratencodierungsprozess mit konstanter Bitrate haben, lässt sich die Größe der Ausgabedatei natürlich leicht berechnen. In den meisten Fällen möchten Sie jedoch keine feste Bitrate erzwingen.

Für das Video versuche ich, die Größe des Videos und das Kodierungsformat zu schätzen, das ich verwenden sollte, um eine 1080p-Videoqualität zu erzeugen?

1080p bezieht sich nur auf eine vertikale Auflösung von 1080 Pixeln. Mit diesen Dimensionen ist keine inhärente "Qualität" verbunden. Wenn Sie über Qualität sprechen, kategorisieren Sie sie allgemein als:

  • verlustfrei (mathematisch verlustfrei)
  • visuell verlustfrei (Unterschiede zwischen Original und verschlüsselter Version für das menschliche Auge nicht sichtbar)
  • verlustbehaftet

Wenn Sie einen verlustfreien Codec wie Raw YUV, FFV1 oder HuffYUV auswählen, ist die einzige Dateigröße die Sorge. Wenn Sie einen visuell verlustfreien Codec wie ProRes oder DNxHD wählen, werden möglicherweise immer noch große Dateigrößen angezeigt, die für das Online-Streaming ungeeignet sind.

Für den verlustbehafteten Teil sollten Sie über Ihre Anforderungen nachdenken. Ist eine schnelle Kodierung wichtiger als eine geringe Dateigröße? Haben Sie Angst vor Kompressionsartefakten oder sollte das Video durch das Web gestreamt und daher komprimiert werden? Planen Sie, den Stream einfach zu archivieren, um ihn später anzusehen?

Abhängig von der Antwort auf die oben genannten Fragen können Sie eine schnelle Codierung mit nur einem Durchgang und niedriger und eingeschränkter Bitrate vorziehen, um Webstreaming zu ermöglichen. Oder Sie möchten vielleicht eine langsame Kodierung mit zwei Durchläufen und einem konstanten Qualitätsmodus (z. B. CRF in x264 ) vorgeben, wenn Sie Wert auf die Wiedergabetreue legen, aber dennoch eine relativ kleine Größe haben möchten.

Und wie lässt sich die Zeit abschätzen, die für die Kodierung des Videos erforderlich wäre?

Dies hängt von Ihren CPU-Fähigkeiten, den Pixelabmessungen und der Bildrate des Videos, der räumlich-zeitlichen Komplexität und den Encoder-Optionen ab. Mit libx264zum Beispiel haben Sie verschiedene Presets zur Auswahl. In der FFmpeg H.264-Codierungsanleitung finden Sie einige Tipps.

Ich danke Ihnen sehr für Ihre Antwort. Wie meine Nachforschungen stelle ich anscheinend mehr Fragen als Antworten: D. Um Ihre Fragen zu beantworten, sind meine Hauptanforderungen die Videoqualität und die Dateigröße. Ich versuche, eine Videoqualität für einen Bildschirm mit 1920 x 1080 auszugeben, und ich bin mir sicher, dass dies eine verlustbehaftete Kompression als verlustfreie sein wird. Vinny vor 8 Jahren 0
Was genau sind die Dateigrößenbeschränkungen? Streamen Sie über einen begrenzten Kanal oder ist der Bildschirm direkt mit der Quelle verbunden? Sie sollten in der Lage sein, etwas einfaches wie ffmpeg -i zu tun-c: v libx264 -crf 20 -preset langsame ausgabe.mp4`. Eine CRF von 20 bedeutet eine ziemlich hohe visuelle Qualität. Die langsame Voreinstellung sorgt für eine bessere Komprimierung. Führen Sie jedoch, wie der Name schon sagt, beim Kodieren langsamer vor. Sie können die Qualität mit dem Parameter CRF variieren. weniger ist besser. 18 sollte schon optisch ziemlich verlustfrei sein. Eine CRF von +/- 6 ergibt ungefähr die Hälfte oder das Doppelte der Dateigröße. slhck vor 8 Jahren 0