4: 3-video heeft een resolutie van 720 x 480

Ik probeerde videos te bewerken en te coderen. Ik heb een zogenaamde SD-video die in de beeldverhouding 4:3 zou moeten hebben. Maar in plaats van 640x480, is het 720x480. Interessant is dat wanneer ik het afspeel met een mediaspeler, wat ik zie is 640x480 – het wordt niet afgespeeld als 720x480!

Wat is er aan de hand ?! Hoe zou het mogelijk zijn?

Answer

525/60 gedigitaliseerde SD-video volgens Rec. 601 is inderdaad 720 pixels breed, 480 pixels hoog, inclusief wat blanco aan de zijkanten. Het digitale equivalent van 625/50 is 720×576. In beide gevallen is de beeldverhouding van het frame 4: 3, dit betekent simpelweg dat de pixels niet vierkant zijn. Zie https://en.wikipedia.org/wiki/D-1_(Sony)

Om de zaken ingewikkelder te maken, heeft slechts een subset van het frame 4 : 3 verhoudingen. Ik geloof dat alleen de 704×480 (voor 525/60) en 704×576 (voor 625/50) 4: 3 verhoudingen heeft. Zie discussie hier: https://lurkertech.com/lg/video-systems/

480 pixels zijn dus 10/11 in verhouding, 576 pixels zijn 59/54 in verhouding. Zie ook hier: https://en.wikipedia.org/wiki/Pixel_aspect_ratio En vergeet niet dat zowel 480-regels als 576-regels formaten ook breedbeeld (16: 9) maar met hetzelfde aantal pixels per regel! Bovendien zijn nummers als 59/54 niet gemakkelijk om mee te werken. Dit alles zorgde ervoor dat voor het formaat van 576 lijnen de pixel-aspectverhouding werd gekozen als 12/11 voor een 4: 3-schermbeeldverhouding en als 16/11 voor 16: 9.

Vierkante pixels werden de norm beginnend bij een VGA-videoadapter, geloof ik, en vervolgens bij HD-specificaties voor 720-lijnen en 1080-lijnen video. Trouwens, er zijn enkele HD-formaten die 1440×1080 of 960×720 opnemen, maar met een beeldverhouding van 16: 9 en ook niet-vierkante pixels. Vierkante pixels zijn relatief recent ontwikkeld en hoeven niet automatisch te worden verwacht.

Opmerkingen

  • Bedankt voor de beschrijving. Ik ' m speel met FFmpeg voor een aantal experimenten (om te zien of de twee dezelfde scènes hebben). Dus aangezien het afspelen hetzelfde is, moet ik aannemen dat van ffmpeg de 640×480 en 720×480 identiek zijn ?!
  • ffmpeg, (niet ffplay) schaalt videos nooit opnieuw naar de beeldverhouding van het scherm, dus filters en encoders werken alleen op de rastergegevens, die in jouw geval 720 x 480 zijn.
  • Bij niet-vierkante pixels moet je de video waarschijnlijk opnieuw samplen, de ergste soort transcodering bekend bij de mensheid, om het te repareren.

Antwoord

Er zijn 2 verschillende dingen:

  • De echte breedte en hoogte van frames (in pixels) – zie het groene deel van de volgende afbeelding.
  • De weergegeven breedte en hoogte (tijdens het afspelen) – zie het blauwe deel van dezelfde afbeelding.

Het probleem deed zich voor in oude slechte dagen, toen de resolutie van apparaten (aantal pixels in de afbeelding) erg laag was, maar de vereiste verhouding tussen breedte en hoogte voor het afspelen 4: 3 was.

De oplossing (in die dagen) was de uitvinding van niet-vierkante pixels.


Laten we voor de eenvoud veronderstellen (theoretisch) zeer lage afmetingen:

  • vereist: 4 x 3 pixels (i. e. 12 pixels) per frame.
  • echt mogelijk (voor de acceptabele prijs): 3 x 3 (dwz 9 pixels).

De oplossing was niet-vierkante pixels met de pixelverhouding ( PAR ) 4: 3 , zoals hier:

voer hier de afbeeldingsbeschrijving in

Dus de pixelverhouding ( PAR ) is de verhouding tussen de formaten van elke individuele pixel:

Elke blauwe pixels in onze afbeelding hebben PAR 4: 3, en elke oranje en elke groene heeft PAR 1: 1.

Nu wordt onze hele (blauwe) afbeelding correct weergegeven, zoals we wilden – e. g. als 12 cm x 9 cm – dus de Display Aspect Ratio ( DAR ) is 12: 9 , of 4: 3.

Desondanks wordt het opgeslagen als 3 x 3 pixels – dus de Storage Aspect Ratio ( SAR ) is 3 pixels: 3 pixels, of 1: 1.

Tip:

  • pixelverhouding ( PAR ) is micrometers: micrometers
  • beeldschermbeeldverhouding ( DAR ) is centimeters: centimeters
  • beeldverhouding voor opslag ( SAR ) is pixels: pixels

Bijgevolg is de relatie tussen deze 3 waarden zijn

                          DAR = SAR × PAR

De belangrijke opmerking:

Soms is PAR (Pixel Aspect Ratio) genaamd Sample Aspect Ratio zoals in FFmpeg . Ongetwijfeld is de afkorting ervoor SAR , wat erg verwarrend is, omdat het – zoals we zagen – ook de afkorting voor Storage Aspect ratio.


Het grootste probleem:

Tegenwoordig hebben alle apparaten een pixelverhouding van 1: 1 (vierkante pixels), en veel mediaspelers, voornamelijk voor kleine apparaten (mobiele telefoons, tablets), vertrouwen erop en negeren volledig de DAR -waarde die is opgeslagen in videostreams.

U kunt dus de situatie tegenkomen dat dezelfde video (gemaakt van alle bronnen) correct wordt afgespeeld op uw desktop- of laptopcomputer, maar onjuist (verkleind) op uw smartphone. Of zelfs op de andere mediaspeler op dezelfde computer of hetzelfde apparaat.

In ons voorbeeld worden de frames mogelijk ten onrechte weergegeven als een vierkant (zie het groene deel van de afbeelding hierboven).


De oplossing van dit probleem in FFmpeg:

  • verklein de problematische video en
  • s et de SAR ervan naar 1, en
  • de DAR heeft zeer waarschijnlijk de juiste waarde, maar u kunt deze voor de zekerheid instellen.

In ons (onwerkelijke) voorbeeld kan de filtergrafiek

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

gebruiken waarbij w de met van (net geschaalde) frames in pixels is, h is hun lengte. FFmpeg vervangt automatisch de juiste waarden.

Het resultaat is het oranje deel van de bovenstaande afbeelding.


In jouw geval heeft je video (volgens jouw info)

  • DAR 4: 3 (640: 480),
  • SAR (Storage Aspect Ratio) 720: 480 = 3: 2, en – bijgevolg –
  • PAR = DAR / SAR = 8: 9. (In de FFmpeg-terminologie is het SAR – Sample Aspect Ratio).

Dus om problemen te voorkomen met mediaspelers die de DAR -waarde negeren (en deze af te spelen in de verhouding 720: 480, kunt u overwegen om converteer het met het commando

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

Problemen met afbeeldingen met niet-vierkante pixels:

Met afbeeldingen is de situatie nog veel erger:

Bijna alle fotoviewers / editors en internetbrowsers negeren eenvoudig afbeeldingen SAR en DAR , ervan uitgaande dat alle fotos over de hele wereld hebben SAR 1: 1.

De eervolle uitzondering is (interessant en verrassend genoeg) Microsoft Windows Photo Viewer, die alle afbeeldingen correct weergeeft ctly.

Misschien raak je ervan overtuigd e. g. door de The Pixel Aspect Ratio Acid Test – alle 9 afbeeldingen daar zouden correct in uw browser moeten worden weergegeven, maar – zeer waarschijnlijk – zijn ze niet “t.

Reacties

  • goed beschreven. Bedankt! Beide zijn correct. Zodra het aantal ups hoger wordt, wordt het beste antwoord bijgewerkt.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *