TV-ohjelmien lähetyksessä käytetään edelleen “ikivanhaa” pakkaustekniikkaa, jonka yleisnimitys on MPEG-2. Uudemmalla MPEG-4:lla tallennustilan tarve on jopa vain kymmenysosa edellisestä. Samalla kun pakkaustapaa muutetaan, voidaan myös mahdolliset mainokset ja varmuuden vuoksi tallennetut turhat alku- ja loppuosat leikata pois.

Tässä päivitetyssä versiossa kerrotaan, miten myös piukempaan pakkaavalla ja erillisiä tekstityksiä käsittelemään pystyvällä HandBrakella voidaan leikata turhat osat pois TV-tallenteista.

Historiaa ja selityksiä

Siitä lienee jo noin 25 vuotta aikaa, kun hankin ensimmäisen TV-kortin tietokoneeseen ja pian myin viimeisen putkitelevisioni pois enkä sen jälkeen ole ostanut televisioita muuten kuin tietokoneen näytöiksi. Tekniikka on sinä aikana kehittynyt ja olen vaihtelevalla innolla päivittänyt laitteitani ja lisäksi asunnotkin ovat vaihtuneet ja niiden myötä vaihtunut myös antenni- tai kaapeli-TV. Vuonna 2008 ostin kaksi HD-kaapeli-TV-korttia, mutta silloin ei vielä ollut HD-lähetyksiä, muutin pian antennitaloon ja vasta pari vuotta sitten, kun nykyisen rivitaloasunnon talojakamossa vaihdettiin valokaapeli-silta uuteen, jossa oli myös kaapeli-TV-liityntä, tuli niille korteille enemmän käyttöä. Ne ovat kuitenkin PCI-väyläisiä ja sen takia varsin hankalia vähänkään uudemmissa tietokoneissa.

Aika heikossa happessa on siis ollut minulla valmiudet tallentaa TV-ohjelmia jo pitkään, mutta ei se ole haitannut lainkaan. Ylen Areenasta olen näköjään aloittanut netin kautta lataamisen vuoden 2012 alusta lähtien ja tiedostoja on kertynyt kuusi teraa ja 8 389 tiedostoa (aluksi tekstitykset, usein sekä suomi että ruotsi, olivat omissa tiedostoissaan). On niissä vähintään 3 000 tuntia eli lähes kahden vuoden normaalin työajan verran katseltavaa. Lisäksi DVD- ja Blu-Ray-levyjä olen laittanut kiintolevyille talteen yli 1 200 kappaletta ja ne vievät levytilaa 3,9 teraa.

Muitakin sivuhaaroja on, mutta vuoden 2014 jälkeen en tallentanut TV-lähetyksiä lainkaan ennen kuin taas pari vuotta sitten aloin vähitellen elvyttämään “perinnettä”. Lisäksi minulla oli “vanhoina synteinä” muutama tera vuosina 2008 – 2014 tallennettuja TV-ohjelmia edelleen tuhlailevassa MPEG-2-formaatissa ja niiden transkoodaus MPEG-4-formaattiin vaati aika paljon konetehoa. Vasta tämän vuoden keväällä kokosin kaksi tietokonetta, joissa on niin paljon vääntöä, että teratavujen transkoodaus sujui käyttöönottotestauksen ohessa melkoisen nopeasti. Kirjoitin niistä kolme erillistä kirjoitusta Uuden Suomen Vapaavuoroon:

Lisäksi palvelinkoneen HP ProLiant DL380p G8 tallennusjärjestelmän päivitys liittyy osittain aiheeseen, mutta siitä en ole erikseen kirjoittanut.

Tallennuslaitteisto

Jos TV-signaali jaetaan neljään osaan, on sitä jo hyvä myös vahvistaa. Kuvassa on myös F – koaksiaalikaapeli-liitin välikappaleita, joita tarvittiin, koska vahvistimessa on F-liitännät.
F-liitinadapterit olivat viiden kappaleen pusseissa.

Valokuvassa näkyy vielä yksi musta koaksiaalikaapeli, joka on tullut jonkun vanhan videonauhurin tai TV:n mukana ja voi siis olla jopa 40 vuotta vanha. Valkoisten kaapelien todennäköinen ikä on noin 15 vuotta, joten niissä kontaktiongelmat eivät vielä ole yhtä todennäköisiä. Niistä ne ongelmat kuvanlaadussa kuitenkin johtuivat, kun minulla oli vain kaksi tallentavaa USB-tikkua, mutta nyt kun niitä on neljä, on vahvistin jo asiallinen.

Ylempi on USB 3.0 -hubi ja alempi USB 2.0. TV-viritin-USB-tikkujen liitäntä on USB 2.0, joten nopeammasta USB 3.0 -liitännästä ei ole mitään hyötyä. Kesäkuussa Kiinasta tilattu USB 2.0 -hubi maksoi 2,81 €.
AliExpressissä ei oikein muita järkeviä vaihtoehtoja ole. Ilman kaapeli-TV-viritintä olevat ovat lähes samanhintaisia enkä tiedä, mitä parempaa kalliimmissa olisi. Nämä toimivat ja antennijärjestelmällä ei pitäisi olla väliä.

USB 2.0:n tiedonsiirtonopeus on maksimissaan 480 megabittiä sekunnissa tai noin 50 megatavua, kun taas HD-TV-lähetysten bittivirran tiheys on suurimmillaan 25 megabittiä sekunnissa, joten neljä TV-viritintikkua syö vasta vajaan neljänneksen sen siirtokapasiteetista.

TV-tikut näkyvät Kaffeinen asetuksissa kahtena laitteena, mutta tällä Realtekin virittimellä ole mitään käyttöä minulle eikä pian muillekaan.

Kaffeine osasi jo 00-luvulla tallentaa yhdellä virittimellä kaikki kanavanipun kanavien ohjelmat eikä päällekkäiset ajastukset, siis kun kaksi peräkkäistä ohjelmaa tallennetaan ja niiden varmuuden vuoksi tallennettavat osat menevät päällekkäin, vaadi toista viritintä. Neljällä virittimellä ei siis voi käytännössä koskaan tulla tilannetta, että ne loppuisivat kesken, eikä oikein kolmellakaan, mutta kahdella se on hyvin tavallista.

Kaffeinen käytöstä en viitsi sen enempää kirjoittaa kuin, että Iltalehdelle tai Alma Medialle siirtyneen telkku.comin TV-ohjelmalistauksissa on elokuvien kohdalla IMDB-linkki ja arvosana. Yli 7.0 saaneiden tietoja en useinkaan viitsi IMDB:stä lukea, mutta vähemmän saaneiden, mutta jostain syystä kiinnostavien IMDB-sivut yleensä avaan. Ylen ohjelmista olen tallentanut vain HD-resoluutioon restauroituja suomalaisia elokuvia, joita ei voi ladata Areenasta. Niiden tiedot katson taas tietysti Yle Areenan TV-opas-sivulta.

TV-ohjelmatallenteiden jälkikäsittely

Valitettavasti TV-tallenteiden tekstityksen tyyppi määrittää sen, mitä ohjelmia voi tai kannattaa käyttää jälkikäsittelyssä. Vielä edellisellä aktiivisemmalla kaudellani yli 10 vuotta sitten jälkikäsittelyn saattoi helposti jättää tekemättä, koska MPEG-2-formaatissa SD-laatuinen video vei vain noin tuplasti sen tallennustilan kuin sen pystyi MPEG-4-formaatissa pakkaamaan. HD-laatuisena ero voi kuitenkin olla lähes kymmenkertainen ja mainoksineen kanavilta 5 ja 6 tallennetut pitkät elokuvat voivat viedä jopa 40 gigaa tallennustilaa. Esimerkiksi 14.9. kanavalta 5 tallentamani Harry Potter ja salaisuuksien kammio vei juuri tuon 40 gigaa ja leikattuna Harry_Potter_ja_salaisuuksien_kammio.mp4 vain 3,4 gigaa. Leikatun version kesto on 2 h 26 min ja leikkaamattoman 3 h 49 min, joten pakkaussuhde ei sentään kymmenkertaistunut, mutta jos mukaan lasketaan myös leikkaamalla saatu säästö, niin se oli lähes 12-kertainen.

Sinäänsä tallennustila on nykyään halpaa, mutta jos sitä tarvitaan paljon, useita teroja tai kymmeniä teroja, alkaa sen hallintaan vaadittava muu laitteisto maksaa paljon enemmän kuin itse tallennustila halvimmillaan. Itse onnistuin esimerkiksi ostamaan äskettäin pari 64-gigaista micro-SD-korttia lopulta 88 sentin kappalehintaan, kun sain palautuksena puolet normaalihinnasta, koska ne myytiin 128-gigaisina alennettuun hintaan. Ihan oikeasti 128-gigaisista maksoin sitten alle vitosen kappale. Ne eivät kuitenkaan ole helposti hallittavia, jos niitä alkaa olla kymmeniä tai satoja.

Tässä yhteydessä on syytä lyhyesti kertoa HP ProLiant DL380p G8 -palvelimeni levyjärjestelmäpäivityksestä. Sen Smart Array P420i SAS/SATA-kontrolleriin voi liittää 8 2,5-tuumaista kiintolevyä jommalla kummalla liitännällä, mutta loogisen levyn tai RAID-pakan kaikkien levyjen pitää olla samaa tyyppiä. Tällä hetkellä järjestelmä- tai käynnistyslevynä on kaksi 512 GB SSD-SATA-levyä RAID-1-pakkana ja isona tallennuslevynä kuusi viiden teran SATA-levyä RAID-5-pakkana, jolloin tallennustilaa on 25 kymmenjärjestelmän teraa ja 23 tietokone- tai binäärijärjestelmän teraa.

Koneen sisällä on SD-korttipaikka ja USB 2.0 liitäntä, joilta kummaltakin sen voisi käynnistää ja vaikka ne ovatkin hitaahkoja, voisi järjestelmälevynä käyttää kahta NVMe-levyä PCI-e-korteilla RAID-1-pakkana tai muuten peilaavina. Esimerkiksi Btrfs:ää käytettäessä peilaus on helppo ottaa käyttöön. Tällöin isoa RAID-5-pakkaa voisi laajentaa aina kahdeksaan levyyn ja 35 teraan asti. Käytössä tällä hetkellä on 17 teraa ja käyttöaste on 73 % ja aion kyllä pitää sen vielä pitkään suunnilleen samalla tasolla, jotta välttyisin laajennukselta. Maksoin Seagaten kunnostamista tai todennäköisimmin vain tarkistamista käytetyistä viiden teran levyistä noin 100 €/kpl.

Leikkaamisessa menee kyllä aikaa ja vaivaa, mutta toistaiseksi olen onnistunut motivoimaan itseäni siihen sillä, että opettelen samalla Kdenliven käyttöä. Kdenlivessä on myös se huono ominaisuus, että se ei osaa käsitellä erillisiä tekstitysstriimejä, mutta TV-lähetyksissä niitä on vain Ylen ja kaupallisista TV-yhtiöistä vain MTV:n kanavilla (MTV3, MTV Sub ja MTV Ava). Muilla kanavilla tekstitykset on “poltettu” kuvaan eli niitä ei voi poistaa tai hukata leikkausvaiheessa.

Valinta “Upota tekstit polttamisen sijaan” on käytettävissä vain kun tallennusmuoto on Matroska-H264/AAC. Ohjelma kaatuu näillä valinnoilla painikkeilla “Renderöi tiedostoon” ja “Tuota skripti”.

Kdenlivessä voi yrittää tallentaa erilliset tekstitysstriimit, kun valitsee Matroskan tallennusmuodoksi, mutta Kdenlive kaatuu aina vaikka yrittäisi luoda pelkän skriptin.

HandBrake on taas toisentyyppinen ohjelma. Sillä ei pysty editoimaan tai leikkaamaan, mutta se osaa käsitellä tekstitysstriimit ja se on hyvin yksinkertainen käyttää. Ilmeisesti aloitus- ja lopetuskohdan pystyisi komentoriviversiolla asettamaan transkoodattaessa, mutta en ole viitsinyt tutustua aiheeseen tarkemmin. Aikoinaan käytin sitä DVD-levyjen rippaamiseen Matroska-formaatin tiedostoihin ja joillakin levyillä oli useiden tekstitysraitojen lisäksi useita ääniraitoja eri kielillä ja ne sai kaikki talteen vain Matroska-formaatilla. Nykyään olen käyttänyt graafista HandBrake-gui-versiota (käynnistyskomento ghb), jossa ei ole –start-at <string:number> ja –stop-at <string:number> -parametrejä vastaavia asetuksia.

Käsitellään kuitenkin ensin leikkaaminen Kdenlivellä. Tein sitä varten videon, jonka tietysti leikkasin Kdenlivellä:

Tätä tehdessä ei ollut mitään käsikirjoitusta, joten taukoja on poistettu melko paljon ja siksi kuva voi hyppiä hieman erikoisesti. Lisäksi leikkauskohtien etsimistä ei montaa kertaa toisteta, silti lopputulos on liian pitkä, olisi pitänyt karsia vielä enemmän.

Tuon videon ääniraita on äänitetty kännykällä ja Logitechin Zone Vibe 100 langattomalla headsetillä, jonka mikrofonissa on vastameluominaisuus. Tietokoneeseen liitetyssä mikrofonissa ei ole vastamelua eikä Kdenlivessä ole taustakohinanpoistoa. Seuraavan videon tallensin kolmessa osassa enkä viitsinyt lähteä kaikkia kolmea erillistä kännykkätallennetta tahdistamaan videokuvan kanssa vaikka se melko helppoa onkin, kun muistaa “lyödä klaffin” tahdistusäänimerkiksi. Poistin taustakohinan Audacityllä, kun olin ensin erottanut ääniraidan videosta Kdenlivessä ja toin sen tilalle korjatun version.

Näin jälkiviisaana pitää ihmetellä, miksi en vihdoin ottanut käyttöön jompaa kumpaa USB-liitäntäistä headsettiä, joissa on vastamelumikrofoni. Noh, mokailemalla oppii ja tuli Audacityn käyttöä kerrattua.

Seuraava video käsittelee renderöinnin ja transkoodauksen käynnistämistä ja prosessien valvontaa. Kuulostaa tietysti triviaalilta, mutta kun siihen käytetyssä koneessa on kaksi 18-ytimistä prosessoria, joista kertyy HyperThreadingiä hyödyntäen yhteensä 72 prosessorisäiettä, ei se ihan sitä ole.

Kdenliven renderöinnin asetuksiin en ole viitsinyt juuri lainkaan perehtyä. Tavoitteena on yleensä kolme asiaa, joista voidaan saada vain kaksi: hyvä kuvanlaatu, nopea prosessointi ja pieni tiedostokoko. Ohjelman omat oletukset ovat varmaankin varsin hyvä kompromissi.

HandBraken esiasetuksista tein kuitenkin mielestäni varsin hyvän löydön. Lainaus kirjoituksesta Chicken Blood Monster PC valmis, loppuraportti ja hintalaskelma, otsikon Suorituskyvystä alta:

Olin ajatellut, että nopealla transkoodauksella tulee isoja tiedostoja ja hitaalla pieniä, mutta videokuvan laatu on kolmas muuttuja ja yleinen esiasetus Very Fast 1080p30 tekee lähes puolet pienempiä tiedostoja 2/3-osa-ajassa verrattuna Matroska-formaatin H.264 MKV 1080p30 -esiasetukseen, joka on sille formaatille tarkoitetuista nopein ja on hyvin lähellä yleistä esiasetusta Fast 1080p30. Kovin tarkkoja lukuja ei pitäisi antaa, koska jopa tiedostokoko vaihtelee hieman eri ajokerroilla ja eri tyyppisille videotiedostoille sopivat eri enkoodaustavat eri tavoin, mutta alla on tiedot erään vanhan Suomi-filmin transkoodauksesta:


Transkoodausnopeus, FPS (Frames Per Second) ei tässä tapauksessa kerro koneen  kokonaissuorituskyvystä, sillä siinä kun hitaammalla tavalla neljä samanaikaista transkoodausta syö lähes kaikki koneen tehot, pitää nopeammalla tavalla käynnistää kuusi HandBraken instanssia.”

Voi hyvinkin olla, että kyllästyn leikkaamiseen ja käytän jatkossa HandBrakea kaikkien TV-tallenteiden transkoodaukseen. Niitä vanhoja SD-resoluution TV-tallenteitakaan en paljon jaksanut keväällä leikellä. Muutenkin tämä touhu on ollut enemmän nostalgiatrippiä ja kokeilua, miten asiat olisi joskus aikoinaan voinut tehdä oikein.

Miten paljon tiedostokoot pienenevät?

Tein taulukon ja järjestin rivit TV-kanavan nimen mukaan.

Kuva on linkki Google Sheets -laskenta-arkkiin.

Listassa on kaksi tiedostoa sekä leikattuna mp4-tiedostona ja HandBraken transkoodaamana mkv-tiedostona. En ollut huomannut, että Le_Mans_66 oli MTV3:n lähetys, kun leikkasin sitä Kdenlivellä ja Meidän_poikamme on mykkäelokuva ilman tekstityksiä, joten ajattelin, että se olisi järkevämpi leikata. HandBrake tekee kuitenkin niin paljon piukempaan pakattua tavaraa, että ylimääräiset pätkät alussa ja lopussa eivät tee sen tuotoksesta suurempia.

Taulukosta näkee myös selvästi, että TV5 ja TV6 lähettävät vakiotiheydellä tai itseasiassa maksimitiheydellä koko ajan. Myös STAR lähettää vakiotiheydellä, mutta hieman erikoisella sellaisella. En viitsinyt bittivuon tiheyksiä itse laskea, joten käytin mediainfo-ohjelmaa ja poimin sen tulosteista “Overall bit rate” -rivit. Tiedostokoot ovat tavun tarkkuudella piilotetuissa sarakkeissa ja niistä on laskettu megatavun tarkkuudella näkyvät luvut.

Pitäisi vielä tarkistaa käyttämäni HandBraken asetuksen tuottama kuvanlaatu jollain runsaasti liikettä sisältävällä kohtauksella. Aikoinaan DVD-elokuvia käsitellessä Kubrikin Barry Lyndonin alkupuolen nyrkkeilyottelu paljasti hyvin pakkauksessa syntyvät puutteet kuvanlaadussa. Vanhoissa suomalaisissa elokuvissa ei varmasti ole vastaavia kohtauksia ja MTV:n kanavilta tulee niin kovin harvoin tallennettua, että suurta vahinkoa ei synny, mutta jos siirryn käyttämään pelkästään HandBrakea, kuten järkevältä näyttäisi, niin tuo täytyy vielä tarkistaa.

Taulukon mukaan elokuvassa Blood_Diamond_-_veritimantti on suurin bittivuon tiheys, joten siinä on keskimäärin eniten liikettä. Täytyypi säästää se alkuperäinen, jotta voi vertailla enkoodausasetuksia.

Yksi asia oli ilman tarkempaa tarkasteluakin selviö, TV5:n ja TV6:n tallenteet on pakko käsitellä. Vain yhden elokuvan tiedostokoosta jäi jäljelle yli viidennes ja parhaimmillaan häipyi 93 %.

HandBraken käytöstä laajemmin (kokonaan uusi osuus)

HandBraken graafista versiotakin käytettäessä voi asettaa aloitus- ja lopetuskohdan, mutta kun samalla pitäisi tehdä muitakin säätöjä sekä mahdollisesti enemmänkin leikkauksia, on komentoriviversion käyttö järkevämpää ja lopulta käytännössä pakollista.

Tämän vanhan restauroidun elokuvan alku- ja loppukohdat on poimittu Kdenliven luomasta mlt-skriptitiedostosta. Elokuva on alkanut hyvin ajallaan, koska nykyisin Kaffeine aloittaa tallennuksen kolme minuuttia etuajassa. Se lopettaa asetuksillani 10 minuuttia sen jälkeen, kun ohjelman olisi pitänyt loppua, mutta tällä kertaa seuraavaksi esitettävän elokuvan trailerin loppu löytyi ensin Kdenlivellä, joten sekin päätyi transkoodattavaksi.

