Tvheadend, Yleisradion tekstitykset ja tallentaminen

Vaihtoehtoja VDR:lle? Keskustele vapaasti muista vastaavista järjestelmistä
antoine
Asiantuntija
Posts: 146
Joined: 20.04.2009 18:29
Location: Hämeenkyrö

Tvheadend, Yleisradion tekstitykset ja tallentaminen

Post by antoine »

Useimmat niistä, jotka em. ohjelmiston parissa ovat hääränneet, ovat varmaankin havainneet tämän kolmikon jokseenkin ongelmalliseksi. DVB-tekstit näkyvät moitteettomasti toistettaessa suoraa lähetystä (ainakin xbmc:llä). Toisaalta tekstitykset otetaan nykyisin mukaan myös matroska-tallenteisiin uudenlaisina S_DVBSUB-tyyppisinä tekstitysraitoina. Tästä ongelmat kuitenkin oikeastaan vasta alkavat, sillä moinen formaatti on useimmille mediatoisto-ohjelmistoille ilmeisesti jokseenkin tuntematon käsite.

Nähdäkseni helpoin ja suurimman yhteensopivuuden varmistava ratkaisu on muuntaa tekstitysraidat varsin yleisesti tunnettuun (ja tuettuun) VobSub-muotoon. Koska VobSub (samoin kuin DVBsub) on rasterimuotoinen formaatti, vältytään toisaalta hankalalta tekstintunnistusoperaatiolta ja voidaan toisaalta säilyttää tekstit (lähes) alkuperäisessä asussaan halki koko tallennus-varastointi-toisto-ketjun.

Edellä kuvattu muunnos voidaan toisaalta toteuttaa ainakin kahdella tavalla: ensinnäkin voidaan muuntaa TV-lähetyksen mukana saapuva bittivirta sitä mukaa kuin sitä vastaanotetaan ja kirjoittaa matroskaan suoraan S_VOBSUB-raitoja; tällöin on muokattava Tvheadendin omaa koodia. Toiseksi voidaan antaa tekstitysten tallentua kuten nytkin ja muuntaa ne vasta jälkikäteen; tähän tarvitaan oma ohjelmistonsa.

Mukana olevat puukotustiedostot ovat oma, alustava ratkaisuni tähän ongelmaan. Huomatkaa, että kirjoittamani dvbsub-dekooderi (ks. kumpaankin pakettiin sisältyvät tiedostot dvbsub.c ja .h) on rakennettu vain Suomen ja YLE:n olosuhteisiin: se ei toteuta mitenkään täydellisesti virallista DVB-tekstitysspesifikaatiota. Jo Yle HD -kanavakin poikkeaa sen verran normaalitarkkuuksisista sisaristaan, ettei dekooderi tulkitse siellä lähetettyjä tekstejä täysin oikein. Jos kuka viitsii, laajentakoon toteutusta erityisesti tältä osin. Vaikka koodini kommentointi onkin ulkomaankielistä, ei sitä nykyisellään juuri kannata siis ulkomaille tarjota.

Lisäys: kolmaskin ratkaisu alkuperäiseen ongelmaan tulee kysymykseen, nimittäin videon uudelleenkoodaaminen ja DVB-tekstitysten polttaminen siinä yhteydessä sellaisenaan kiinni kuvaan. Tämä edellyttää omia muokkauksiaan videon muunto-ohjelmistoon. Itse muunnan kaikki tallennukset automaattisesti (h.264+aac-) mp4-muotoon HandBraken avulla; alla on kyseinen puukotus toteutettu siihen - tällä erää DVB-tekstit ovat kuitenkin käytettävissä vain komentorivikäyttöliittymästä (HandBrakeCLI) käsin. Huomatkaa, että molemmat muut patchit jäävät tarpeettomiksi, jos tämä on käytössä.

Tvheadend - tallenna s_dvbsubin sijasta s_vobsub-raitoja -- git-versio 19.7.2017:
tvheadend-20170719-vobsub.diff.tgz
(8.8 KiB) Downloaded 205 times
Mkvextract (mkvtoolnix) - s_dvbsub-raitojen muuntaminen ja kirjoittaminen .idx- ja .sub-tiedostoiksi (komennolla 'mkvextract tracks') -- git-versio 19.7.2017:
mkvtoolnix-20170719-dvb2vobsub.diff.tgz
(11.19 KiB) Downloaded 189 times
HandBrake - tuki s_dvbsub-raitojen lukemiseen (ffmpeg:n kautta) ja kiinni polttamiseen (komentoriviltä) -- git-versio 13.11.2019:
handbrake-20191113-dvbsub.diff.tgz
(10.58 KiB) Downloaded 124 times
XBMC - ks. https://www.lonelycoder.com/redmine/boa ... ssage-1568

9/2011: tvheadend- ja mkvtoolnix-patchien päivitys: koodin rakennetta, muistinkäsittelyä ja standardinmukaisuutta parannettu; HandBrake-patch lisätty
4/2012: XBMC-linkki lisätty
7/2012: paikkaukset päivitetty
7/2014: paikkaukset päivitetty
7/2015: paikkaukset päivitetty, ruudulle jämähtävät tekstit korjattu
7/2016: paikkaukset päivitetty
7-8/2017: paikkaukset päivitetty
11/2019: Handbrake-paikkaus päivitetty
Last edited by antoine on 13.11.2019 18:59, edited 11 times in total.
tvheadend @arch linux @rpi → itunes @imac → apple tv

Köntzä
Vastasyntynyt
Posts: 9
Joined: 08.01.2007 16:55
Location: Joensuu

Re: Tvheadend, Yleisradion tekstitykset ja tallentaminen

Post by Köntzä »

Moi,

Mihin mkvtoolnix-versioon olet tuon puukotuksen tehnyt?
EDIT: DUH, siinähän se patch-filussa näkyy...

ps. Hienoa, että olet tehnyt tämän työn! Kohta vuosi sitten 'erehdyin' käyttämään jonkun aikaa tvheadendiä, mutta huomasin juurikin tuon tekstitys-ongelman itselleni ylitsepääsemättömäksi ja palasin VDR:ään. Muuten kyllä tykkäsin tvheadendistä, web-ui oli jonkinverran mukavampi käyttää kuin VDR:n vastaavat. Ehkä joskus kokeilen taas tvheadendiä kun DVBSUB on laajemmin tuettu muissa softissa.
--
jussi

antoine
Asiantuntija
Posts: 146
Joined: 20.04.2009 18:29
Location: Hämeenkyrö

Re: Tvheadend, Yleisradion tekstitykset ja tallentaminen

Post by antoine »

Terve,

itselläni on tätä nykyä tuo handbrake-patch ihan tuotantokäytössä asenna-ja-unohda-periaatteella - tekstit näkyvät täsmälleen samoin niin yleltä kuin mainoskanaviltakin nauhoitetuissa ohjelmissa ja missä toisto-ohjelmistossa tahansa.

Eivät kai tekstitykset VDR:n tekemissä ts-tallenteissa ole muille ohjelmille mitenkään sen helpompia näyttää - samassa dvbsub-formaatissahan nekin ovat.

Pistänpä muuten tännekin puolelle linkin vdr-tallenteiden tekstien käsittelyyn: viewtopic.php?f=12&t=4515
tvheadend @arch linux @rpi → itunes @imac → apple tv

Köntzä
Vastasyntynyt
Posts: 9
Joined: 08.01.2007 16:55
Location: Joensuu

Re: Tvheadend, Yleisradion tekstitykset ja tallentaminen

Post by Köntzä »

antoine wrote:Terve,

Eivät kai tekstitykset VDR:n tekemissä ts-tallenteissa ole muille ohjelmille mitenkään sen helpompia näyttää - samassa dvbsub-formaatissahan nekin ovat.
Mulla Oneiricin tehdasasenteinen VLC näyttää tekstit VDR:n YLE-tallenne-TS-filuista.

Sama VLC ei osaa tvheadendin tekstejä osaa näyttää. Tunnistaa kyllä, että siellä on suomenkielinen tekstitysstreami, mutta lopulta sanoo:"VLC does not support the audio or video format "undf". Unfortunately there is no way for you to fix this."

Alla vertailussa mukana olleiden tallenteiden tulokset tekstitysstreamien osalta otettuna mediainfo -sovelluksella.

VDR tallenne
------------------------------------------------------------
ID : 4027 (0xFBB)
Menu ID : 132 (0x84)
Format : DVB Subtitle
Codec ID : 6
Language : Finnish


TV Headend tallenne
------------------------------------------------------------
ID : 4
Format : S_DVBSUB
Codec ID : S_DVBSUB
Language : Finnish


mkvtoolnix-patchin käyttöönotossa kävi mulla joku kämmi, kun tulostiedostojen tulos semmoinen, että IDX-filessä oli tavaraa, mutta SUB-file oli nollatavuinen :(
--
jussi

antoine
Asiantuntija
Posts: 146
Joined: 20.04.2009 18:29
Location: Hämeenkyrö

Re: Tvheadend, Yleisradion tekstitykset ja tallentaminen

Post by antoine »

Hyvä on sitten jos osaa. Vlc ei sitten ilmeisesti tarvitsisi kummoistakaan puukottamista jotta sen saisi tulkitsemaan oikein myös mkv-raidoista tulevaa dvbsub-dataa.

Koitapas lisätä mkvextract-komennon alkuun ympäristömuuttuja 'SUB_VERBOSE=3'. Tällöin ohjelman pitäisi tulostaa tietoa löytämistään teksteistä. Jos nappaat ffmpegillä sopivankokoisen pätkän videota sellaiselta kohdalta, missä tekstejä pitäisi olla, ja pistät jonnekin saataville, voisin tutkia asiaa.
tvheadend @arch linux @rpi → itunes @imac → apple tv

Köntzä
Vastasyntynyt
Posts: 9
Joined: 08.01.2007 16:55
Location: Joensuu

Re: Tvheadend, Yleisradion tekstitykset ja tallentaminen

Post by Köntzä »

FYI: löytyihän se syy 0-tavuisiin sub-filuihin. Yritin mkvextractilla ottaa mkv-filusta ulos tekstistremia, joka mun koetiedostossa on italiankielinen tekstitys. Kun vaihdoin sen tilalle stream 3:n, niin johan tuli sub-filuunkin tavaraa. Eikun koodaamaan, notta saan muutkin tekstistreamit ulos videosta...

EDIT: ei pitäisi tällä ikää enää liian myöhään tehdä mitään liian vaikeaa :) Ei kait siihen sub-filuun mitään tule jos ko. streamissä ei ole mitään mitä sinne kirjoittaa...
--
jussi

vesajok
Vastasyntynyt
Posts: 1
Joined: 17.01.2012 19:42

Re: Tvheadend, Yleisradion tekstitykset ja tallentaminen

Post by vesajok »

Lyhyt kysymys. Miten nuo tvheadendin patchit asennetaan?

antoine
Asiantuntija
Posts: 146
Joined: 20.04.2009 18:29
Location: Hämeenkyrö

Re: Tvheadend, Yleisradion tekstitykset ja tallentaminen

Post by antoine »

