nrk.no

Årstider i sync: produksjonen av Nordlandsbanen minutt for minutt

Kategorier: Minutt for minutt,Nett-tv,Nettbrett & TV


Å synkronisere fire årstider er vanskeligere enn man skulle tro. Med fire ganger ti timer råmateriale, GPS-logger, Microsoft Excel og Adobe After Effects  gikk vi løs på oppgaven. Resultatet kan du se på NRK2 akkurat nå, eller på nettsidene til Nordlandsbanen: minutt for minutt, årstid for årstid.

Med Nordlandsbanen tar vi minutt for minutt-konseptet tilbake til Bergensbane-røttene, men med en vri: opplev alle de fire årstidene langs en svært variert jernbanestrekning. Foto: NRK

Veien til det ferdige produktet har dog vært lang. Bak ligger utallige timer med videokoding, og før det igjen mange timers arbeid for å sortere, filtrere og synkronisere åtte GPS-spor fra de fire togturene. Vi har søkt tips og hjelp utenfor NRK, men siden det later til å være få som har gjort et lignende arbeid før, tenkte vi å dele våre erfaringer med verden der ute.

Kamera på skinner

Oppsettet om bord i toget er forklart i denne artikkelen, men vi tar en kort oppsummering: Nordlandsbanen ble filmet med Sony XDcam, med GoPro Hero 2 og et Sony Handycam for effektbilder. For øvrig brukte vi et Canon XF305 til intervjuer og en del utsiktsbilder.

Fontkameraet var plassert på en spesialbygget kasse foran i lokomotivet. Ved å dytte kassen så langt fram på «dashbordet» i lokomotivet hver gang, og med et bilde av utsnittet fra forrige tur for hånden, kunne vi få noenlunde samme utsnitt på hvert opptak. Linsen som ble benyttet er en Canon HJ15ex8.5B KRSE-V, som demper vibrasjoner og bevegelser. Det trengtes, for NSB Di. 4 er en svært vibrerende kameraplattform.

Thomas Hellum og Jon Ståle Carlsen monterer frontkameraet i førerhytten på Di 4-lokomotivet.
Thomas Hellum og Jon Ståle Carlsen monterer frontkameraet i førerhytten på Di 4-lokomotivet. Foto: Sindre Skrede / NRKbeta

Hver tur ble logget av to separate GPS-systemer. Én hjemmesnekret versjon, bygget av NRKbetas egen Jon Ståle Carlsen, samt, som backup, en iPhone tilkoblet en BadElf GPS modifisert for bruk med ekstern antenne, og appen MobileLogger. Disse systemene logget lokomotivets posisjon èn gang hvert sekund.

Postproduksjon

27. september ble høsten på Nordlandsbanen filmet, og vi satt igjen med fire filmfiler, hver på nærmere ti timer. I tillegg hadde vi altså to GPS-spor for hver tur. Utfordringen var nå å synkronisere alt sammen: toget måtte være på samme sted til samme tid i hver av de fire filmfilene. I utgangspunktet høres det jo ikke så vanskelig ut: startpunktet kan man finne ganske enkelt, og det er ikke vanskelig å finne punktet hvor toget ruller inn på stasjonen i Bodø. Men, selv om NSB var flinke og holdt ruten på de fire turene vi gjorde, ligger opptakene ofte flere kilometer fra hverandre; problemene oppstår når toget kjører 2-3 km/t saktere i en sving, stopper to minutter lenger på en stasjon, eller må vente på et kryssende tog på vinteren der det ikke trengte å gjøre det om sommeren.

Hadde vi bare startet alle de fire videostrømmene samtidig, ville toget vært på vidt forskjellig sted etter få minutter. Det ville gjort det både vanskelig og unaturlig å klippe mellom årstidene, både for dem som skulle klippe TV-sendingen, og for dere som på nettsiden får klippe mellom årstidene selv.

NRKbetas Jon Ståle Carlsen er mannen som har logget GPS-spor, kodet programmer og hatt ansvaret for rendring av opptakene på Nordlandsbanen minutt for minutt.

