Luento ruutukaappausvideoksi

Vuoden 2005 syksyn aikana kehitettiin luentotaltiointien tekemistä Ihminen ja tietojärjestelmä (ITKP103) sekä Tietoverkot (ITKP104), Tietokone ja tietoverkot työvälineenä (ITKP101) ja WWW-julkaiseminen (ITKY202) -kursseilla. Kehittäminen tapahtui erityisesti ITKP103-kurssiin liittyen tarkoituksena tuottaa kurssista verkko-opiskelupaketti, joka sisältäisi kurssin luennot videomuodossa sekä luennoijien käyttämän materiaalin PowerPoint- tai PDF-tiedostomuotoa esteettömämmässä muodossa.

Projektin lopputuloksena on rakennettu helppokäyttöinen työkalu ruutukaappausvideotaltioinnin tekemiseksi ja työkalu PowerPoint-esitysten helppoa esteetöntä WWW-julkaisua varten. Ruutukaappausohjelma onnistui hyvin. Muutama ongelma vielä odottaa ratkaisuaan/viimeistelyä, mutta ongelmat eivät ole niin pahoja, ettäkö estäisivät järjestelmän laajempaa käyttöönottoa.

Ruutukaappausvideon tekeminen omasta opetuksesta ei ole jatkossa kiinni mistään muusta kuin opettajan haluamisesta. Taitojen puutetta tai aikaa ei voi pitää esteenä.

Päätarkoituksena oli taltioida kurssien luennot ruutukaappausvideoina yhdessä luennoijan äänen kanssa, jotta opiskelijat voisivat helposti kerrata luennoilla käsiteltyjä asioita. Taltioiminen tapahtui Microsoftin Windows Media Encoder -työkalun avulla. Lisäksi luennoijan ääni tallennettiin varmuuden vuoksi myös minidiscille.

Taltiointitekniikka oli jo entuudestaan tuttu aiemmilta kursseilta, mutta nyt pyrittiin tekemään taltioinnista mahdollisimman mutkatonta. Ts. luennoijan ei tarvitsisi kuin tuplanapauttaa oikeaa kuvaketta, niin hänen luentonsa tallentuisi videotiedostoksi.

Eniten aikaa kului ITKP103-kurssin luennoijien teknisenä apuna toimiessa, taltiointiohjelman tekemisessä sekä ohjelmien ja kodekkien etsimisessä ja testaamisessa sekä videomateriaalin muuntamisessa eri muotoihin.

Tähän mennessä kursseille tuotetut videot ja äänitiedostot löytyvät osoitteista:

Luentosalit

Luennon taltiointi asettaa tiettyjä vaatimuksia luentosalin tekniikalle. Salista on löydyttävä mikrofoni, joka on oltava kytkettynä luennoijan esityksessään käyttämään tietokoneeseen. Agoran luentosaleista ainakin Auditorio 1 ja Auditorio 3 ovat vaaditulla tavalla kytkettyjä. Taltioinnin pitäisi onnistua myös Auditorio 2:ssa, mutta sitä ei ole testattu.

Auditorio 1:stä löytyy useampia mikrofoneja, mutta tietokoneeseen on kytketty vain uudemmista LCD-näytöllä varustetuista mikrofoneista numero 1. Jos luennoija erehtyy käyttämään jotain muuta mikrofonia, ei luennoijan ääni tallennu koneella olevalle videolle. Auditorio 3:ssa voi käyttää kumpaa tahansa mikrofonia.

Luentosalien teknisten ongelmien takia luennoijan äänen taltioimisessa oli suuria vaikeuksia. Alkusyksystä Auditorio 1:ssä äänen taltiointi ei meinannut onnistua ollenkaan ennen uusien mikrofonien käyttöönottoa. Vanhojen mikrofonien kytkentä tietokoneelle kulki liian moneen laitteen kautta ja taltioitu ääni oli täynnä häiriöitä. Vanhempien mikrofonien akut loppuivat väistämättä kesken luennon, eikä luennoija yleensä itse huomannut tätä ja hyvin harvoin kuuntelijat huomauttivat asiasta. Uudemmissa mikrofoneissa on näyttö, joka kertoo jäljelläolevan käyttöajan, joten ennen luennon aloittamista luennoija osaa tarvittaessa vaihtaa mikrofoniin täydet akut. Uusilla mikrofoneilla päästiin eroon myös häiriöistä. Muutaman kerran tuotti ongelmia uusien mikrofonien kytkentäkaapelin puuttuminen mikrofonin vastaanottimen ja av-räkin väliltä. Kaapelin paikoilleen teippaamisen jälkeen sitä ei ole enää irroteltu.

Äänitysongelmiin osattiin etukäteen varautua ja luennoijien ääni tallennettiin aina myös minidiscille. Joihinkin luentovideoihin ääni jouduttiinkin ottamaan minidisciltä. Äänen lisääminen jälkikäteen oli hankalaa ja vaivalloista.

Agoran luentosalien tietokoneissa ilmeni luentotaltiointien aikana erikoisia vikoja. Kesken luennoijan esityksen koneet saattoivat heittää näytölle tekstin "PowerSave" ja käynnistyä uudelleen. Ongelman lähteeksi epäiltiin ylikuumenevaa prosessoria. Salien uudet tietokoneet on asennettu vanhoihin koteloihin, joissa on puutteellinen ilmastointi ja jäähdytys. Luentotaltiointi rasittaa prosessoria joka myös kuumenee ja saattoi olla, että liian herkäksi säädetyt asetukset saivat koneen uudelleenkäynnistymään prosessorin saavutettua tietyn lämpötilan. Ongelman syytä ei ole kuitenkaan vielä pystytty varmistamaan.

Taltiointiohjelma

Luentotaltiointien tekemiseen suoraan Windows Media Encoderilla löytyy ohje. Taltioinnin helpottamiseksi kehitettiin oma ohjelma, joka käytti suoraan Windows Media Encoderin ohjelmointirajapintaa. Pohjana on käytetty Windows Media Encoderin mukana tullutta WMCmd.vbs-skriptiä, jonka sisältöä jouduttiin hieman muuttelemaan, mutta pääasiassa valmista skriptiä ohjataan omalla vbscript-ohjelmalla. Kirjoitushetkellä on vielä tekeillä täysin itsenäinen oma vbscript-ohjelma, jolla päästäisiin eroon WMCmd.vbs-skriptistä, jonka oikeudet kuuluvat Microsoftille.

Taltiointiohjelma muuttaa automaattisesti koneen näyttötilaksi 800x600-resoluution ja tiputtaa näyttötilan värit 16-bittisiksi. Tällä varmistetaan, että taltioidun videon viemä levytila pysyy kohtuullisena, tietokone jaksaa varmasti tehdä taltiointia ja myös videon katsottavuus pysyy hyvänä useimmissa koneissa. Mitä suurempiresoluutioista näyttötilaa yritetään tallentaa sitä suuremmaksi kasvaa videotiedoston koko. Mitään erityistä hyötyä ei suuremmasta resoluutiosta saada, vaan päinvastoin korkearesoluutioisen videon katsominen pienellä näytöllä on hankalampaa ja vaatii usein videon koon skaalaamista pienemmäksi. Skaalattu ruutukaappausvideokuva ei näytä alkuunkaan yhtä hyvältä kuin skaalaamaton. Tavallista videokuvaa on helpompi skaalata laadukkaasti kuin suuria laakeita pintoja ja teräviä kulmia sisältäviä ruutukaappausvideoita. Suurempi resoluutio vaatii myös kaappausta tekevältä koneelta enemmän tehoa ja hidastaa samalla muita koneella tehtäviä toimintoja. Useimmissa koneissa ruutukaappaus aiheuttaa ongelmia mm. tuplanapautuksen kanssa. Taltioinnin ollessa käynnissä kone ei enää ehdi prosessoida tuplanapautuksia.

Resoluution muuttamisen jälkeen ohjelma aloittaa ruutukaappauksen. Tallentaminen tehdään automaattisesti c:\mytemp\-kansioon nimelle, joka muodostetään koneeseen kirjautuneen käyttäjän tunnuksesta, päivämäärästä ja kellonajasta. TODO: Tehdä tallennus järjestelmän %TEMP%-kansioon jos c:\mytemp\-kansiota ei ole. Tallentamista tehdään kahden tunnin ajan tai kunnes luennoija kirjoittaa komentoikkunaan STOP.