Voisi nuo aloitus- ja lopetuskohdat etsiä jollain muullakin ohjelmalla, mutta samaan tarkkuuteen on hyvin vaikea päästä ja Kdenlive on tehty juuri tuohon tarkoitukseen ja etsiminen on hyvin nopeaa ja helppoa. Kun TV-kuvassa on 25 ruutua sekunnissa, on yhden ruudun pituus 0,04 sekuntia ja tuossakin kuvakaappauksessa yllä sekunnin sadasosat ovat neljällä jaollisia. Ohjelman alussa ja lopussa ylimääräiset tai puuttuvat ruudut tai jopa kokonaiset sekunnit eivät tosin haittaa, mutta jos haluaa poistaa mainostaukoja, on se ruuduntarkkaa hommaa. Puuttuvia ruutuja ei kyllä huomaa, mutta jo epäilys harmittaa. Nelonen Median kanavilla on tapana lisätä yksi musta ruutu mainostaukojen alkuun sekä loppuun ja sitäkään ei huomaa, jos sellainen pääsee ylimääräisenä mukaan leikattuun versioon, mutta yksikin ylimääräinen muu ruutu kyllä erottuu. Ihminen pystyy seuramaan noin 60 välkettä sekunnissa1 ja viitatun tutkimuksen mukaan vaihtelu on välillä 34-61.

Tässä välissä on hyvä esitellä toinenkin työkaluohjelma, jota tarvitaan, jos haluaa leikata mainostauot pois. mkvmerge on Fedora Linuxissa paketissa MKVToolNix ja sillä voi sekä pilkkoa että liittää toisiinsa Matroska-tiedostoja. Sen FAQ:ssa on kysymys, miksi mkvmerge ei leikkaa halutusta kohdasta ja vastaus oli, että mkvmerge etsii sopivimman avainruudun, “key frame”, johon tehtäviin muutoksiin seuraavat ruudut perustuvat. Videokuvan pakkaamisen perustekniikka on tallentaa vain muutokset referenssi- tai alkupistekuvaan, joka on tallennettava tietysti kokonaisena, mutta siinäkin voidaan käyttää pakkausta. Tässä juuri on renderöinnin ja transkoodauksen ero. Renderöimällä voidaan leikata ruudun tarkkuudella ja transkoodattaessa ei.

Kovin montaa leikkauskokeilua en HandBrakella tehnyt ja päädyin valitsemaan 0,68 sekunnin tai 17 ruudun siirtymän siten, että sekunnin siirtymällä jäi puuttumaan 8 ruutua tai 0,32 sekuntia eli se oli liian suuri. Oikea arvo lienee jossakin yhden ja 0,68 sekunnin välissä, koska leikkauksiin näyttää jäävän aina muutama tai ainakin yksi ylimääräinen ruutu. Ja on ihan hyvä, että lähtenyt asiaa tarkemmin tutkimaan, koska päädyin siihen, että en viitsi lähteä leikkaamaan mainostaukoja pois HandBrakella, käytän siihen Kdenliven renderöintiä. Tekemässäni skriptissä tosin on se mahdollisuus, mutta mainostauot on myös mahdollista leikata pois jälkikäteen mkvmergen avulla, jos viitsii.

Tuo skripti on alla:

#!/bin/bash
WORKER=`basename $1 -1.mlt`
echo INPUTFILE=\'`grep resource $1 | tail -n1 | awk '{sub("  <property name=\"resource\">","");sub("</property>","");print}' -`\' > $WORKER.sh
echo OUTPUTFILE=~/Videot/$WORKER >> $WORKER.sh
grep "entry in=" $1 | grep chain0 > entries_tmp.txt
if [ "`cat entries_tmp.txt | wc -l`" -eq "1" ]
then
    cat entries_tmp.txt | awk 'function hr_to_sec(time,    t, l, i, j) {
    			           l = split(time, t, /:/);
				   j = time = 0;
				   for (i=l; i>0; i--) {
				       time += t[i] * (60 ^ j++);
				   }
  				   return time;
				   }
				{
				sub("in=\"","",$2)
    				sub("out=\"","",$3)
    				sub("\"","",$2)
    				sub("\"","",$3)
				print "HandBrakeCLI -Z \"Very Fast 1080p30\" --all-subtitles --crop-mode none --start-at seconds:"hr_to_sec($2)+0.68"  --stop-at seconds:"hr_to_sec($3)-hr_to_sec($2)-0.68"  -i \"$INPUTFILE\" -o $OUTPUTFILE.mkv"
                                }' - >> $WORKER.sh