For å klare å synkronisere klippene, måtte først GPS-dataene samkjøres og filtreres. Tunneler er for eksempel steder hvor GPS-signalene ikke kommer frem, og hvor posisjonsloggene har svært sprikende posisjonsdata. Siden filmen vi har tatt opp har 25 bilder per sekund, måtte vi også interpolere data mellom hver posisjon i dokumentene våre. Slik kunne hvert bilde i filmstrømmen få tildelt sin egen posisjon.

Med 25 bilder per sekund og omtrent 10 timer i fire videoer, skulle det bli noe sånt som 3.6 millioner bilder som skulle samkjøres. Vi valgte å la sommer-klippet bli hovedklippet, og la de tre andre videostrømmene synkroniseres mot dette.

Synkronisering

Di. 4 655 klar til avgang fra Trondheim. Foto: Martin Steinholt/NRK

Ved hjelp av Microsoft Excel beregnet vi et gjennomsitt av GPS-dataene fra sommerturen lineært opp fra 1 Hz til 25 Hz, for å ha togets posisjon for hvert eneste av de nær en million bildene sommerturen består av.

Disse dataene ble så skrevet til en PostgreSQL-database, i tillegg til 1 Hz-loggene fra de tre andre årstidene. Vi skrev deretter et script som for hver av 1 Hz-posisjonene til vinter-, vår- og høstfilm spurte databasen om hva som var nærmeste posisjon for sommerturen. Ut fikk vi tidspunktet for når vinter-, vår og høstfilmene var på samme sted som sommeropptaket. Slik satt vi igjen med en tabell for hver av turene, som bestod av to tidspunkt: det første var klokkeslettet turen var på et gitt sted, og det andre var tidspunktet sommerturen var på det samme stedet. Helt nøyaktig ble det naturligvis ikke, siden GPS-signalene hadde en nøyaktighet på omtrent ti meter i fart, og noe dårligere når toget gikk sakte.

Listene over tidskoder kunne vi så bruke til å kontinuerlig styre hastigheten på vinter-, vår- og høstvideofilene slik at de kom i synk med sommervideoen. Den jobben ble gjort med Adobe After Effetcs, som har en funksjon som heter “time remapping”. I tillegg til å trinnløst kunne regulere hastigheten på videoene via keyframes, lar programmet oss også kopiere verdiene av alle keyframes som ren tekst via clipboardet.

Screenshot fra After Effects
Bildet viser høstopptaket før vi tilpasser det til sommeropptaket. Vi ser at tiden er lineær, altså at èn rute inn = èn rute ut. Det er også kun to keyframes, i begynnelsen og slutten av opptaket. Keyframes er steder hvor visse parametere er endret, så som hastighet, størrelse på filmruten og lignende. Jo flere keyframes, jo flere endringer i råfilen.

Om vi kopierer ut keyframedataene fra denne som tekst, vil det se slik ut:

Adobe After Effects 8.0 Keyframe Data

Units Per Second 90
Source Width 1920
Source Height 1080
Source Pixel Aspect Ratio 1
Comp Pixel Aspect Ratio 1

Time Remap
Frame seconds
0 0
892026 9911.4

End of Keyframe Data

Det vi er ute etter her er verdiene under frame og seconds. Frame er hvilken rute i tidslinjen keyframen ligger på, og seconds er hvilken tid i videofilen som skal vises der.

Den observante leser har sikkert allerede lagt merke til at vi opererer med 90 bilder per sekund i After Effects-prosjektet. Grunnen til det er enkel: programmet støtter ikke tidslinjer på mer enn tre timer. Til gjengjeld støtter det opp til 99.99 bilder per sekund. Vi klarte derfor å lure det til, ved å la programmet tolke våre 25 fps-filer som 90 fps. Da ble sekvensene på rundt to timer og tre kvarter, som lot oss holde filene i en tidslinje.

Når vi så genererte nye keyframes basert på de PostgreSQL-beregnede GPS-dataene, blir det seende slik ut:

Adobe After Effects 8.0 Keyframe Data

Units Per Second 90
Source Width 1920
Source Height 1080
Source Pixel Aspect Ratio 1
Comp Pixel Aspect Ratio 1

Time Remap
Frame seconds
990 0.0
990 1.0
—– —–
3600 82.0
3675 83.0
3761 84.0
3841 85.0
3927 86.0
4010 87.0
4089 88.0
4176 89.0
4251 90.0
4341 91.0
4420 92.0
—– —–
3201886 35380.0
3201886 35381.0

End of Keyframe Data

(det er over 32.000 rader, så listen er forkortet en god del)

Når vi så limer inn de over 32.000 radene som keyframes via clipboardet blir det seende slik ut:

Nye keyframes er kopiert inn i After Effects

Tiden går fortsatt fremover, men som man ser er det nå trettito tusen keyframes i stedet for to. Noen steder kan man også se at tiden står stille (horisontale linjer), eller hopper (vertikale linjer).

Programmet har nå fått beskjed om hvilke biter av opptaket som skal gå saktere og hvilke som eventuelt skal gå fortere, og hvor opptaket skal stå i ro. Etter å ha fått disse beskjedene, må filmfilene rendres. Rendering vil si at programmet ‘skriver ut’ filmfilene med de endringene vi ønsker. Dette krever mye av datamaskinen som skal skrive ut filene, og jo lengre råklippene er og jo mer kompliserte effekter vi bruker, jo lenger tid tar det å rendre.

Etter å ha rendret i rundt 20 timer for hvert klipp, satt vi igjen med synkroniserte filer i ProRes 422. De spilte selvsagt av med 90 bilder per sekund fremdeles, men ved hjelp av Apples Cinema Tools kunne vi redusere dette tilbake til 25 bilder per sekund.

Resultatet er at vi kan kjøre de fire videosporene helt synkront — toget er på samme sted til samme tid:

TV-klipp og koding for web

Å klippe et så langt TV-program er ikke bare-bare, forteller redigerer i NRK Hordaland, Peter Goga.

— Det kan kanskje virke som om det er et helt standard TV-program, men et prosjekt som er nesten ti timer langt, ganget med fire, som skal settes sammen på fire uker, krever at man har en streng struktur for ikke å miste oversikten, sier han.

— Vi så først gjennom sommer-opptaket med sidekamera, for å finne ut hvor det kan være fint å se til siden. Når det var gjort måtte vi finne ut hva vi ville ha med fra de fire årstidene. Dogmet er at vi skal vise intervjuer der de er gjort på turen, og i rett sesong, så det la jo litt føringer på hvilken sesong som kan vises når, sier han.

Med musikk, arkivklipp, teksting, stedsnavn og skifte mellom årstider og kameravinker blir det fort et komplisert prosjekt å holde styr på. Og, på tross av alle forberedelser, var ikke utsnittet 100 % likt mellom alle opptakene:

— Når man må justere litt på utsnittet i hver eneste overgang man lager gjennom et ti timer langt program, tar det jo litt tid, sier Goga.

TV-versjonen av Nordlandsbanen under klipping. 21 videospor og 17 lydspor gjør at det har vært nok å holde styr på for redigerer Petter Goga i NRK Hordaland. Foto: Petter Goga

I tillegg til de fire årstids-filene vi kodet i NRKbeta laget vi også en fil bestående av alle de fire i en quad-split, samt at vi etter hvert fikk over det ferdige tv-programmet fra Bergen. Totalt ble det seks filer på nesten ti timer hver.

Alt dette skulle så kodes for web, noe som med den nye avspilleren til NRK vil si at alle filer kodes i fem ulike H.264-kvaliteter, fra 320×180 pixler på 141kb/s til 1280x720px på 2250 kb/s. Dette for at spilleren vår hele tiden kan gi dere den beste kvaliteten linjen og maskinen deres kan gjengi. I tillegg kodet vi de fire årstidskvalitetene i WebM, slik for at vår eksperimentelle videomikser skulle fungere i flest mulig nettlesere. Helt til slutt kodet vi også de fire årstidene i 1920×1080, for å la dere laste dem ned via bittorrent.

Totalt har vi da kodet ca 380 timer med web-video til dette prosjektet. Til alt av H.264-video benyttet vi det kommandolinjebaserte FFMBC med x264. FFMBC er en avart av den mer kjente FFMPEG, men som har en del spesialtilpasninger for diverse videokodecer etc. som brukes i kringkasting, og x264 er den desidert beste H.264-encoderen som finnes. Til WebM-encodingen benyttet vi Miro Video Converter.

Videospiller

forsiden av nrk.no/nordlandsbanen

Videospilleren på forsiden lar deg navigere i videoinnholdet via kartet, eller en tradisjonell tidslinje. Den lar deg også velge om du vil se tv-sendingen, en av de fire årstidene eller quadsplit-videoen ved å klikke på ikonene under videovinduet. I tillegg har vår egen Henrik Lied kodet en videomikser i HTML5. Med den får du mulighet til å mikse sammen årstidene selv, med forskjellige overgangseffekter. Mikseren er eksperimentell, og må betraktes som en tidlig betaversjon, som kun fungerer på desktop, og i topp moderne nettlesere, som siste versjon av enten Google Chrome, Safari, Firefox og Internet Explorer 10.

En eksperimentell versjon av NRKbetas videomikser.

 

Du kan se Nordlandsbanen minutt for minutt i dag på NRK2, eller på nrk.no/nordlandsbanen. Vi legger også ut filene for nedlasting via bittorrent, linker og forklaring finner du i denne saken.

15 kommentarer

    • Rune Møklebust (svar til Petter)

      Samme klippar på heile turen. Forkjellen sør og nord for Mo var at vi hadde helikopterfoto frå Mo og nord til eit stykke oppå Saltfjellet. Det vart feil å legge desse flott bilda i lite vindu.

  1. Et utrolig flott resultat, som dere kan være stolte av.

    Da venter vi i spenning på neste prosjekt. Hva med Ofotbanen? Bør i såfall filmes nedover, dvs. fra grensen til Narvik. Raumabanen burde også være en aktuell kandidat?

    Svar på denne kommentaren

    • Arve Bjølgerud (svar til Roar)

      Hei jeg er helt enig at det bør komme flere slike programmer som Dovrebanen fra Tronheim til Oslo S
      , Raumabanen, Sørlandsbanen og mange flere.

    • Riksgränsen – Narvik er en fin, men kort tur, så når man først må samarbeide med svenskene (som kjører strekningen) kunne man kanskje tatt med hele eller deler av Malmbanan i samme slengen? Kiruna – Narvik tar 3 timer og har vært kåret til svenskenes fineste strekning. Luleå – Narvik strekker seg fra kyst til kyst og tar 7 timer.

    • Sindre Skrede (NRK) (svar til Dan)

      Hei Dan!

      Jeg var ikke med på sommeropptaket, så jeg vet ikke om det ble tatt opp samtidig, men jeg tror det var tilfellet. Helikoptertimer er dyrt, så det ble – såvidt jeg har oppfattet – kombinert med opptak av andre deler av Nordland.

      Kameraet som ble brukt er Cineflexen til NRK, den samme som ble brukt under Hurtigruten minutt for minutt (Cineflex V14).

    • Rune Møklebust (svar til Dan)

      Helikopteropptaket gjort 4. juli, ikkje samme dag som sommaropptaket, men det var kun nokre dagar mellomrom. Kun opptak frå Mo i Rana til eit stykke opp på Saltfjellet.

  2. Hello there,

    Tried to open the stream/video player, but it doesn’t seem to work
    (Chrome 89 and Firefox 87, Windows 7 64-bit)

    What do we need to do in order to make the seasonal streams play?

    Svar på denne kommentaren

Legg igjen en kommentar til Petter Avbryt svar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *. Les vår personvernserklæring for informasjon om hvilke data vi lagrer om deg som kommenterer.