Durch das Komprimieren von Videos werden noch größere Dateien erstellt


17

Ich habe die GUI (Rechtsklick => Komprimieren) verwendet, um zu versuchen, eine .tar-Datei zu komprimieren, die 3 Videos mit insgesamt 1,7 GB (.H264 MP4s) enthält. gzip, lrzip, 7z usw. haben nichts mit der Dateigröße zu tun und der komprimierte Ordner ist auch 1,7 gb groß.

Ich habe dann versucht, lrzip über die Befehlszeile auszuführen (falls es ein GUI-Problem war) und das Flag -z (extreme Komprimierung) verwendet. Dies war meine Ausgabe.

Bildbeschreibung hier eingeben

Wie das Komprimierungsverhältnis zeigt, ist die tatsächliche Größe des komprimierten Ordners größer als das Original! Ich weiß nicht, warum ich kein Glück habe. Insbesondere lrzip sollte laut den von mir gelesenen zufälligen Überprüfungen und den offiziellen Dokumenten (Dateien größer als 100 MB, je größer desto besser) wirksam sein - siehe https://wiki.archlinux. org / index.php / Lrzip

Warum kann ich meine Dateien nicht komprimieren?


2
Persönlich kümmere ich mich nicht darum, mp4-Videos zu archivieren, da diese Videos bereits vom Codec komprimiert wurden.
Kinderwagen

Mit Videokonvertierungs- / Kompressor-Tools wie FFMpeg können Sie weniger Größe erzielen .
Jet

Kinderwagen und Jet sind korrekt. Dies ist das erwartete Verhalten. Es ist kontraproduktiv zu versuchen, etwas zu komprimieren, das bereits gut komprimiert ist. Wenn Sie Videokonvertierungstools verwenden, können Sie möglicherweise auf Kosten der Qualität des Videos (scheinbar oder nicht) Speicherplatz sparen. Beginnen Sie jedoch mit der niedrigsten komprimierten Kopie in höchster Qualität.
John S Gruber

Antworten:


25

Wie @pram oben im Kommentar sagte, sind mp4-Videos bereits komprimiert, und andere Videoformate verwenden wahrscheinlich auch eine Komprimierung in gewissem Umfang. Daher führt der Versuch, sie zu komprimieren, nicht zu einer geringfügigen (wenn überhaupt) Größenverringerung (dies gilt zumindest teilweise auch für Bilder und Musik). In diesem Fall scheinen die Metadaten (für die komprimierte Datei selbst) die Erhöhung zu verursachen. Das einzige Komprimierungsformat, das möglicherweise (und das ist sehr wahrscheinlich) zu einer gewissen Reduzierung führt, ist xz.

Wenn Sie die Größe dieser Videos reduzieren möchten, sollten Sie stattdessen die Videos mit einer Handbremse neu codieren.


3
Ich finde, dass webm im Allgemeinen gute Kompressionsraten hat. Viel kleiner als mp4.
Seth

@Seth MP4 (entweder AVC aka h.264 oder der neuere und bessere h.265 aka HEVC-Codec) liefert tatsächlich kleinere Dateien mit der gleichen Qualität (oder besserer Qualität bei der gleichen Dateigröße).
David Balažic

@ DavidBalažic wir vergleichen hier Äpfel und Äpfel, wenn wir über Orangen reden wollen. mp4 und webm sind beides container, sie haben nichts mit komprimierung zu tun. Sie haben Recht, dass sowohl h.264 als auch h.265 häufig verwendete Codecs in mp4-Containern sind, aber Sie können h.265 nicht mit webm vergleichen . h.264 ist vergleichbar mit dem vp8-codec, der üblicherweise in webm-containern verwendet wird, ebenso wie h.265 mit dem vp9-codec vergleichbar ist, der normalerweise auch in webm enthalten ist. tl; dr: verwenden sie h.265 in mp4 und vp9 in webm und sie erhalten ungefähr die gleiche qualität / effizienz.
Forresthopkinsa

13

In der Tat ist die Tatsache, dass die Dateien bereits komprimiert sind, nicht das entscheidende Problem. Das liegt daran, dass die Komprimierung im Allgemeinen nur funktionieren kann, wenn die Daten redundant sind . Dies ist bei nicht komprimierten Dateien praktisch immer der Fall - es ist jedoch nicht unbedingt ersichtlich, wie hoch die Redundanz ist. Allzweck-Komprimierungsalgorithmen zielen meistens auf die in Textdateien offensichtliche Art ab: Viele Wörter tauchen nicht nur einmal, sondern häufig in identischer Form auf. Vielleicht können Wortphrasen kombiniert werden, usw. usw. Die Algorithmen sind recht gut in Dies auf alles verallgemeinernd, von ASCII-codierten Telefonnummernlisten über chinesische Gedichte bis hin zu binärem Maschinencode, aber sie können unmöglich für irgendeine Art von Daten funktionieren . Insbesondere sind Mediendateien konzeptionellanaloge Daten in einer verrauschten digitalen Darstellung. Das heißt, es gibt überhaupt keine Art von Textreduzierung: Einige Motive könnten wiederkehrend sein, aber immer mit einer etwas anderen Konfiguration des Sensorrauschens. Aus diesem Grund verwenden alle komprimierten Bild- / AV-Formate eine sorgfältig ausgewählte Transformation als ersten Codierungsschritt, normalerweise basierend auf DCT oder Wavelets . Diese Transformationen verschieben grob gesagt die Bild- und Rauschanteile an verschiedene Stellen, so dass sie gut getrennt werden können und mit verlustbehafteter Komprimierung nur die Informationen erhalten bleiben, die Sie für "am wichtigsten" halten, wobei das Rauschen nicht enthalten ist, während " gute Informationen "hat viel Redundanz. (So ​​funktioniert es nicht wirklich, aber so ähnlich.)

Wenn Allzweckkompressoren diese Transformationen verwenden würden, wäre der Effekt umgekehrt: Die meisten digitalen Informationen würden fälschlicherweise als Rauschen klassifiziert, da es an der "glatten" Struktur mangelt, die Sie in analogen Signalen finden. Und nach verlustbehafteter Videokomprimierung kann offensichtlich weder analoge Glätte noch digitale Wiederholung mehr festgestellt werden (wenn dies der Fall wäre, würden die Codecs eine andere bzip-Stufe oder etwas anderes verwenden!).


12

Der Grund, warum Sie kein Glück haben, ist, dass mp4 bereits komprimiert ist. Sie können es nicht weiter komprimieren. Sie fügen der Datei lediglich die Header-Informationen des Komprimierungsformats hinzu.

Da die Dateien bereits komprimiert sind und Sie sie nicht weiter komprimieren können, führt dies zu einer Zunahme der Dateigröße, da Sie nur die gleichen Informationen beibehalten und ein paar Bytes mehr Header-Informationen hinzufügen müssen.


5

Dies ist ein schönes Beispiel für das Taubenschlagprinzip .

Da die Datei bereits (verlustbehaftet) komprimiert ist, ist nirgendwo eine Reduzierung zu verzeichnen, was bedeutet, dass Sie bereits bei null Nettogewinn sind. Wie die anderen erwähnten, hat das komprimierte Format selbst einen gewissen, normalerweise vernachlässigbaren Verlust in seinen eigenen Metadaten. All dies führt dazu, dass wahrscheinlich keine Schublade mehr in der Gruppe gleicher oder kleinerer Dateien vorhanden ist und Ihre komprimierten Daten in die Gruppe größerer Dateien fallen.


4
Es tut mir leid, aber dies ist eine fehlerhafte Anwendung des genannten Prinzips. Sie könnten dieselbe Logik auf eine 1,7-GB-Datei mit Nullen anwenden und eine falsche Antwort erhalten. Das Pigeonhole-Prinzip wird im Allgemeinen verwendet, um die Existenz nicht komprimierbarer Dateien zu beweisen, und nicht, um zu beweisen, dass eine bestimmte Datei tatsächlich nicht komprimierbar ist. (Letzteres ist nicht berechenbar, da die Kolmogorov-Komplexitätsfunktion keine berechenbare Funktion ist).
Nneonneo

1
@nneonneo Dann zögern Sie nicht, den verlinkten Wikipedia-Artikel zu korrigieren. Die Existenz inkomprimierbarer Dateien folgt direkt daraus. Dann fügen Sie die Komprimierungs-Metadaten hinzu und plötzlich haben Sie eine Datei, die größer als das Original ist. Welches ist genau das, was ich gesagt habe. Der Beweis, dass die Datei unter einer gegebenen Implementierung eines gegebenen Algorithmus nicht weiter komprimierbar ist, ist, dass die Ausgabe nicht kleiner ist. Natürlich ist es auch möglich, dass die Metadaten einfach größer sind als der Komprimierungsgewinn, aber ich bin mir nicht sicher, ob ich das als im benutzerorientierten Sinne komprimiert beschrieben habe.
Livius