else
    cat entries_tmp.txt | awk 'BEGIN{seq = 0 }
			       function hr_to_sec(time,    t, l, i, j) {
  				   l = split(time, t, /:/);
				   j = time = 0;
  				   for (i=l; i>0; i--) {
    					time += t[i] * (60 ^ j++);
  				   }
  				   return time;
				 }
				 {
				 seq = seq + 1
    				 sub("in=\"","",$2)
    				 sub("out=\"","",$3)
    				 sub("\"","",$2)
    				 sub("\"","",$3)
    				 print "HandBrakeCLI -Z \"Very Fast 1080p30\" --all-subtitles --crop-mode none --start-at seconds:"hr_to_sec($2)+0.68"  --stop-at seconds:"hr_to_sec($3)-hr_to_sec($2)-0.68"  -i \"$INPUTFILE\" -o $OUTPUTFILE.00"seq".mkv"
				 }
				 END{printf "mkvmerge -o $OUTPUTFILE.mkv "
    				     for ( i=1 ; i < seq  ; i++ ) {
				     printf "$OUTPUTFILE.00"i".mkv + "
    				     }
    				     printf "$OUTPUTFILE.00"i".mkv\n"
				     }' - >> $WORKER.sh
fi

Se tuottaa shell-skriptin, joka tekee varsinaisen työn ja olisi järkevämpää, että tuo muunnosskripti käynnistäisi sen ja poistaisi sen tarpeettomana välivaihetuotoksena. Tuon $WORKER.sh-skriptin muotoja on kaksi. Yksinkertaisempi ei tarvitse mkvmergeä ja se voi olla esimerkiksi seuraava:

INPUTFILE='/root/m2t/FIN: Dynamiittityttö (S)_SWE: Dynamitflickan (T).m2t'
OUTPUTFILE=~/Videot/Dynamiittityttö
HandBrakeCLI -Z "Very Fast 1080p30" --all-subtitles --crop-mode none --start-at seconds:181.76  --stop-at seconds:4490.16  -i "$INPUTFILE" -o $OUTPUTFILE.mkv

Monimutkaisemmassa versiossa mkvmergen komentorivi luodaan silmukassa, koska yhdistettävien osien määrä vaihtelee.

INPUTFILE='/root/m2t/FIN: Blade Runner_SWE: Blade Runner.m2t'
OUTPUTFILE=~/Videot/Blade_Runner
HandBrakeCLI -Z "Very Fast 1080p30" --all-subtitles --crop-mode none --start-at seconds:320.24  --stop-at seconds:1300.52  -i "$INPUTFILE" -o $OUTPUTFILE.001.mkv
HandBrakeCLI -Z "Very Fast 1080p30" --all-subtitles --crop-mode none --start-at seconds:1936.48  --stop-at seconds:962.72  -i "$INPUTFILE" -o $OUTPUTFILE.002.mkv
HandBrakeCLI -Z "Very Fast 1080p30" --all-subtitles --crop-mode none --start-at seconds:3484.92  --stop-at seconds:1169.4  -i "$INPUTFILE" -o $OUTPUTFILE.003.mkv
HandBrakeCLI -Z "Very Fast 1080p30" --all-subtitles --crop-mode none --start-at seconds:5183.04  --stop-at seconds:742.08  -i "$INPUTFILE" -o $OUTPUTFILE.004.mkv
HandBrakeCLI -Z "Very Fast 1080p30" --all-subtitles --crop-mode none --start-at seconds:6125.84  --stop-at seconds:1219.92  -i "$INPUTFILE" -o $OUTPUTFILE.005.mkv
HandBrakeCLI -Z "Very Fast 1080p30" --all-subtitles --crop-mode none --start-at seconds:7934.48  --stop-at seconds:1101.6  -i "$INPUTFILE" -o $OUTPUTFILE.006.mkv
mkvmerge -o $OUTPUTFILE.mkv $OUTPUTFILE.001.mkv + $OUTPUTFILE.002.mkv + $OUTPUTFILE.003.mkv + $OUTPUTFILE.004.mkv + $OUTPUTFILE.005.mkv + $OUTPUTFILE.006.mkv

