Lohnt es sich via TV Karte aufgezeichnete MPEG-2 Streams nach h.264 zu kodieren?
-
Immerhin liegen die MPEG-2 Streams in perfekter Qualität vor.
Die Sendeanstalten oder diejenigen, die das Sendematerial zur Verfügung stellen, betreiben hier bei der MEPG-2 Enkodierung ja schon einen großen Aufwand.Klar, der Platzverbrauch wäre mit h.264 wesentlich geringer, aber alle aufgezeichneten Filme die man archivieren will umzukodieren kostet ja auch jede Menge Zeit.
Wie macht ihr das also, sofern ihr überhaupt TV Sendungen aufzeichnet?
Bei mir sieht es momentan so aus:
Grundsätzlich zeichne ich alles auf, dass mich interessiert.
Bei überwiegend Filmen aber auch manche Dokus die ich langfristig archivieren will, entferne ich den Transportstream Ballast (TS) und schneide noch zusätzlich die Werbung und unnötige Tonspuren raus, sofern vorhanden.Alles andere, bei dem ich nicht den Aufwand betreibe die Werbung wegzuschneiden und den TS Ballast zu entfernen, wird unbearbeitet irgendwann angeguckt und dann gelöscht.
Daraus folgt also, das ich schon einige Filme und Dokus, bei dem das TS Zeugs, die Werbung und einige Tonspuren entfernt wurde, auf Festplatte archiviert habe.
Diese liegen aber alle noch als MPEG-2 Material vor, was dazu führt, dass eine ganze 500 GB Festplatte voll ist.Nun stehe ich vor folgendem Problem:
Soll ich
a) alle MPEG-2 Videos in h.264 umkodieren um so auf der 500 GB Platte wieder etwas Platz zu gewinnenoder
b) soll ich mir einfach eine neue Festplatte kaufen und somit mir die Zeits fürs enkodieren sparen?
Zum Enkodieren würde mir bald ein neuer Haswell Rechner zur Verfügung stehen
und da das schon alles geschnitten ist, könnte ich das alles in einer Batch Datei in einem Rutsch umkodieren.
Problematisch ist lediglich der Platzmangel auf allen meinen Festplatten,
so dass ich wohl eher Etappenweise umkodieren müßte.
D.h. 3-4 Filme umkodieren und dann das alte MPEG-2 Zeugs löschen und dann wieder 3-4+n Filme umkodieren und das alte MPEG-2 Zeugs löschen.
n wird hierbei größer, weil der verfügbare freie Platz mit jedem weiter umkodierten und gelöschten MPEG-2 Film ja größer wird.Die Frage ist hier leider auch, ob sich das von der Qualität her lohnt.
Eine Umkodierung nach h.264 bedeutet ja auf alle schonmal, dass ich h.264 schon großzügig viel Bitrate lassen muss, damit das Material nicht deutlich schlechter als MPEG-2 wird, denn verlustbehaftet ist die Umkodierung ja auf alle Fälle.Da ich in nächster Zeit mir auch jede Menge anderer Dinge anschaffen will,
würde ich den kauf einer neuen Festplatte gerne vermeiden.Daher geht die Frage mal an euch.
Was würdet ihr an meiner Stelle run?
-
Ich habe früher, als ich noch DVB-S hatte (jetzt habe ich leider nur noch mieses DVB-T oder verschlüsseltes DVB-C), auch vieles aufgenommen. Das habe ich dann allerdings auf DVD gebrannt. Mit ProjectX & DVDAuthor ging das damals auch ganz gut.
Momentan bin ich dabei die genzen DVDs auf Festplatte zu kopieren und in h.264 umzuwandeln. Die AC3 Tonspuren lasse ich dabei wie sie sind und die mp2 Tonspuren werden in vorbis umgewandelt. Die Dateien sind hinterher etwa halb so groß, ohne dass ich einen Qualitätsverluist erkennen kann.
Zum enkodieren nutze ich ffmpeg mit den Optionen "-c:v libx264 -q:v 1". Auf meinem alten AMD Phenom 9950 geht das mit etwa 50 fps. Auf deinem Haswell sollte das ganze wesentlich schneller sein, daher sollte sich das bei dir auf jeden Fall lohnen.
-
ich wuerde an deiner stelle eine neue, grosze festplatte kaufen. dann kannst du die 500 gb platte noch als backup fuer deine wichtigsten aufnahmen benutzen und aergerst dich nicht ganz so, wenn eine platte den geist aufgiebt. denn von backups hast du so gar nichts geschrieben...
-
Vorschlag: Probier es doch einfach mal an einem deiner Videos aus, da siehst Du dann, wie stark es komprimiert, und ob Du Qualitätsverluste wahrnimmst.
-
Mr X schrieb:
Vorschlag: Probier es doch einfach mal an einem deiner Videos aus, da siehst Du dann, wie stark es komprimiert, und ob Du Qualitätsverluste wahrnimmst.
Ich habe es jetzt mal mit einem 2,3 GB großen Film im MPEG-2 Format probiert.
Verwendet habe ich dafür als GUI Programm Avidemux und als encoder x264.
Als Einstellung habe ich "Einfacher Durchlauf - Qualitäts-Quantizer (Durchschnitt)" ausgewählt und als Quantizerstufe den voreingestellten Wert von 26 genommen.Das umkodierte Video war am Ende nur noch 582 MB groß. Also um den Faktor 4 kleiner.
Leider kenne ich mich nicht so gut bezüglich aus, was man da als Quantizerstufe verwenden soll oder was man als Einstellung überhaupt für x264 vornehmen soll.
Ich schätze mal, dass sich ein 2-pass Durchlauf lohnt, aus Zeitgründen habe ich heute darauf aber verzichtet.Auf die schnelle ist mir jetzt bezüglich Qualitätsverlusten noch nichts aufgefallen, aber hier müßte ich dann wohl noch eher umfangreiche Tests fahren, wofür mir aber momentan die Zeit fehlt.
Falls ihr hier aber schon umfangreich herumprobiert habt, was man als Einstellung für x264 nehmen sollte, dann würde ich das gerne wissen.
-
So ein einfacher Standarddurchlauf ist ok für normale Menschen und spart gewaltig viel Zeit. Du willst schließlich die Filme nicht professionell verkaufen. Oder?
Dieses "Fünf Durchläufe mit 256 Bit Präzision und fünfzehnfach Bewegungskorrektur"-Zeug ist ungefähr im Videobereich das ist, was im Audiobereich die Leute sind, die behaupten, dass man unbedingt monokristalline Kabel (gut eingespielt natürlich) braucht, um den FLAC codierten berührungslosen Scan der Originalschallplatte (50000 mal gespielt und total zerkratzt) richtig zu genießen.
-
SeppJ schrieb:
So ein einfacher Standarddurchlauf ist ok für normale Menschen und spart gewaltig viel Zeit. Du willst schließlich die Filme nicht professionell verkaufen. Oder?
Nunja, verkaufen will ich die zwar nicht, aber Ansprüche an ordentlicher Qualität mit dem zur Verfügung stehen Material habe ich schon.
Bei einem gerade kurzen Vergleich nur eines Bildes habe ich gerade festgestellt, dass ein Quanitzer von 26 wohl nicht reicht, denn in dem Bild ist eine Person mit ihrem Haarschopf von Hinten zu erkennen und die Haare sind schon recht stark weichgezeichnet, im Vergleich zu dem MPEG-2 Originalbild.
Da haben die Haare noch eine Struktur und man sieht die einzelnen Strähnen, wie sie verlaufen.
-
Nun, dann wirst du wohl abwägen müssen, wie viele Stunden CPU-Zeit dir die Haare im Hintergrund wert sind. Hinbekommen wirst du sie schon ziemlich perfekt, es dauert bloß entsprechend länger zu codieren.
-
Constant-Quantizer ist nicht unbedingt ideal, weil es keine Rücksicht auf Helligkeit & "Bewegtheit" der Szene nimmt.
x264 hat aber eine andere Constant-X Einstellung die da besser funktioniert. Ich meine sie heisst Constant-Quality, müsste aber nachsehen.
Und dann gibt es eine weitere Einstellung die es IMO Wert ist gemacht zu werden. Weiss leider den Namen nicht mehr, aber das ist irgend eine "Optimierung" dass in dunklen Bereichen ein höherer Quantizer verwendet wird, so nach dem Motto "das ist so dunkel das sieht eh keiner". Ja, Pustekuchen, das sieht man total krass wenn man einen LCD Fernseher hat -- weil die typischerweise nen viel zu steil ansteigenden Gamma im "fast schwarz" Bereich haben.
D.h. diese Einstellung sollte man ausschalten.
Sonst kann es leicht passieren dass man in dunklen Szenen gröbere Artefakte sieht, wo das Original "sauber" war. Und das obwohl alle nicht-so-dunklen Szenen "perfekt" aussehen.
Und als Tool würde ich Handbrake empfehlen. Da kann man den erwähnten "Constant-X" Mode verwenden (ist der Default Mode), und auch die "komische dunkle Bereiche Optimierung" ist einfach über ein Hakerl zugänglich.
Deinterlacing etc. ist auch eingebaut, und funktioniert auch akzeptabel.
----
Deinterlacing könnte im Übrigen auch ein Grund sein bei MPEG-2 zu bleiben: wenn der Inhalt des MPEG-2 Streams böse interlaced ist, dann bekommt es kaum ein Tool hin daraus nen sauberen progressive Stream zu machen.
Beispielsweise Sachen die auf Film (24 fps) gedreht worden sind und dann mit NTSC Video Equipment (60 fps) weiterbearbeitet. Wie z.B. Babylon 5. Und ganz schlimm wird es wenn das Zeug dann nochmal nach PAL (50 fps) konvertiert wurde.
Die Original-DVD sieht auf nem Fernseher schön flüssig aus. Alles was ich bisher an progressive Versionen gesehen habe ruckelt und wabbelt dass es (k)eine Freude ist.
Die mMn. einzige Möglichkeit das besser hinzubekommen wäre das zu machen was der Fernseher macht, nämlich ein 50 bzw. 60 fps progressive Video draus zu machen, und eben auch mit 50 fps bzw. 60 fps "abspeichern".Falls jmd. ein Tool kennt mit dem das ohne grossen Aufwand geht: bitte mich wissen lassen
-
hustbaer schrieb:
x264 hat aber eine andere Constant-X Einstellung die da besser funktioniert. Ich meine sie heisst Constant-Quality, müsste aber nachsehen.
Bei ffmpeg heißt sie "-crf". Dieses Tool kann ich nur empfehlen. Da es eine Kommandozeilenapplikation ist lässt es sich wunderbar skripten, was bei dieser Menge an Videos sicher sinnvoll ist.
-
Ganz ehrlich, kauf dir einfach eine neue 1TB Platte für 50€ (oder gleich 2TB für 80€) und gut is. Da kostet ja der Strom für's umkodieren mehr.
-
cooky451 schrieb:
Ganz ehrlich, kauf dir einfach eine neue 1TB Platte für 50€ (oder gleich 2TB für 80€) und gut is. Da kostet ja der Strom für's umkodieren mehr.
Kurze Überschlagsrechnung:
Für 50 € bekommt man bei einem Preis von 0,24 €/KWh 208,3 KWh Strom.
Wenn der Rechner unter Last (nur CPU) ca. 90 W benötigt, dann kann man den damit
~ 2315 h rechnen lassen.Angenommen wir brauchen für jeden Film zum enkodieren 60 Minuten, dann sind das
2315 Filme, die man für diese Energiemenge umkodieren könnte
Wenn jeder Film 2,3 GB groß ist, dann ist das eine Ursprungsdatenmenge von 5324.5 GB. Dafür reicht deine 1 TB Platte also gar nicht aus.Recht hättest du, wenn du dafür eine Speicherkapazität von mehr als 5324.5 GB bekommen würdest.
-
Ist aber schon verdammt nahe dran. Bloß Faktor 5. 60 Minuten sind doch auch eher optimistisch bei den hier wohl vorliegenden Qualitätsansprüchen. Man gibt also nicht viel mehr Geld aus für die Platte. Und man hat immer noch eine reale Festplatte für das Geld bekommen, anstatt eine logische Umordnung von Nullen und Einsen, und man hat den Rechner nicht
tagelangmonatelang blockiert.
-
Also 60 Minuten sind schon mehr als optimistisch. Für h264 braucht man eher mehr als die Laufzeit, also 120-200 Minuten pro Film, jedenfalls wenn es halbwegs gut aussehen soll.
-
cooky451 schrieb:
Also 60 Minuten sind schon mehr als optimistisch. Für h264 braucht man eher mehr als die Laufzeit, also 120-200 Minuten pro Film, jedenfalls wenn es halbwegs gut aussehen soll.
Also ich habe gestern bei den Einstellungen wie ich sie weiter oben beschrieben habe auf meinem alten Rechner, einem Core2Duo E6550 ca. 80 Minuten für den einen Film benötigt.
Access: 2013-06-20 19:05:08.000000000 +0200 Modify: 2013-06-19 20:24:27.000000000 +0200
Ein Haswell würde das sicher wesentlich schneller können.
Immerhin ist das dann ein 4 Kerner, anstatt nur 2 Kerner, dann hat er AVX2 und der Takt ist ebenfalls höher.
Außerdem war meine verwendete x264 Version nicht mehr die neuste, da könnte sich also auch allein schon Softwareseitig etwas getan haben.
Wenn ich den Haswell habe, werde ich eh ein neues System aufsetzen und dann werden da auch aktuellere Versionen von x264 & Co dabei sein.Die Frage ist jetzt halt nur, wie das bei einer bessere Qualität mit der Zeit aussieht.
Auf folgender Webseite steht:
Für hochqualitative Encodings ist der Bereich zwischen QP 18 und 20 am interessantesten.
http://encodingwissen.de/x264/technik
Wenn ich also den Quantizer von 26 auf 18 ändere, dürften das auf dem alten Rechner mehr als 80 min werden, die Frage ist dann halt hier wie lange.
Wenn das nur 30 min mehr sind, dann dürfte ein Haswell das ganze auch in 60 min schaffen.Übrigens habe ich während der Rechner das Video kodiert hat, noch nebenbei im internet gesurft.
Obwohl ich Flashblock und NoScript verwende, liefen da vereinzelt hin und wieder dann doch ein paar Scripte und Flashsachen.
-
Noch eine Anmerkung.
Wenn ich auf einen 2-pass Durchgang verzichte, dann verläuft die ganze Kodierung natürlich wesentlich schneller.
Wenn ich dann den Quantizer großzügig bemesse, dann erhalte ich dennoch eine gute Qualität.
Natürlich geht das alles auf Kosten des Speicherplatzverbrauchs, aber mit h.264 werde ich dann trotzdem wesentlich mehr Speicherplatz einsparen, als wenn ich bei MPEG_2 bleibe.
Das optimale Platzbedarf zu Qualitätsverhältnis erreicht man natürlich nur mit einem 2-pass Durchgang, das ist kar, und das geht dann auf die Kosten der benötigten Rechenzeit.Ich müßte also einen Kompromiss finden, zwischen Speicherplatzbedarf und der Rechenzeit, während die Qualität (ob 1-pass oder 2-pass Durchgang) gleich gut bleiben darf.
Das wäre also durchaus eine akzeptable Lösung.
Mehr hierzu steht auch hier:
http://encodingwissen.de/encodingmethoden
-
Okay, 2-pass ist in meinem Fall völlig unnötig:
2-Pass und N-Pass
Sinn und Zweck eines 2-Pass-Encodings ist es, eine vorher festgelegte Dateigröße exakt zu treffen und dabei die subjektiv empfundene Videoqualität im Verlauf des Films möglichst konstant zu halten. [B]2-Pass war nie und ist nicht die Methode, um dieses wolkige Ideal von »maximaler Qualität« zu erfüllen.{/B] Ganz im Gegenteil spielt das Niveau der Qualität nur indirekt über die Zielgröße eine Rolle.
http://encodingwissen.de/encodingmethoden
Ich kann also auf eines der 1-Pass Quality Verfahren zurückgreifen und somit jede Menge Zeit sparen.
Denn ich habe weder vor, das Video bei limitierter Bandbreite zu streamen noch will ich es auf einen knapp bemessenen Datenträger (z.B. DVD) pressen.
Die Daten kommen nämlich einfach auf die Festplatte und da ist die Qualität entscheident.Würde ich einen Film auf DVD kopieren wollen, dann wäre wohl ein 2-pass Verfahren der richtige Weg. Allerdings würde ich für eine DVD ohnehin kein h.264 einsetzen, sondern bei MPEG-2 aufgrund der Abwärtskompatibiltiät zu alten DVD Playern bleiben.
Ich kann also bei 1-pass bleiben.
-
So, ich habe das Video jetzt mit einem Quantizer von 18 noch einmal neu kodiert.
Das Ergebnis ist wesentlich näher am Original, als das vorherige mit einem Quanitzer von 26 kodierte Material, allerdings sind die Haaresträhne weitehin nicht scharf.
Das Problem scheint irgendwie am Wavelet Verfahren, auf das h.264 grundlegend basiert, zu liegen, mit dem Resultat, dass wirklich alles weichgezeichnet wird.
Das Problem hatte ich vor 2 Jahren mit einem frühen Test schon einmal, als ein fein kariertes Hemd, nicht mehr kariert war.Die Qualität ist ansonsten, wenn man über die Weichzeichnung hinwegseht aber brauchbar, wenn auch nicht sehr gut.
Wenn man das Original nicht kennt, dann dürfte einem hier nichts negativ auffallen.Nun zum eigentlichen Gewinn des Ergebnisses.
Ziel wäre es ja, Speicherplatz zu sparen.
Mit einem Quantizer von 18 ist das Video nun 1,45 GB groß.
Also eine Platzersparnis von 36 %, viel ist das nun leider nicht mehr, gemessen am betriebenen Aufwand.Gedauert hat die ganze Kodierung ungefähr 142 min +/- 3 min. Leider kann ich keine genaueren Angaben machen, weil ich nicht mehr genau weiß, was die Kodierung begonnen wurde.
Im großen und ganzen ist mir der Speicherplatzgewinn bei benötigtem Aufwand und gegebener Qualität zu gering, weswegen ich jetzt auf das Umkodieren verzichten werde und stattdessen erstmal ein paar Sachen löchen werde, die ich IMO doch nicht brauche bzw. archivieren muss.
-
cooky451 schrieb:
Für h264 braucht man eher mehr als die Laufzeit, also 120-200 Minuten pro Film, jedenfalls wenn es halbwegs gut aussehen soll.
Bei D1 (720x576) sollte es locker in Echtzeit oder schneller gehen.
1080p ist was anderes. Wobei auch das auf aktuellen CPUs in Echtzeit geht (QuickSync und co.), aber wie gut die Qualität/Bit dann wirkich ist weiss ich nicht.