twenty-first century code monkey

comskip – spring reklamerne over

Efter to måneders pause er det vist på tide at få gang i bloggen igen. Jeg må indrømme sommerpausen blev lidt længere end jeg havde planlagt, men det betyder ikke at XBMC har været skrinlagt for mit vedkommende: i starten af august blev DR NU og GameTest addon’erne opdateret.

Jeg har også fået lidt mere erfaring med mit tvheadend setup. Det der irriterer mig mest for tiden er at min OUYA har problemer med at afspille 1080i indhold. Det kommer sådan nogle lodrette striber i billedet så det er totalt ubrugeligt, men så vidt jeg er orienteret er det noget der bliver arbejdet på.
Jeg har eksperimenteret lidt med comskip som post-processing script i tvheadend. Comskip analyserer den videofil som tvheadend har optaget og laver en såkaldt EDL fil med de sektioner af videoen som indeholder reklamer. XBMC læser så EDL filen og springer reklamepauserne over. Det fungerer rimelig godt, men den fanger ikke altid det hele med de standard indstillinger jeg har fået prøvet ind til videre.

Comskip findes til Windows og der er en test version ude til Linux som jeg har brugt. Jeg har mit tvheadend setup kørende på en Debian Linux, så der skal som sædvanlig lidt krumspring til for at få det hele compilet. 🙂 Det er prisen for at vælge stabil server software frem for bleeding edge.

Først trin i vores totrinsraket er at hente den nyeste ffmpeg og compile den.

$ wget https://ffmpeg.org/releases/ffmpeg-2.0.1.tar.bz2
$ tar xf ffmpeg-2.0.1.tar.bz2
$ ./configure --prefix=/var/tmp/comskip-ffmpeg-2.0.1-install
$ make -j 4
$ make install

Jeg har valgt at angive –prefix så ffmpeg installeres et andet sted end standard. Det er så jeg undgået at “forurene” min Debian installation. Der skal muligvis installeres nogle yderligere dependencies i dit Linux system, men jeg havde allerede alt det jeg skulle bruge.

Andet trin er at hente og compile comskip.

$ wget http://www.xilka.com/xilka/source/comskip-0.93e.tar.xz
$ tar xf comskip-0.93e.tar.xz
$ PKG_CONFIG_PATH=/var/tmp/comskip-ffmpeg-2.0.1-install/lib/pkgconfig ./configure
$ make -j 4

PKG_CONFIG_PATH skal pege på den sti du angiv som –prefix tidligere. Det gør at ffmpeg findes i den sti i stedet for systemets standard sti. Herefter er det blot at køre comskip og lade den analysere video filen.

$ ./comskip /srv/tvheadend-recordings/Nyhederne.mkv

Når comskip er færdig, det kan godt tage nogle minutter, så ligger der en hel række filer med samme filnavn, men med andre filendelser, bl.a. EDL filen som jeg nævnte tidligere.

Det sidste trick er at få tvheadend til at køre comskip, når den er færdig med at optage et program. Det gøres let ved at gå ind på tvheadends webinterface, vælge Configuration og Recording og herefter indtaste Post-processor command. Jeg er stødt på nogle scripts på nettet som laver nogle forskellige ting inden de kalder comskip, men personligt kører jeg bare comskip direkte med denne command:

/usr/src/comskip-0.93e/comskip -t %f

Som nævnt fungerer det ikke perfekt, fx fanger den ikke rigtig de reklamer Discovery kører for deres andre programmer inden de rigtige reklamer kommer. Comskip har en helt række indstillinger, så det er formentlig til at tweake så det fungerer bedre.
En anden vigtig detalje er at det kræver XBMC Gotham for at EDL filerne kan hentes direkte fra tvheadend. Kører du Frodo, som jeg gør, så må du afspille filerne via en lokal disk eller et samba netværksdrev i stedet for ellers springer XBMC ikke reklamepauserne over.

Hvis nogen af jer har kendskab til en god opsætning til comskip så vil jeg mægtig gerne høre om det 🙂

2 Kommentarer

  1. Thomas Selmer

    Sejt, det lyder da også som noget jeg skal prøve.

  2. Kenneth Skytthe

    Ved godt dette er en gammel post, men jeg prøvede at sætte dette op og jeg har lige et par noter jeg ville dele.

    1. Den seneste version af comskip er: http://www.xilka.com/xilka/source/comskip-0.93h.tar.xz

    2. Du skal bruge ffmpeg 2, da ffmpeg 3 ikke er understøttet af comskip

    3. jeg skulle også installere argtable2, som kan findes med apt-get install libargtable2-dev

© 2020 Tommy Winther

Tema af Anders NorenOp ↑