ffmpeg a automatické aspect ratio?

Václav Ovsík vaclav.ovsik na i.cz
Úterý Červenec 31 08:20:27 CEST 2007


On Mon, Jul 30, 2007 at 07:32:46PM +0200, Jaroslav Lukesh wrote:
> Zdrojem je přehrávač (v autě) s video výstupem, displej má video vstup. 
> Poměr stran upravuje přehrávač, displej upravuje pouze velikost obrazu tak 
> aby se tam obraz celý vešel. Přehrávač umí režim kdy dává do drátu 
> nestandardní video bez prokládání a v rozlišení jaké má zdroj. Když tam 
> pustím 272 řádků, tak je obraz úplně perfektní, jinak je trošku máznutý. 
> Vodorovný rozměr si řídí přehrávač, takže se zobrazí vše jak má.

Hmm, jasne. Proste chcete mit to video v nativnim rozliseni displeje.
No, asi nejjednodussi bude tu sirku si dopocitat sam.
Mam jeden skriptik, kde vytahuju vlastnosti video z vypisu ffmpeg, takze
mozna byste mohl neco takoveho:

    vinfo=$(ffmpeg -i $input 2>&1|grep -io "video:.*")
    ainfo=$(ffmpeg -i $input 2>&1|grep -io "audio:.*")

    size=$(pcregrep -o '\b\d+x\d+\b' <<<"$gvinfo")

Je tam koukam bashismus (<<<) a pcregrep je grep skompilovany s podporou
pcre (v Debianu jako extra balicek). Tedy v size mate treba 720x576.
Takze znate puvodni rozliseni. Takze muzete ho proste prepocitat ve
shodnem pomeru. Mozna lepsi by bylo pouzit aspect ratio. Jak koukam
ffmpeg zrovna tohle nezobrazuje. Tak bud asi lepsi pouzit treba tcprobe
(z transcode nebo neco jineho).

zito na bobek:/video/vob$ tcprobe -i /video/dv-done/2003-12-05-mikulas.dv
[tcprobe] Digital Video (PAL)
[tcprobe] summary for /video/dv-done/2003-12-05-mikulas.dv, (*) = not default, 0 = not detected
import frame size: -g 720x576 [720x576] 
     aspect ratio: 4:3 (*)
       frame rate: -f 25.000 [25.000] frc=3 
      audio track: -a 0 [0] -e 48000,16,2 [48000,16,2] -n 0x1 [0x2000] (*)
                   bitrate=1536 kbps

Takze radky jsou dane - 272 a sirku si dopoctete podle ar,
napr: 272 * 4 / 3 = 362.66666666666666666666

Aha, takze to budete jeste muset vymyslet jak se to ma spravne
zaokrouhlit, kdyz to nevychazi presne.

Druha moznost je, ze se na tohle vykaslete a sirku budete mit napevno.
Kdyz to dokonce ani nevychazi celociselne pro 4:3, tak je to mozna
stejne jedno. Kdyz date horizontalne rozliseni na rozliseni displeje,
tak proste budete jenom trochu plytvat v pripade 4:3 filmu (datovy tok).
-- 
Zito



Další informace o konferenci Linux