Mainostaukojen poisto HandBrakella ei ole senkään takia erityisen järkevää, että kullakin HandBraken käynnistyskerralla transkoodataan vain yksi mainostaukojen väliin jäävä kohta ja alkukohdan etsiminen hidastuu koko ajan sen siirtyessä kauemmas. Jostain syystä varsinkin TV 5:n ja Kuutosen tallenteista alkukohdan etsiminen on hidasta ja virheilmoituksia tulostuu hurja määrä. Senkin takia mainostaukojen poistaminen on järkevää siirtää myöhempään.

Mainitun $WORKER.sh-tiedoston lisäksi skriptit jättävät entries_tmp.txt-tiedoston ja $OUTPUTFILE.00?.mkv-tiedostot jälkeensä siivoamatta, mutta niistä voi vielä olla hyötyä, kun skripti on tuore ja tavallaan sisäänajovaiheessa.

HandBrakeCLI:n parametreistä pitää mainita –all-subtitles, jonka ansiosta myös vanhojen Suomi-filmien kuulorajoitteisille tarkoitettu tekstityssriimi tallentuu, koska se on toissijaisena eikä sen takia tule poltetuksi, joka on oletuksena. –crop-mode on none, koska oletuksena oleva automatic ei toimi aina oikein eikä myöskään varovaisempi conservative. Niitä sekoittaa TV-kanavien logo, joka on rajatun kuvan ulkopuolella. Esimerkiksi mtv3-logo oli eräässä laajakangas-elokuvassa kuvan oikeassa yläreunassa mustan raidan alareunassa ja automatic eli ei –crop-mode-parametriä jätti logon leikkaamatta ja leikkasi saman verran elokuvan alareunaa. –start-at seconds:-lukuun on lisätty 0,68 sekuntia ja –stop-at seconds: onkin sitten mielenkiintoisempi laskutoimitus. Se ei nimittäin ole loppukohta vaan kesto aloituskohdasta ja siitä vastaavasti vähennetään 0,68 sekuntia, jotta päätyttäisiin loppukohtaan ilman siirtymää.

Uusi käytäntö

Nyt kun harjoittelu- ja kokeiluvaihe on ohi, en enää viitsi poistaa mainostaukoja, ne ohittaa tietokoneella katsoessa tosi nopeasti ja kätevästi, ihan eri tasoa kuin aikoinaan videonauhureilla katselupikakelaus, riippuen tosin katseluohjelmasta, mutta huonon voi aina vaihtaa parempaan. Poikkeuksena ehkä todella hyvät elokuvat, jotka sitten leikkaan ruudun tarkkuudella ja renderöin vaikka sillä tavalla tiedostokoko onkin noin 40 % suurempi, tosin mainostaukojen poisto tasoittaa suurimman osan kokoerosta. Kubrikin Hohto on ollut toistaiseksi ainoa sellainen elokuva lyhyen uuden käytännön aikana, joka tosin on ollut tosi lyhyt.

En ole viitsinyt kellottaa miten nopeasti käsittelen elokuvia Kdenlivellä, kun poistan vain turhat alusta ja lopusta, mutta äänipienoiskuvia Kdenlive ei ehdi tekemään ainakaan loppuosaan ajoissa, joten jälkimmäinen leikkaus on tehtävä ilman ääniraidan visuaalista apua. Ehkä siinä pari minuuttia menee.

Tärkein muutos kuitenkin on, että enää ei kannata kerätä testiaineistoa, tallenteiden käsittely on vaivatonta ja nopeaa sekä sen voi tehdä jo seuraavana päivänä tai odottaa kunnes sähkö on seuraavan kerran halpaa. Kun töitä ei kerää, ei ole tarvetta kahdelle 18-ytimiselle Haswell-Xeonille, yksikin riittää.

Teen ehkä Kdenlivellä leikkaamisesta paremman videon ja siistin skriptiä sekä paketoin sen ladattavaksi, mutta tekstisisältö on tässä.