Ensimmäisissä tallennusohjelman versioissa lopetettiin tallentaminen CTRL-C-näppäinyhdistelmällä. Tästä aiheutui videotiedoston viimeistelyn puuttuminen mikä taas teki videon kelaamisen mahdottomaksi. Ts. jos halusi katsoa luennon viimeiset viisi minuuttia joutui katsomaan koko luennon alusta alkaen. Ongelmaa yritettiin kiertää jälkikäsittelemällä valmista videotiedostoa mutta mikään vapaasti saatavilla oleva ohjelma ei saanut korjattua ongelmaa. Samaan ongelmaan törmättiin luentokoneiden kaaduttua kesken tallennuksen. Kaatumisen jälkeen uudelleen käynnistetty taltiointi ei osaa jatkaa keskenjäänyttä videotiedostoa vaan luo uuden.

Taltioinnin päättämisen jälkeen ohjelma palauttaa tietokoneen näyttöresoluution entiselleen. TODO: Vaihtaa näyttöresoluution käsittelyyn vapaasti levitettävä ohjelma nyt käytössä olevan Multires-ohjelman tilalle.

WMV-tiedostot

Microsoftin Media Encoder osaa tuottaa vain Microsoftin omia Windows Media Video (WMV) -videotiedostoja. Näiden tiedostojen ongelmana on niiden huono yhteensopivuus muun kuin Windows-maailman kanssa sekä näiden käsittelyyn sopivien ohjelmien hyvin rajoittunut valikoima. Näistä ongelmista huolimatta ollaan päädytty käyttämään Windows Media Encoderia seuraavista syistä:

WMV-tiedostoissa voidaan käyttää useita erilaisia Microsoftin videokodekkeja. Kuvaruutukaappauksissa on käytetty Microsoft Windows Media Screen 9 kodekkia (MSS2), joka soveltuukin tehtäväänsä erinomaisesti.

Windows Media Encoderin mukana tulee ohjelmat Windows Media File Editor sekä Windows Media Stream Editor, joilla pystyy rajatusti muokkaamaan wmv-tiedostoja. Valitettavasti Windows Media Screen 9 -kodekilla taltioitujen videoiden editointiin ei näistä ohjelmista ollut mitään hyötyä. Joko ne eivät suostuneet käsittelemään annettua videota ollenkaan tai haluttua asiaa ei kyetty tekemään. Esim. kesken jääneen videotiedoston korjaaminen tai muukaan käsittely ei onnistunut.

asftools

Asftools on työkalu, jolla voidaan korjata rikkinäisiä WMV- ja ASF-videotiedostoja. Useasta kokeilusta huolimatta asftoolsilla ei kuitenkaan pystynyt korjaamaan rikkinäisiä ruutukaappausvideoita.

Vaihtoehtoja Media Encoderille

Media encoderille on olemassa myös vaihtoehtoja, mutta niistä yleensä puuttuu ohjelmointirajapinta, äänen tallennus tai striimausmahdollisuus. Joitain testattuja ja tutkittuja ohjelmia:

Todennäköisesti paras levitysformaatti ruutukaappausvideoille olisi vektorimuotoinen Flash, mutta ainakaan vielä ei löytynyt tarpeeksi hyvää ohjelmaa tekemään suoraa kaappausta Flash-muotoon eikä myöskään WMV-videon muuntaminen Flash-muotoon onnistunut järkevällä tavalla.

Minidisc

Varmuusvarana käytetty minidisc-äänitys pelasti muutamaan otteeseen luennoijan äänen. Minidisc-tallennuksen jatkokäsittely on kuitenkin hidasta ja hankalaa. Äänityksen siirtäminen tietokoneelle edellyttää sen digitoimista äänikortin kautta esim. WAV-muotoon. Digitoimisesta on kirjoitettu oma ohje. Suoraan digitaalisena ääntä ei voida kopioida. Digitaalinenkin kopioiminen olisi mahdollista, jos ostaa Sonylta tuhansien eurojen arvoisen lisenssin minidisc-tallennuksessa käytettyyn ATRAC-koodaukseen. MP3-tallentimen käyttäminen nopeuttaisi äänen jatkokäsittelyä, mutta moista laitetta ei Agoran saleista löydy, vaan niihin on asennettuna minidisc-laitteet.

MP3

Luentotaltiointeja ei jätetty pelkästään videomuotoon, vaan myös pelkkä luennoijan ääni asetettiin saataville MP3-muodossa. Opiskelijat pystyvät kuuntelemaan MP3-tiedostoja kannettavilla MP3-soittimillaan ja kännyköillään. Videotiedostoja nämä laitteet eivät ymmärtäisi.

MP3-tiedostot tehtiin suoraan videotiedostojen ääniraidoista. Periaatteessa parempi äänenlaatu saavutettaisiin käyttämällä minidisc-äänityksiä, mutta minidisc-äänityksien digitoiminen tietokoneelle on liian hidasta ja vaivalloista. WMV-tiedostoihin ääni tallennettiin käyttäen Microsoftin omaa Windows Media Speech -kodekkia. Media Encoderin mukana olevilla työkaluilla äänen olisi voinut purkaa videotiedostosta suoraan Windows Media Audio (WMA) -muotoon, mutta tätä tiedostomuotoa ei tueta lähellekään niin laajalti kuin MP3-muotoa. Kolmas vaihtoehto äänitiedostoille olisi ollut GSM-koodattu WAV-tiedosto. GSM-koodaus toimii pelkälle puheelle paremmin kuin MP3-koodaus, mutta ero tiedostokoossa tai äänenlaadussa ei ole merkittävä, joten valinta kohdistui MP3-muotoon, jolle löytyy varmasti laajin tuki erilaisista kannettavista laitteista.

Äänen kopioiminen WMV-tiedostosta ja muuntaminen MP3-muotoon pyrittiin automatisoimaan mahdollisimman pitkälle. Testailun jälkeen työkaluiksi löytyivät Mplayer ja lame. Mplayer on niitä harvoja komentorivityökaluja jotka osaavat käsitellä WMV-tiedostoja ja täten myös purkaa ääniraidan WAV-tiedostoksi, jonka voi edelleen syöttää lamelle, joka on mp3-enkoodaukseen tarkoitettu komentorivityökalu. Enkoodauksen olisi voinut tehdä myös Mplayerin mukana tulevalla mencoderilla, mutta lame oli jo entuudestaan tuttu.

Ääniraidan muuttaminen WMV-tiedostosta PCM-koodatuksi WAV-tiedostoksi Mplayerilla:

mplayer video.wmv -quiet -vc dummy -vo null -ao pcm:file=audio.wav

WAV-tiedoston muuntaminen MP3-tiedostoksi asetuksilla, jotka sopivat pelkän puheen enkoodaukseen:

lame -m m -q 0 -v --vbr-new -V 0 -b 8 -B 24 audio.wav audio.mp3

TODO: yhdistää edellämainitut jotta riittää esim. pelkkä WMV-tiedoston raahaaminen kuvakkeen päälle.

XVID

WMV-videoformaatti on Microsoftin oma suljettu formaatti, jonka tuki on hyvin vaihtelevaa muualla kuin Windows-ympäristössä. Erityisesti ruutukaappausvideoihin käytetty kodekki on hankala tapaus ja vaatii paljon lisäsäätöä Mac- ja Linux-käyttäjiltä, jos he haluavat luentovideoita katsoa eikä katsominen siltikään välttämättä onnistu. Ainakin yksi Mac-käyttäjä valitti, että ei pysty mitenkään katsomaan WMV-luentovideoita.

Ongelma oli ollut tiedossa jo vähän aikaan. Ratkaisuna usein ehdotettu videoiden muuntaminen AVI-muotoon käyttäen MPEG4-koodausta ei aluksi kelvannut, koska MPEG4 on tarkoitettu tavallisen videokuvan pakkaamiseen ja ruutukaappausvideot muistuttavat enemmän animaatiota kuin tavallista videokuvaa. Monessa testissä tuli todettua, että MPEG4-pakkaus saa ruutukaappausvideokuvan joko aivan kelvottoman näköiseksi tai tiedoston koko kasvaa aivan liian suureksi.

Vapaasti saatavilla olevasta MPEG4-muotoa tuottavasta XVID-kodekista löytyi uusi versio, johon oli lisätty erikoistuki animaatioille. Tätä animaatiotukea hyödyntämällä myös ruutukaappausvideoiden muuntaminen MPEG4-muotoon onnistui vihdoinkin. Kuvan laatu pysyi tarpeeksi hyvänä eikä tiedoston kokokaan kasvanut liian suureksi.

Videoformaatin muunnoksessa harmaita hiuksia aiheutti huono tuki WMV-formaatille. Suurin osa ohjelmista, joilla muunnos voitaisiin tehdä eivät tue WMV-muotoa. Tärkeimpänä esimerkkinä Virtualdub, joka on käytetyimpiä vapaita videoeditointi- ja muunnosohjelmia. Pitkällisen etsinnän tuloksena löytyi kolme ohjelmaa, joilla WMV-videoita pystyi muuntamaan:

Lopullinen kuvio videoiden muunnoksessa tapahtui käyttäen useampaa ohjelmaa. Ensin Stoik Video Convertterilla muunnettiin WMV-videot AVIZLIB-kodekilla pakattuun AVI-muotoon. Jokaista videota varten piti käynnistää uusi esiintymä video convertterista ja parhaimmillaan työkoneessa pyöri toistakymmentä video convertteria yhtäaikaa.

AVIZLIB on häviötön kodekki, joka soveltuu erinomaisesti ruutuvideokaappausten pakkaamiseen. Muunnos AVI-muotoon tapahtui kohtuullisen nopeasti n. 0.5-1.5h per video verrattuna varsinaiseen MPEG4-videon tuottamiseen, joka kestää useita tunteja. Etsittäessä sopivaa kodekkia välimuodon tallentamiseen jouduttiin testaamaan useita eri kodekkeja. Häviöttömiä videokodekkeja on testannut mm. Moskovan yliopisto, mutta nämä testit koskevat aina tavallista videokuvaa sisältävää materiaalia eivätkä ruutukaappausvideoita. Oleellista oli löytää kodekki, joka osaisi puristaa videot niin pieneen tilaan, että ne saisi mahdutettu alle 100 gigatavun tilaan. Yleisimmin käytetty HUFFYUV-kodekki vaati yhdeltä luentovideotaltioinnilta tilaa 10-30 gigatavua mikä oli aivan liian paljon. TODO: Tehdä muunnos usealle videolle yhtäaikaa Stoik Video Convertter 2.0:lla ja kääntää sitten videot oikeinpäin Virtualdubissa.

AVI-muotoon muunnetut videot syötettiin Virtualdubille. Onneksi Virtualdubille voi luoda komentojonoja, jolloin koneen voi jättää käsittelemään kaikkia videoita ilman, että käyttäjän tarvii tehdä komentojonon määräämisen jälkeen mitään. Virtualdubin komentojonojen tuottamiseen kirjoitettiin myös oma perl-ohjelma, joka osaa luoda suoraan kaikille halutuille videoille saman toimintosarjan. Samanlaista ohjelmaa käytettiin myös Avisynth-testien yhteydessä.

Osa AVI-muotoisista videoista muunnettiin käyttäen Mencoderia vastaavilla asetuksilla kuin Virtualdub:

mencoder video.avi -quiet -nosound -noautoexpand -ovc xvid -xvidencopts pass=1:me_quality=6:bitrate=100:qpel:gmc:notrellis:cartoon:quant_type=mpeg:chroma_me:chroma_opt:hq_ac:bvhq=1:vhq=1
:max_bframes=2:min_iquant=1:min_pquant=1:min_bquant=1:max_iquant=30:max_pquant=30:max_key_interval=300
:frame_drop_ratio=0 -o video_xvid.avi
mencoder video.avi -quiet -noautoexpand -oac copy -ovc xvid -xvidencopts pass=2:me_quality=6:bitrate=100:qpel:gmc:notrellis:cartoon:quant_type=mpeg:chroma_me:chroma_opt:hq_ac:bvhq=1:vhq=1:max_bframes=2:min_iquant=1:min_pquant=1:min_bquant=1:max_iquant=30:max_pquant=30:max_key_interval=300:psnr:kfthreshold=1:kfreduction=20:keyframe_boost=10:frame_drop_ratio=0 -o video_xvid.avi

Powerpoint -> XHTML

Videomateriaalin lisäksi opiskelijoille haluttiin tarjota luennoijien käyttämät luentokalvot. Jokainen luennoija käytti Powerpoint-esitystä, joten luontevaa oli rakentaa ohjelma, joka pystyi muuntamaan PowerPoint-esityksen selkeäksi XHTML-dokumentiksi. Myös alkuperäiset PowerPoint-tiedostot tai niiden PDF-versiot laitettiin saataville. Kirjoitushetkellä PowerPoint-esitysten muuntaminen XHTML-muotoon on vielä kesken.

Tämän dokumentin TODO:

Käyttäjien kommentit

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/doc/videoluennot/doc/
© Antti Ekonoja (antti.j.ekonoja@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
Jukka Mäntylä (jmantyla@iki.fi) <http://www.iki.fi/jmantyla/>
2009-10-01 14:36:06
Informaatioteknologia - Jyväskylän yliopiston IT-tiedekunta ja avoin yliopisto