Videószerkesztést és kódolást próbáltam végezni. Van egy úgynevezett SD videóm, amelynek állítólag 4:3
képarányban kell lennie. De a 640x480
helyett 720x480
. Érdekes, hogy amikor egy médialejátszóval játszom, akkor azt látom, hogy 640x480
– nem 720x480
!
Mi történik ?! Hogyan lehetséges?
Válasz
525/60 digitalizált SD videó a Rec. A 601 valóban 720 pixel széles, 480 pixel magas, beleértve az oldalakon található néhány kitakarást is. A 625/50 digitális megfelelője 720×576. Mindkét esetben a képarány 4: 3, ez egyszerűen azt jelenti, hogy a képpontok nem négyzetesek. Lásd: https://en.wikipedia.org/wiki/D-1_(Sony)
A helyzet bonyolultabbá tétele érdekében a keretnek csak egy részében van 4 : 3 arány. Úgy gondolom, hogy csak a 704×480 (525/60 esetén) és a 704×576 (625/50 esetén) 4: 3 arányú. Lásd itt a beszélgetést: https://lurkertech.com/lg/video-systems/
Tehát 480 képpont arányban 10/11, Az 576 képpont aránya 59/54. Lásd még itt: https://en.wikipedia.org/wiki/Pixel_aspect_ratio És ne felejtsük el, hogy a 480 és 576 soros formátumok is szélesvásznú (16: 9), ugyanakkor soronként ugyanannyi pixel van! Ráadásul az 59/54-es számokkal nem könnyű dolgozni. Mindez azt eredményezte, hogy az 576 soros formátumnál a képarányt 12: 11-re 4: 3-as képarányra, 16: 11-re 16: 9-re választották.
A négyzet pixelek lettek a normák kezdve a VGA videoadaptertől, úgy gondolom, majd a HD specifikációktól a 720- és 1080-soros videókhoz. Egyébként vannak olyan HD formátumok, amelyek 1440×1080 vagy 960×720 formátumot rögzítenek, ugyanakkor 16: 9 képarányúak, nem négyzet alakú pixelekkel is rendelkeznek. A négyzet alakú képpontok viszonylag friss fejlesztések, és nem szabad automatikusan számítaniuk rá.
Megjegyzések
Válasz
Kétféle dolog van:
- A keretek valós szélessége és magassága (pixelben) – lásd a következő kép zöld részét.
- A megjelenített szélesség és magasság (lejátszás közben) – lásd ugyanazon kép kék részét.
A probléma a régi rossz napok, amikor az eszközök felbontása (a képen lévő pixelek száma) nagyon alacsony volt, de a lejátszáshoz szükséges szélesség és magasság arány 4: 3 volt.
A megoldás ( azok a napok) a nem négyzet alakú pixelek találmánya volt.
Az egyszerűség kedvéért tegyük fel (elméletileg) nagyon alacsony méreteket:
- szükséges: 4 x 3 képpont (azaz e. 12 képpont / képkocka.
- valós (elfogadható áron): 3 x 3 (azaz 9 képpont).
A megoldás nem négyzet alakú képpont volt, a pixel képarány ( PAR ) 4: 3 , mint itt:
Tehát a pixel képaránya ( PAR ) az egyes egyedi pixelek méretaránya:
Minden kék A képünk képpontjainak PAR 4: 3, és minden narancssárgának és minden zöldnek PAR 1: 1.
Most az egész (kék) képünket helyesen jelenítjük meg, ahogy szeretnénk – pl. g. mint 12 cm x 9 cm – tehát a Megjelenítési képarány ( DAR ) 12: 9 , vagy 4: 3.
Ennek ellenére 3 x 3 képpontként mentve – tehát a Tárolási méretarány ( SAR A ) 3 pixel: 3 pixel vagy 1: 1.
Tipp:
- képpont képarány ( PAR ) mikrométer: mikrométer
- megjeleníti a képarányt ( DAR ) centiméter: centiméter
- tárolási oldalarány ( SAR ) pixel: pixel
Következésképpen a kapcsolat ez a 3 érték
DAR = SAR × PAR
A fontos megjegyzés:
Néha PAR (Pixel Aspect Ratio) nevű Minta képarány – , mint az FFmpeg . Végül a rövidítése SAR , ami nagyon zavaró, mert – amint láttuk – ez a a tárolási képarány rövidítése.
A fő probléma:
Manapság minden eszköz pixelaránya 1: 1 (négyzet pixel), és sok médialejátszó, főként kis eszközökhöz (mobiltelefonok, táblagépek), támaszkodik rá, teljesen figyelmen kívül hagyva a DAR értéket, videofolyamok.
Tehát olyan helyzetbe kerülhet, amikor ugyanazt a (minden forrásból készült) videót megfelelően lejátszják az asztali számítógépen vagy a laptopon, de helytelenül (szűkítve) az okostelefonon. Vagy akár a más médialejátszó ugyanazon a számítógépen vagy eszközön.
Példánkban előfordulhat, hogy a keretek helytelenül jelennek meg négyzetként (lásd a fenti kép zöld részét).
A probléma megoldása az FFmpegben:
- átméretezi a problémás videót, majd
- s et a SAR 1-ig, és
- a DAR nagy valószínűséggel a helyes értékkel rendelkezik, de beállíthatja, hogy biztos legyen benne.
A mi (irreális) példánkban használhatja a filtergraph
-vf scale=4:3,setsar=1,setdar=w/h
ahol w
a képkockákkal (csak méretezett) képkockákkal, h
az ő magasságuk. Az FFmpeg automatikusan helyettesíti a megfelelő értékeket.
Az eredmény a fenti kép narancssárga része lesz.
Ön esetében a videód (információiból)
- DAR 4: 3 (640: 480),
- SAR (Tárolási képarány) 720: 480 = 3: 2, és – következésképpen –
- PAR = DAR / SAR = 8: 9. (Az FFmpeg terminológiában ez SAR – Minta képarány).
Tehát annak elkerülése érdekében, hogy a médialejátszók figyelmen kívül hagyják a DAR értéket (és a 720: 480 arányban játsszák le, fontolóra veheti a következőket: konvertálja a következő paranccsal
ffmpeg -i your_input_file -vf -scale=640:480,setsar=1 -c:a copy your_output_file
Nem négyzet alakú képpontokkal rendelkező képek problémái:
Képek esetén a helyzet még rosszabb:
Szinte az összes képnézegető / szerkesztő és internetes böngésző egyszerűen figyelmen kívül hagyja a képeket SAR és DAR , feltéve, hogy mindez képek a világon SAR 1: 1.
A megtisztelő kivétel (érdekes módon és meglepő módon) Microsoft Windows Photo Viewer t, amely az összes képet megjeleníti ctly.
Meggyőződhet róla e. g. a A sav pixelarányaránya alapján – mind a 9 képet helyesen kell megjeleníteni a böngészőben, de – nagy valószínűséggel – nem “t”.
Megjegyzések
- jól leírva. Köszönet! Mindkettő helytálló. Ha az emelkedések száma megnő, frissítjük a legjobb választ.
FFmpeg
vel (hogy lássam, a kettőnek ugyanazok-e a jelenetvágásai). Tehát mivel a lejátszás megegyezik, feltételezzem, hogyffmpeg
, a 640×480 és a 720×480 azonosak ?!