Käytän tätä suodatinta rajaamaan:

-filter_complex "[0:v]crop=w=320:h=240[v0c] 

joka toimii kunnolla. Ongelmana on, että joskus en tiedä mikä on panos, jonka aion saada. Se voi olla esimerkiksi 1000x500 tai 500x1000. Joten kun se tapahtuu, se saa vain pienen alueen videon keskiosasta. Ihanteellinen olisi muuttaa syötteen kokoa vastaamaan pienempää kokoa haluttuun tulokseen ja rajata loput. Ongelmana on, että en tiedä mikä ulottuvuus tulee olemaan.

Kuinka voin rakentaa suodattimen ongelman ratkaisemiseksi?

Kommentit

  • Mikä on haluttu tulostuskoko?
  • 320×240, kuten kirjoittamassani komennossa

Vastaa

Käytä

[0:v]scale="if(gt(a,4/3),-1,320)":"if(gt(a,4/3),240,-1)",setsar=1,crop=320:240[v0c] 

X: n ja y: n asteikkosuodatinlausekkeet tarkistavat tulon kuvasuhteen ja jos suurempi kuin 4 : 3, aseta arvo 2. argumentille ja jos ei, kolmannelle argumentille. -1 tarkoittaa, että alkuperäinen kuvasuhde tulisi säilyttää esim. scale=-1:400, joka on sovellettu 600x800 -kankaalle, johtaa 300x400.

Kommentit

  • Jos haluttu lähtöni olisi toinen, toimiiko tämä komento edelleen, korvaamalla vain 320 ja 240?
  • Kyllä. Päivitä myös kuvasuhteen murto-osa, jos se on ' erilainen.
  • Tarvitsenko siis aina vakiomuotoiset kuvasuhteet, kuten 16: 9 tai 4: 3? Enkö voi tehdä satunnaisia päätöslauselmia, kuten 322×239?
  • Toki. Kuvasuhde on tässä haluamasi tulos. Joten jos kohteesi on 234×787, se ' s (a,234/787)
  • Selitetään muokatussa vastauksessa.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *