Etusivu arrow Keskustelut
Kotitekoinen testivideo Avisynthillä äänen ja kuvan viiveide

 
Lähetä uusi viesti   Vastaa viestiin    Digivideo Foorumin päävalikko -> Oma rakentelu
Näytä edellinen aihe :: Näytä seuraava aihe  
Kirjoittaja Viesti
TaTa



Liittynyt: 27 Huh 2009
Viestejä: 117

LähetäLähetetty: 28.12.2013 18:10    Viestin aihe: Kotitekoinen testivideo Avisynthillä äänen ja kuvan viiveide Vastaa lainaamalla viestiä

Kotitekoinen testivideo Avisynthillä äänen ja kuvan viiveiden arviointiin

Askartelin Avisynthillä yksikertaisen testivideon äänen ja kuvan viiveiden arviointiin. Testivideossa ruutuun ilmestyy sekunnin välein valkoinen neliö ja samalla kuuluu 40 ms sekunnin testiääni. Testiäänen taajuus on 1 kHz ja huippujen voimakkuus -6 dBfs.

Käytin aluksi Darkpulse Motion Designin testivideoa osoitteesta http://www.darkpulse-motion-design.com/freebies.html#lypsinc . Itseäni häiritsi kyseisessä testivideossa se, että äänimerkki alkaa kuulua jo ennen kuin vihreä pallo syttyy merkiksi palamaan (äänen amplitudin maksimi on ajoitettu kohdalleen ei äänen alku). Lisäksi video on saatavilla vain H.264-pakattuna MOV-kääreessä. Tämän vuoksi tein yksinkertaisemman testivideon, jossa 1 kHz:n ääni alkaa kuulua täsmälleen samaan aikaan, kun valkoinen neliö ilmestyy näkyviin.

Käytän testivideoa analogisen videon kaappauksessa äänen ja kuvan keskinäisten viiveiden arviointiin. Kaapatusta videosta äänen ja kuvan viive-eroja voi analysoida esimerkiksi Virtualdubilla. PAL-videossa kuvien toistoväli on 1/25 eli 40 ms. 40 ms pituinen testiääni osuu tahdistuksen ollessa täysin oikein Virtualdubin Audio displayssä kahden kuvan väliin. 1 kHz:n sinisignaalin jakson pituus (positiivisen huippujen väli) on 1 ms, joten Audio display -näkymää zoomaamalla viive-ero on helppo laskea.

Kuva Virtualdubista http://i.imgur.com/GfzlXQl.png .

Tässä testivideon Avisynth-koodi, jos koodista tai testivideosta sattuisi olemaan jollekin hyötyä. Asenna Avisynth ja liitä koodi notepadilla esimerkiksi PAL-AV-Sync_test.avs-tiedostoon. AVS-tiedoston voi avata useimmilla video-ohjelmilla.

Koodi:


# ---------------------------------------------------------------------------
# Kotitekoinen testivideo äänen ja kuvan välisten viiveiden arviointiin.
# Videossa toistuu sekunnin välein valkoinen neliö keskellä kuvaa. Neliön
# ilmestyessä näkyviin toistetaan 40 ms pitkä 1 kHz:n testiääni. Testiääni
# alkaa samaan aikaan, kun valkoinen neliö ilmestyy ruutuun. Videon
# tarkkuus on 720x576 ja kuvaushde 4:3. Kuvanopeus on 25 kuvaa/s. Stereo-äänen
# näytteistystaajuus on 48 kHz ja näytteistys 16 bittiä.
#
# Kaapatusta videosta äänen ja kuvan viive-eroja voi analysoida esimerkiksi
# Virtualdubilla. Kuvien toistoväli on 1/25 eli 40 ms. 40 ms pituinen testi-
# ääni osuu tahdistuksen ollessa täysin oikein Virtualdubin Audio displayssä
# kahden kuvan väliin. 1 kHz:n sinisignaalin jakson pituus (positiivisen
# huippujen väli) on 1 ms, joten Audio display -näkymää zoomaamalla viive-ero
# on helppo laskea.
# ---------------------------------------------------------------------------

# Ruudulla näytettävä teksti. Rivinvaihto \n.
TEKSTI1 = "PAL 25 kuvaa/s\n\n Testivideo äänen ja kuvan\n tahdistamiseen. Valkoinen\nneliö ilmestyy sekunnin välein\n ja samalla toistuu 40 ms\n pituinen 1 kHz:n sinisignaali,\n jonka voimakkuus on -6 dBfs."
TEKSTI2 = "1  k H z ,  - 6  d B f s ,  4 0  m s"

# Valkoisen ruudun muistien reunuksien paksuus.
BLACK_BORDER = 135

# Testisignaalin kesto. Sekunnin pätkä toistetaan n kertaa.
TOISTOT = 60


#---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

# MUSTA_PATKA on 24 kuvan pituinen musta äänetön video, jonka päälle tulee TEKSTI1.
MUSTA_PATKA=BlankClip(length=24, width=768, height=576, fps=25, audio_rate=48000, channels=2, sample_type="16bit")

# Valkoinen pätkä sisältää valkoisen neliön, jonka päälle tulee TEKSTI2. Pituus on yksi kuva.
VALKOINEN_PATKA=BlankClip(length=1, width=(768-2*BLACK_BORDER), height=(576-2*BLACK_BORDER), fps=25, audio_rate=48000, channels=2, sample_type="16bit", color=$DDDDDD)
VALKOINEN_PATKA=AddBorders(VALKOINEN_PATKA, BLACK_BORDER, BLACK_BORDER, BLACK_BORDER, BLACK_BORDER)

# Korvataan valkoisen pätkän ääni 40 ms pituisella 1000 Hz:n sinisignaalilla, jonka voimakkuus on -6 dBfs.
VALKOINEN_PATKA=AudioDub(VALKOINEN_PATKA, Tone(0.04, 1000, 48000, 2, "sine", 0.5)  )

# Listätään edellä mainittuihin videon pätkiin tekstit.
# Subtitle (clip, string text, int "x", int "y", int "first_frame", int "last_frame", string "font", int "size", int "text_color", int "halo_color", int "lsp")
# Rivinvaihto \n
MUSTA_PATKA_JA_TEKSI=Subtitle(MUSTA_PATKA, TEKSTI1, -1, 180, 0, 24, "Arial", 35, $ffffff, 0, 5, 0, 1)
VALKOINEN_PATKA_JA_TEKSI=Subtitle(VALKOINEN_PATKA, TEKSTI2, -1, -1, 0, 0, "Arial", 30, $000000, 0, 5, 0, 1)

# Yhdistetään musta ja valkoinen pätkä.
YHDISTETTY_PATKA=MUSTA_PATKA_JA_TEKSI+VALKOINEN_PATKA_JA_TEKSI

# Lisätään yhdistettyyn pätkään videon ruutujen numerointi (0 -> 24).
# ShowFrameNumber (clip, bool "scroll", int "offset", int "x", int "y", string "font", float "size", int "text_color", int "halo_color", float "font_width", float "font_angle")
YHDISTETTY_PATKA = ShowFrameNumber (YHDISTETTY_PATKA, scroll=false, offset=0, x=320, y=120, font="Arial", size=50, text_color=$ffff00, halo_color=0)

# Toistetaan YHDISTETTY_PATKA, joka on sekunnin mittainen (25 kuvaa), TOISTOT-muuttujan määrittämiä kertoja peräkkäin.
PITKA_PATKA=loop(YHDISTETTY_PATKA, TOISTOT)

# Muutos DVD:lle sopivaan resoluutioon 720x576.
PITKA_PATKA=LanczosResize(PITKA_PATKA, 720, 576)

# Muunnos 4:2:0-näytteistykseen.
PITKA_PATKA=ConvertToYV12(PITKA_PATKA)

return (PITKA_PATKA)



Video: 720x576, 25 fps, kroman alinäytteistys 4:2:0
Ääni: stereo, 16 bittiä, 48 kHz
Näytä käyttäjän tiedot
Näytä edelliset viestit:   
Lähetä uusi viesti   Vastaa viestiin    Digivideo Foorumin päävalikko -> Oma rakentelu Kaikki ajat ovat GMT + 3 tuntia
Sivu 1 Yht. 1

 
Siirry:  
Et voi kirjoittaa uusia viestejä tässä foorumissa
Et voi vastata viesteihin tässä foorumissa
Et voi muokata viestejäsi tässä foorumissa
Et voi poistaa viestejäsi tässä foorumissa
Et voi äänestää tässä foorumissa


Powered by phpBB © 2001, 2002 phpBB Group
uudet Digivideo.fi etusivu
uudet Digivideo Wiki
   
uudet Foorumin etusivu
uudet Uusimmat viestit
uudet Lukemattomat viestit
Käyttäjäryhmät Käyttäjäryhmät
Ohje Ohje
Haku Haku
Rekisteröidy Rekisteröidy
Käyttäjätiedot Käyttäjätiedot
Kirjaudu sisään tarkistaaksesi yksityiset viestit Kirjaudu sisään tarkistaaksesi yksityiset viestit
Kirjaudu sisään Kirjaudu sisään


Pikahaku foorumista



Osallistu keskusteluun myös irc-kanavalla #digivideo.fi (Ircnet)