So erhalten Sie die höchstmögliche Qualität aus einer MP4-Datei

Ich habe kürzlich die Bearbeitung für ein Projekt übernommen und mir wurden die Rohdateien nicht zur Verfügung gestellt. Alles, was ich bekommen habe, war die teilweise fertige MP4-Datei. Ich habe Final Cut Pro 7 verwendet, um die Projektbearbeitungen abzuschließen. Als ich die Datei exportiert habe, habe ich mit Quicktime Conversion exportiert, um eine .mov-Datei zu erstellen.

Das Problem ist, dass diese Datei Broadcast-Qualität haben muss und die Qualitätskontrolle einfach fehlgeschlagen ist, weil Teile davon pixelig sind.

Ich frage mich, gibt es eine Möglichkeit, die Datei zu exportieren - die für mich perfekt aussieht -, damit sie nicht pixelig ist und die QC besteht?

Antworten (1)

Wenn die Pixelierung nicht in den Quellen enthalten war, die Sie hatten, wurde sie wahrscheinlich durch den Video-Encoder eingeführt, den Sie zum Exportieren verwendet haben. (Vermutlich Apples h.264-Encoder, der eine .mov mit einem h.264-Videostream erstellt, im Gegensatz zu einem der vielen anderen Videocodecs, die der mov-Container enthalten kann.)

Bei der Videocodierung wird immer zwischen CPU-Zeit, Bitrate und Qualität abgewogen. Wenn Sie mehr CPU-Zeit verwenden, können Sie bei gleicher Dateigröße eine bessere Qualität erzielen. Unterschiedliche Encoder (x264 vs. mainconcept vs. apple vs. IDK was sonst) haben schlechtere oder bessere erreichbare Kompromisse. x264 ist der beste H.264-Encoder für so ziemlich alles, insb. wenn Ihnen die endgültige Qualität pro Dateigröße am wichtigsten ist. Es ist kostenlos und Open Source, also gibt es keinen Grund, es nicht zu verwenden.

Suchen Sie nach einem Schieberegler, um die CPU-Auslastung und/oder Bitrate zu erhöhen, bis die resultierende Codierung qualitativ hochwertig genug ist. Ich werde nicht weiter ins Detail gehen, sondern einfach nach Anleitungen zur Videocodierung googeln, um mehr zu erfahren.

bearbeiten:Wie stib betont, könnten Sie sich durchaus in einer Situation befinden, in der Ihre Ausgabedatei vor der Übertragung transkodiert wird. In diesem Fall sollten Sie die Bitrate einfach so hoch wie möglich erhöhen, um den Generierungsverlust zu minimieren. Prores hat für diesen Zweck jedoch keinen Vorteil gegenüber h.264. Ihre Datei wird der Reihe nach einmal dekodiert, bei voller Auflösung. Prores ist nur Intra und kann bei reduzierter Auflösung schneller dekodieren, gibt aber die Qualität pro Bitrate auf, um diese Funktionen zu nutzen. h.264 und prores unterstützen beide Bittiefen von mehr als 8 Bit pro Komponente (abhängig von der Encoder/Decoder-Unterstützung), was relevant sein kann, wenn der Fernsehsender, der es sendet, während der Transcodierung mit den Farben herumspielen möchte. Wenn dies nicht der Fall ist, ist der kleine Komprimierungsvorteil von 10-Bit-h.264 von geringem Wert, wenn man bedenkt, wie viel langsamer x264 ist, wenn mit mehr als 8 Bit codiert wird.

prores ist (leicht) verlustbehaftet, aber soweit ich weiß, wird h.264 bei der gleichen sehr hohen Bitrate noch weniger verlustbehaftet sein. Sie können sogar x264 verwenden, um verlustfreies h.264 zu produzieren, wenn die Personen, an die Sie es senden, es entschlüsseln können.

