4:3-Videos haben eine Auflösung von 720 x 480

Ich habe versucht, ein paar Videos zu bearbeiten und zu codieren. Ich habe ein sogenanntes SD-Video, das angeblich im 4:3Seitenverhältnis sein soll. Aber statt 640x480, ist es 720x480. Interessanterweise sehe ich, wenn ich es mit einem Mediaplayer abspiele, 640x480- es wird nicht so abgespielt 720x480!

Was ist los?! Wie könnte es möglich sein?

Antworten (2)

Es gibt 2 verschiedene Dinge:

  • Die tatsächliche Breite und Höhe der Frames (in Pixel) – siehe grüner Teil des folgenden Bildes.
  • Die angezeigte Breite und Höhe (während der Wiedergabe) – siehe den blauen Teil desselben Bildes.

Das Problem trat in alten schlechten Zeiten auf, als die Auflösung der Geräte (Anzahl der Pixel im Bild) sehr niedrig war, das erforderliche Verhältnis von Breite zu Höhe für die Wiedergabe jedoch 4:3 betrug.

Die Lösung (damals) war die Erfindung von nicht-quadratischen Pixeln.


Nehmen wir der Einfachheit halber (theoretisch) sehr geringe Abmessungen an:

  • benötigt: 4×3 Pixel (also 12 Pixel) pro Frame.
  • real möglich (für den akzeptablen Preis): 3×3 (also 9 Pixel).

Die Lösung waren nicht-quadratische Pixel mit dem Pixel-Seitenverhältnis ( PAR ) 4:3 , wie hier:

Geben Sie hier die Bildbeschreibung ein

Das Pixel-Seitenverhältnis ( PAR ) ist also das Größenverhältnis jedes einzelnen Pixels:

Jedes blaue Pixel in unserem Bild hat PAR 4:3, und jedes orange und jedes grüne hat PAR 1:1.

Jetzt wird unser gesamtes (blaues) Bild korrekt angezeigt, wie wir es wollten – zB als 12 cm x 9 cm – also sein Display Aspect Ratio ( DAR ) ist 12:9, oder 4:3.

Trotzdem wird es als 3 × 3 Pixel gespeichert – das Speicherseitenverhältnis ( SAR ) beträgt also 3 Pixel : 3 Pixel oder 1:1.

Hinweis:

  • Pixel-Seitenverhältnis ( PAR ) ist Mikrometer : Mikrometer
  • Display-Seitenverhältnis ( DAR ) ist Zentimeter : Zentimeter
  • Speicherseitenverhältnis ( SAR ) ist Pixel : Pixel

Folglich ist das Verhältnis zwischen diesen 3 Werten

              DAR = SAR × PAR

Der wichtige Hinweis:

Manchmal wird PAR (Pixel Aspect Ratio) als Sample Aspect Ratio bezeichnet – wie in FFmpeg *. Leider ist die Abkürzung dafür dann SAR , was sehr verwirrend ist, weil es – wie wir gesehen haben – auch die Abkürzung für Storage Aspect Ratio ist.


Das Hauptproblem:

Heutzutage haben alle Geräte ein Pixelseitenverhältnis von 1:1 (quadratische Pixel), und viele Mediaplayer, hauptsächlich für kleine Geräte (Handys, Tablets), verlassen sich darauf und ignorieren den in Videostreams gespeicherten DAR-Wert vollständig .

Daher kann es vorkommen, dass dasselbe Video (aus allen Quellen erstellt) auf Ihrem Desktop- oder Laptop-Computer korrekt wiedergegeben wird, auf Ihrem Smartphone jedoch falsch (eingeschränkt). Oder sogar auf dem anderen Mediaplayer auf demselben Computer oder Gerät.

In unserem Beispiel werden die Rahmen möglicherweise fälschlicherweise als Quadrat angezeigt (siehe grüner Teil des Bildes oben).


Die Lösung dieses Problems in FFmpeg:

  • Ändern Sie dann die Größe des problematischen Videos
  • setze den SAR davon auf 1, und
  • der DAR hat sehr wahrscheinlich den richtigen Wert, aber Sie können ihn sicherheitshalber einstellen.

In unserem (unwirklichen) Beispiel können Sie den Filtergraph verwenden

-vf scale=4:3,setsar=1,setdar=w/h

wo wist die Breite von (nur skalierten) Rahmen in Pixeln, hist ihre Höhe. FFmpeg ersetzt die entsprechenden Werte automatisch.

