2015-07-01

Teksti-tv:n purku transport streamista

Esimerkiksi Linux-pohjaiset Enigma2-digiboksit tallentaa ohjelmat transport stream (.ts)-muodossa.
Tästä transport streamista saa kaiveltua teksti-tv-lähetteen ja muunnettua sen tekstimuotoon.

Tarvitaan ohjelmat vtx2ascii ja jpvtx pakettienhallinnasta saatavien ohjelmien lisäksi.

1) Etsitään transport streamista tekstit-tv:n PID:
mediainfo 20141029\ 2057\ -\ Yle\ TV2\ HD\ -\ Syke.ts
Jonka tuloksesta löytyy että teksti-tv:n PID on 6037

2) Ohjelma jpvtx purkaa koko teksti-tv: sisällön hakemistoon /video/vtx.
Sijainnin pystyy lähdekoodista muuttamaan.
(Ohjelmalla xvtx-p sitä teksti-tv:tä voisi nyt katsella)
cat 20141029\ 2057\ -\ Yle\ TV2\ HD\ -\ Syke.ts |./jpvtx 6037

3) Muunnetaan yksi sivu tavalliseksi tekstitiedostoksi:
./vtx2ascii /video/vtx/1/112_00.vtx >out

4) Skandit näkyy vielä väärin, ne pitää muuttaa:
sed 's/\xBC/ä/g' out >out2 #ä
sed 's/\x7C/ö/g' out2 >out3 #ö
samoin kirjaimille å, Ä, Ö ja Å. Tämän varmaan voisi tehdä fiksumminkin.
Nuo heksadesimaaliarvot saa selville tutkimalla ensimmäistä out-tiedostoa vaikka bless-editorilla.


Ainakaan omalla kääntäjällä tuo jpvtx ei suoraan kääntynyt, vaan sitä piti hieman muuttaa.
Muutettu koodi pastebinissä. Tuo malloc-kohta on Googlesta löytyvien ohjeiden mukaan muutettu, en todellakaan tiennyt mitä olin tekemässä.