Wenn Sie es an Leute senden, die etwas tun und dies als Prores selbst speichern möchten, kann es sinnvoll sein, Prores selbst zu verwenden. Ich glaube, ich habe gelesen, dass Prores darauf ausgelegt ist, den Qualitätsverlust für mehrere Transcodierungsgenerationen zu stoppen.

Wenn Sie die Ausgabedatei dauerhaft archivieren möchten, kann es dennoch nützlich sein, etwas mehr CPU-Zeit aufzuwenden (und x264 zu verwenden), um eine gute Qualität pro Bitrate zu erhalten. Aber wenn Sie stattdessen das FCP-Projekt und die Quellen archivieren, spielt das keine Rolle.

Ende der Bearbeitung

Wenn Sie x264 nicht für Final Cut Pro einrichten oder verlustfrei exportieren und in x264 einspeisen möchten, gibt es wahrscheinlich ähnliche Steuerelemente für den h.264-Encoder, der mit FCP geliefert wird. Ich verwende FCP nicht, aber das ist wirklich eine Frage zur Qualität der Videokodierung, also antworte ich trotzdem. Eine Antwort eines FCP-Benutzers wäre wahrscheinlich noch nützlich.

Übrigens, ein Fall, in dem x264 nicht die beste Wahl ist, ist das Codieren eines Films für Ihr mobiles Gerät oder etwas, wo Sie ihn nur einmal ansehen werden, und große Dateigrößen spielen keine Rolle. Dann kann ein GPU-Encoder wie Intel QuickSync genügend Bitrate auf das Video werfen, damit es auf einem Tablet oder Telefon gut genug aussieht, aber kleiner als die DVD- oder Blu-ray-Quelle ist.

Wenn Sie "einmal codieren -> viele ansehen", wie bei der Übertragung, ist es sinnvoll, so viel CPU-Zeit wie möglich zu verwenden, um die beste Qualität für Ihre Zieldateigröße zu erhalten (2-Pass-Modus). Oder um die kleinste Dateigröße für Ihre Zielqualität zu erhalten (CRF-Modus).