Das Ergebnis ist der orangefarbene Teil des obigen Bildes.


In Ihrem Fall hat Ihr Video (aus Ihren Informationen)

  • DAR 4:3 (640:480),
  • SAR (Storage Aspect Ratio) 720:480 = 3:2 und – folglich –
  • PAR = DAR / SAR = 8:9. (In der FFmpeg-Terminologie ist es **SAR – Sample Aspect Ratio).

Um Probleme mit Mediaplayern zu vermeiden, die den DAR- Wert ignorieren (und ihn im Verhältnis 720:480 wiedergeben), können Sie erwägen, ihn mit dem Befehl zu konvertieren

ffmpeg -i your_input_file -vf -scale=640:480,setsar=1 -c:a copy your_output_file

Probleme mit Bildern mit nicht quadratischen Pixeln:

Bei Bildern ist die Situation noch viel schlimmer:

Fast alle Bildbetrachter/-editoren und Internetbrowser ignorieren einfach die SAR- und DAR- Bilder von Bildern , vorausgesetzt, dass alle Bilder auf der ganzen Welt 1:1 SAR haben .

Die ehrenvolle Ausnahme ist (interessant und überraschenderweise) Microsoft Windows Photo Viewer, der alle Bilder korrekt anzeigt.

Davon können Sie sich zB durch den The Pixel Aspect Ratio Acid Test überzeugen - alle 9 Bilder dort sollten in Ihrem Browser korrekt angezeigt werden, sind es aber – sehr wahrscheinlich – nicht.

gut beschrieben. Danke! Beide sind richtig. Sobald die Anzahl der Ups höher wird, wird die beste Antwort aktualisiert.

525/60 digitalisiertes SD-Video gemäß Rec. 601 ist tatsächlich 720 Pixel breit, 480 Pixel hoch, einschließlich einiger Ausblendungen an den Seiten. Das digitale Äquivalent von 625/50 ist 720 x 576. In beiden Fällen beträgt das Frame-Seitenverhältnis 4:3, was einfach bedeutet, dass die Pixel nicht quadratisch sind. Siehe https://en.wikipedia.org/wiki/D-1_(Sony)

Um die Sache noch komplizierter zu machen, hat nur eine Teilmenge des Rahmens 4:3-Proportionen. Ich glaube, nur die 704x480 (für 525/60) und 704x576 (für 625/50) hat 4:3 Proportionen. Siehe Diskussion hier: https://lurkertech.com/lg/video-systems/

480 Pixel haben also ein Verhältnis von 10/11, 576 Pixel ein Verhältnis von 59/54. Siehe auch hier: https://en.wikipedia.org/wiki/Pixel_aspect_ratio Und vergessen Sie nicht, dass sowohl 480-Zeilen- als auch 576-Zeilen-Formate auch im Breitbildformat (16:9) sein können, aber die gleiche Anzahl von Pixeln pro Zeile haben ! Außerdem ist es nicht einfach, mit Zahlen wie 59/54 zu arbeiten. All dies führte dazu, dass für das 576-Zeilen-Format das Pixelseitenverhältnis als 12/11 für das 4:3-Bildschirmseitenverhältnis und als 16/11 für 16:9 gewählt wurde.

Quadratische Pixel wurden zur Norm, beginnend mit dem VGA-Videoadapter, glaube ich, und dann mit den HD-Spezifikationen für 720-Zeilen- und 1080-Zeilen-Video. Übrigens gibt es einige HD-Formate, die 1440 x 1080 oder 960 x 720 aufzeichnen, aber mit einem Bildseitenverhältnis von 16:9 auch nicht quadratische Pixel haben. Quadratische Pixel sind eine relativ neue Entwicklung und sollten nicht automatisch erwartet werden.

Danke für die Beschreibung. Ich spiele mit FFmpegeinigen Experimenten herum (um zu sehen, ob die beiden Szenen die gleichen Schnittlängen haben). Da also die Wiedergabe dieselbe ist, sollte ich davon ausgehen ffmpeg, dass 640x480 und 720x480 identisch sind?!
ffmpeg (nicht ffplay) skaliert Videos nie auf das Seitenverhältnis der Anzeige, sodass Filter und Encoder nur mit den Rasterdaten arbeiten, die in Ihrem Fall 720 x 480 sind.
Bei nicht quadratischen Pixeln müssten Sie das Video wahrscheinlich erneut sampeln, die schlimmste Art der Transcodierung, die der Menschheit bekannt ist, um das Problem zu beheben.