Hakemistosta, johon olet hakenut lähdekoodin (git clone https://github.com/andoma/tvheadend.git), siirryt uuteen hakemistoon 'tvheadend' ja komennat

Code: Select all

patch -p1 < ~/vobsub.patch
(sikäli kuin tiedosto sijaitsee kotihakemistossasi).
Tämän jälkeen normaalisti ./configure, make ja make install.
tvheadend @arch linux @rpi → itunes @imac → apple tv

ae99
Vastasyntynyt
Posts: 2
Joined: 20.01.2012 0:32

Re: Tvheadend, Yleisradion tekstitykset ja tallentaminen

Post by ae99 »

Moi,

Jos tarkoituksena on vaan katsella ylen dvb-tekstitettyjä tallenuksia XBMC:llä, onnistuu homma kätevästi yhden rivin patchilla XBMC:n sourceen. Eli:

Code: Select all

diff --git a/lib/ffmpeg/libavformat/matroska.c b/lib/ffmpeg/libavformat/matroska.c
index c7e9663..ea77bdc 100644
--- a/lib/ffmpeg/libavformat/matroska.c
+++ b/lib/ffmpeg/libavformat/matroska.c
@@ -58,6 +58,7 @@ const CodecTags ff_mkv_codec_tags[]={
     {"S_TEXT/SSA"       , CODEC_ID_SSA},
     {"S_ASS"            , CODEC_ID_SSA},
     {"S_SSA"            , CODEC_ID_SSA},
+    {"S_DVBSUB"         , CODEC_ID_DVB_SUBTITLE},
     {"S_VOBSUB"         , CODEC_ID_DVD_SUBTITLE},
     {"S_HDMV/PGS"       , CODEC_ID_HDMV_PGS_SUBTITLE},
Tätä olen itse käyttänyt jo pitkään ja on toimivaksi todettu. Huom! Ei ole omaa tekoa vaan löytyi tvheadendin forumilta. Kiitokset "Mikolle"! :D

savis21
Säätäjä
Posts: 210
Joined: 29.03.2009 14:09

Re: Tvheadend, Yleisradion tekstitykset ja tallentaminen

Post by savis21 »

ae99 wrote:Moi,

Jos tarkoituksena on vaan katsella ylen dvb-tekstitettyjä tallenuksia XBMC:llä, onnistuu homma kätevästi yhden rivin patchilla XBMC:n sourceen. Eli:

Code: Select all

diff --git a/lib/ffmpeg/libavformat/matroska.c b/lib/ffmpeg/libavformat/matroska.c
index c7e9663..ea77bdc 100644
--- a/lib/ffmpeg/libavformat/matroska.c
+++ b/lib/ffmpeg/libavformat/matroska.c
@@ -58,6 +58,7 @@ const CodecTags ff_mkv_codec_tags[]={
     {"S_TEXT/SSA"       , CODEC_ID_SSA},
     {"S_ASS"            , CODEC_ID_SSA},
     {"S_SSA"            , CODEC_ID_SSA},
+    {"S_DVBSUB"         , CODEC_ID_DVB_SUBTITLE},
     {"S_VOBSUB"         , CODEC_ID_DVD_SUBTITLE},
     {"S_HDMV/PGS"       , CODEC_ID_HDMV_PGS_SUBTITLE},
Tätä olen itse käyttänyt jo pitkään ja on toimivaksi todettu. Huom! Ei ole omaa tekoa vaan löytyi tvheadendin forumilta. Kiitokset "Mikolle"! :D
Moi! Mistä olet hakenut nuo XBMC:n sourcet ts. mihin versioon olet tehnyt muokkauksen? Ja miten tuo XBMC:n käännös tehdään?

ae99
Vastasyntynyt
Posts: 2
Joined: 20.01.2012 0:32

Re: Tvheadend, Yleisradion tekstitykset ja tallentaminen

Post by ae99 »

savis21 wrote:
ae99 wrote:Moi,

Jos tarkoituksena on vaan katsella ylen dvb-tekstitettyjä tallenuksia XBMC:llä, onnistuu homma kätevästi yhden rivin patchilla XBMC:n sourceen. Eli:

Code: Select all

diff --git a/lib/ffmpeg/libavformat/matroska.c b/lib/ffmpeg/libavformat/matroska.c
index c7e9663..ea77bdc 100644
--- a/lib/ffmpeg/libavformat/matroska.c
+++ b/lib/ffmpeg/libavformat/matroska.c
@@ -58,6 +58,7 @@ const CodecTags ff_mkv_codec_tags[]={
     {"S_TEXT/SSA"       , CODEC_ID_SSA},
     {"S_ASS"            , CODEC_ID_SSA},
     {"S_SSA"            , CODEC_ID_SSA},
+    {"S_DVBSUB"         , CODEC_ID_DVB_SUBTITLE},
     {"S_VOBSUB"         , CODEC_ID_DVD_SUBTITLE},
     {"S_HDMV/PGS"       , CODEC_ID_HDMV_PGS_SUBTITLE},
Tätä olen itse käyttänyt jo pitkään ja on toimivaksi todettu. Huom! Ei ole omaa tekoa vaan löytyi tvheadendin forumilta. Kiitokset "Mikolle"! :D
Moi! Mistä olet hakenut nuo XBMC:n sourcet ts. mihin versioon olet tehnyt muokkauksen? Ja miten tuo XBMC:n käännös tehdään?
Joo eli siis homma menee jokseenkin näin:
- Lataa xbmc-source koneelle: git clone https://github.com/opdenkamp/xbmc.git xbmc-pvr
- cd xbmc-pvr
- tallenna ylläoleva patch tiedostoon dvbsubpatch: nano dvbsubpatch -> copy/paste, ctrl-X
- git apply dvbsubpatch

XBMC:n käännösohjeet löytyy README.ubuntu filestä, mutta lyhyesti:
- asenna tarvittavat paketit (sudo apt-get install ...)
- cd xbmc-pvr
- ./bootstrap
- ./configure --prefix=/usr
- make
- sudo make install

milahti
Vastasyntynyt
Posts: 1
Joined: 14.04.2012 15:23

Re: Tvheadend, Yleisradion tekstitykset ja tallentaminen

Post by milahti »

ae99 wrote:
Joo eli siis homma menee jokseenkin näin:
- Lataa xbmc-source koneelle: git clone https://github.com/opdenkamp/xbmc.git xbmc-pvr
- cd xbmc-pvr
- tallenna ylläoleva patch tiedostoon dvbsubpatch: nano dvbsubpatch -> copy/paste, ctrl-X
- git apply dvbsubpatch

XBMC:n käännösohjeet löytyy README.ubuntu filestä, mutta lyhyesti:
- asenna tarvittavat paketit (sudo apt-get install ...)
- cd xbmc-pvr
- ./bootstrap
- ./configure --prefix=/usr
- make
- sudo make install
Kohtuu noviisina käyttäjänä mietin, että mitä tapahtuu automaattisille päivityksille jos lähden tälle tielle? Nykyisellään xbmc-pvr päivittyy mukavan automaattisesti, mutta entä jos teen tämän patchin?

nm
Johtava konsultti
Posts: 3160
Joined: 22.07.2005 3:00

Re: Tvheadend, Yleisradion tekstitykset ja tallentaminen

Post by nm »

milahti wrote: Kohtuu noviisina käyttäjänä mietin, että mitä tapahtuu automaattisille päivityksille jos lähden tälle tielle? Nykyisellään xbmc-pvr päivittyy mukavan automaattisesti, mutta entä jos teen tämän patchin?
Joudut päivittämään XBMC:n aina manuaalisesti (tai skriptillä, jonka voi vaikkapa ajaa cronin avulla kuukausittain). Jos et poista repositoriosta asennettua XBMC-pakettia, paikattu versio korvautuu paikkaamattomalla seuraavassa päivityksessä.

antoine
Asiantuntija
Posts: 146
Joined: 20.04.2009 18:29
Location: Hämeenkyrö

Re: Tvheadend, Yleisradion tekstitykset ja tallentaminen

Post by antoine »

Totesin, että Handbraken koodiin on hiljattain (tarkemmin sanoen svn-revisiossa 4546) tehty niin massiivisia rakenteellisia muutoksia, että esittämäni paikkaus ei ole ollenkaan triviaalisti sovellettavissa siihen - varhaisemmat versiot toimivat. Yllä esitetty xbmc- (tosiasiassa ffmpeg-) muokkaus muuten sisältyy myös tähän paikkaukseen.

Lisään linkin mainittuun xbmc-muokkaukseen ketjun ylimpään viestiin. Voitaisiinko ajatella, että tarkempi keskustelu xbmc:n kääntämisestä yms. siihen liittyvästä (kuten muistakin toisto-ohjelmistoista) käytäisiin sitten omassa ketjussaan.
tvheadend @arch linux @rpi → itunes @imac → apple tv

johu
Vastasyntynyt
Posts: 2
Joined: 09.06.2012 16:36

Re: Tvheadend, Yleisradion tekstitykset ja tallentaminen

Post by johu »

antoine wrote:Totesin, että Handbraken koodiin on hiljattain (tarkemmin sanoen svn-revisiossa 4546) tehty niin massiivisia rakenteellisia muutoksia, että esittämäni paikkaus ei ole ollenkaan triviaalisti sovellettavissa siihen - varhaisemmat versiot toimivat. Yllä esitetty xbmc- (tosiasiassa ffmpeg-) muokkaus muuten sisältyy myös tähän paikkaukseen.
Nykyään kun mm. mkvtoolnix, VLC, XBMC ja Handbrake tukevat suoraan ilman mitään lisäpätsäyksiä BluRay PGS tekstejä voisi DVB ja VobSub formaattien sijaan harkita sen käyttöä Tvheadendin MKV tallenteissa? Siinä ei ole myöskään tuota ongelmaa paletin kanssa kun pystyy näyttämään enemmän kuin neljä väriä kerrallaan.

Omasta VDR .TS + DVB subs -> MKV + PGS subs viritelmästä löytyy selitys täältä.

Post Reply