Wenn er es zur Ausstrahlung schickt (und hier nehme ich eine terrestrische DVB-Ausstrahlung an, wie in "im Fernsehen"), wird es wahrscheinlich transkodiert, bevor der Endbenutzer es trotzdem sieht. Es ist also nicht wirklich eine einmalige Codierung → viele Situationen beobachten. Finden Sie besser heraus, welche Codecs / Formate vom Sender akzeptiert werden, und führen Sie die Transcodierung in höchster Qualität durch, die passt. Zum Beispiel akzeptieren die Fernsehsender hier in Australien ProRes (HQ)-codierte Quicktime-Mov-Medien, was großartig ist, weil es kein Rätselraten über Bitraten oder h.264-Einstellungen gibt, und es ist ein verdammt guter Codec.
Ich dachte, Danielle sei vielleicht bei einem Fernsehsender und mache Sendekodierungen, aber deine Interpretation der Frage macht mehr Sinn. Aktualisiert.
Ich habe wahrscheinlich einen schlechteren Eindruck von Prores als Sie, da ich bisher nur die langsame Implementierung in ffmpeg gesehen habe, nicht die von Apple. Ich verstehe, dass es für viele Dinge aufgrund der Softwareunterstützung in kommerziellen Dingen schnell und bequem ist. Ich wäre gespannt, wie sich x264 in der Qualität pro Bitrate entwickelt hat, mit Einstellungen, die es so schnell wie Prores codieren lassen. So wie ich es verstehe, glänzt Prores nur wirklich als Codec für Scratch-Dateien, die Sie in der Lage sein möchten, zu schrubben / bildgenau zu suchen / schnell zu dekodieren und bei niedriger Auflösung zu dekodieren, und um einen Generationsverlust zu vermeiden, wenn ich mich erinnere diesen Teil richtig.
Nun, der große Vorteil, den Prores (und dnxHD und sogar v210) gegenüber h.264 für das Mastering hat, ist, dass es 10-Bit 4:2:2 ist, anstatt 8-Bit 4:2:0 (ich weiß, dass Sie höhere Bit- Raten und niedrigeres Subsampling, wenn Sie die neueren Funktionen von x264 verwenden, aber viel Glück dabei, einen Fernsehsender dazu zu bringen, die Dateien zu erkennen). Und das ist ein weiterer Vorteil: Da keine Einstellungen geändert werden müssen, müssen Sie sich keine Gedanken darüber machen, ob Ihre Einstellungen für ChromaQPOffset, WeightedBPrediction oder VBVInitialBuffer (usw.) kompatibel sind. Wenn Sie sich die Bandbreite und die Verarbeitungszeit leisten können, spart dies eine Menge Kopfschmerzen.
Verwenden die Leute wirklich immer noch h.264-Decoder, die nicht alle High Profile verarbeiten können? (weightb ist die einzige Option, die Sie erwähnt haben und die Decoderunterstützung erfordert, aber ich weiß, was Sie meinen.) Ich gebe Ihnen zu, dass es unpraktisch ist, 10-Bit-x264 einzurichten und Decoderunterstützung für alles andere als 8-Bit 4:2 :0 ist begrenzt. Wenn Sie dies jedoch tun, setzen Sie einfach x264 preset=medium crf=14 und berühren Sie nichts anderes. Sie erhalten eine h.264 High-Profile-Codierung, die jeder konforme Decoder verarbeiten kann. h.264 High Profile hat sich seit einem Jahrzehnt nicht verändert.
Ausgestrahlte TV-Streams gehen ausnahmslos als 8bit 4:2:0 h.264 aus, richtig? Gibt es einen Grund, warum Sie mit einer höheren Bittiefe oder Chroma-Rez (z. B. 4:2:2) codieren sollten? (Ich frage, weil ich es nicht weiß, da ich nicht in professionellen Videos arbeite. Ich spiele nur mit ffmpeg für meinen eigenen Gebrauch herum und finde die Komprimierung interessant. :) Wäre das, einen Master zu erstellen, den Sie verwenden könnten in die Zukunft für einen höherwertigen Zweck als die HDTV-Übertragung?
Wo ich lebe, multiplexen die Fernsehsender mehrere Kanäle auf ein Signal, mit unterschiedlichen Datenraten und Auflösungen. Sie werden also für jeden Stream neu kodiert. Ich würde vermuten, dass die Bilder durch einen Hardware-Encoder gehen, also würde alles dekodiert und dann trotzdem neu kodiert werden. Meine Meinung ist, dass es besser ist, ihnen einen qualitativ hochwertigeren Master zum erneuten Kodieren zu geben, als etwas, das bereits viel verloren hat.
Ich bin auf Beiträge in den Archiven der ffmpeg-Mailingliste von einem Mann bei einem Fernsehsender gestoßen (CTV.ca, glaube ich, das ist ein großes Netzwerk mit digitalen Sendeantennen in vielen Städten sowie Kabel), in dem er sagt, er verwende ffmpeg / x264, um Dateien für die endgültige Übertragung zu codieren.
Aber ich stimme voll und ganz zu, es sei denn, die Leute, an die Sie es senden, fordern, dass Sie eine Codierung mit einer Bitrate vornehmen, die niedrig genug für die endgültige Verwendung ist, oder Xcoding vermeiden können, wenn Sie eine erstellen, und dann VIEL Bitrate verwenden, weit darüber hinaus visuell transparent. (Selbst unsichtbare Klingelartefakte sehen für den nächsten Encoder in der Kette wie ein Detail aus, sodass er Bits für die Erhaltung von Artefakten aufwendet.) Wenn Sie diesen Master jedoch archivieren, hat die Größe eine gewisse Relevanz, sodass sich h.264 wahrscheinlich lohnt es. (Unter der Annahme, dass Decoderkompatibilität und ähnliche Faktoren das Gleichgewicht nicht zu Prores oder dnxhd kippen)