@Livius Der Wikipedia-Artikel ist korrekt: Er verwendet das Pigeonhole-Prinzip, um die Existenz nicht komprimierbarer Dateien für einen bestimmten verlustfreien Komprimierungsalgorithmus zu beweisen . Sie können die Dekomprimierbarkeit einer bestimmten Datei jedoch nicht allein aus dem Pigeonhole-Prinzip ableiten.
David Richerby

@DavidRicherby Ja, aber die Tatsache, dass die Datei durch eine bestimmte Implementierung eines bestimmten Algorithmus nicht komprimiert wird, ist der Beweis, dass sie nicht komprimierbar ist. Wenn es keine anderen Gründe für das Vorhandensein inkomprimierbarer Dateien gibt, liegt das Komprimierungsversagen an der PP. Der einzige andere mögliche Grund wäre, dass ein gegebener Algorithmus keine Möglichkeit sieht, seine Größe zu verringern, was wiederum der Fall zu sein scheint: "Unter den Annahmen des Algorithmus gibt es keine kleinere Datei mit den gleichen Informationen; solche Fälle existieren notwendigerweise wegen der PP ".
Livius

Genauer gesagt, erzwingt das PP, dass der Algorithmus Eingaben enthält, deren Bild nicht im Bereich kleinerer Dateien liegt. Jede Entscheidung, die dazu führt, dass das Image einer bestimmten Datei nicht in diesen Bereich passt, wird auf einer bestimmten Ebene vom PP und den Kompromissen, die es erzwingt, gesteuert (unter der Annahme einer vernünftigen Definition des Komprimierungsalgorithmus). Dann gehört jede Datei, deren Bild nicht kleiner ist, zu dem Satz, den das PP von der Komprimierbarkeit ausgeschlossen hat. Der Beweis, dass eine bestimmte Datei nicht komprimierbar ist, ist, dass sie nicht komprimiert werden kann. im weitesten sinne ist die inkompressibilität immer ein ergebnis der PP und ihrer kompromisse.
Livius

4

Wenn Sie diese Dateien komprimieren möchten, müssen Sie die Qualität reduzieren.

Ohne zu wissen, wie lange und in welchem ​​Format und mit welchem ​​Inhalt diese Dateien gespeichert sind, ist es schwierig festzustellen, ob diese Dateien Speicherplatz haben, um ohne sichtbaren Qualitätsverlust verkleinert zu werden.

Blu-ray-Discs mit 1080p-Video sind in der Regel größer als 25 GB, daher ist es nicht unwahrscheinlich, dass Sie bereits ein optimales Verhältnis von Qualität zu Größe für H.264 haben.

Sie können versuchen , Dateien mit ffmpegoder avconvzu konvertieren.

Du könntest anfangen mit ffmpeg -i input_file.mp4 -preset slower -crf 20 -c:a copy output_file.mp4

Der anconvBefehl funktioniert ähnlich.

  • Erhöhen Sie den -crfWert, um die Dateigröße und -qualität zu verringern. Ich empfehle nicht mehr als 25.

  • Sie können die Voreinstellung auf slowoder ändern medium, um die Geschwindigkeit zu erhöhen, aber Ihre Dateigröße wird im Vergleich zu sloweroder sogar darunter leiden veryslow(wenn Sie sehr geduldig sind!).

  • Weitere Einstellungen finden Sie hier: http://mewiki.project357.com/wiki/X264_Settings

  • Ich empfehle, sich von den meisten fernzuhalten, da die Voreinstellungen vernünftige Standardeinstellungen liefern, mit -tuneAusnahme von.

  • Versuchen Sie es mit einem Denoiser. Wenn es sich bei Ihrem Inhalt um Film handelt ( -vf hqdn3d) , können Sie die visuelle Qualität im Vergleich zu einem hohen -crfWert verbessern .

  • Skalieren Sie Ihre Inhalte -vf scale=-1:720auf 720p und -vf scale=-1:480480p, um die Codierungsgeschwindigkeit zu verbessern und die Qualität beizubehalten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.