Kirjoittaja Aihe: TV-kanavien teletext -tekstityssivut  (Luettu 1295 kertaa)

jarmala

  • Käyttäjä
  • Viestejä: 398
    • Profiili
TV-kanavien teletext -tekstityssivut
« : 08.11.19 - klo:21.43 »
Norminmukaisen dvb-tekstyksen (tämä siis grafiikkana) lisäksi jotkut kanavat lähettävät myös tekstityksen teletext -sivuilla, joilla se on saatavissa esim. ProjectX:llä ulos silkkana tekstinä esim. srt-muodossa.

YLE:llä nämä sivut ovat TV1 451, TV2 452 ja Teema 453 (ja FEM aikoinaan 771).

Mutta tietääkö kukaan, millä sivulla on AVA:n teletext -tekstitys? Olen nyt guuglaillut sitä jo 15 minuuttia, eikä mistään tärppää. Kysynkin siis sitä täältä.

Tausta tähän kysymykseeni on se, että Avidemux ei osaa käsitellä dvb-tekstitystä ja hukkaa ne. FFMPEG:llä taas ei voi käytännössä leikata leffojen mainoskatkoja pois, koska ohjelma on komentorivipohjainen. ProjectX:llä SD-leffat voi leikata ja tekstit saa talteen srt:nä, jos vaan tietää, millä sivulla tekstitys on...



Ubuntu 18.04 LTS, Gnome Flashback Metacity, Xeon E3-1245 V2, 8 GB

nm

  • Käyttäjä
  • Viestejä: 13096
    • Profiili
Vs: TV-kanavien teletext -tekstityssivut
« Vastaus #1 : 08.11.19 - klo:22.26 »
Veikkaan, ettei AVA lähetä tekstitystä teksti-tv:n kautta.

Jos nyt oikein muistan, Ylen kanavillakin teletext-tekstitys on tarkoitettu satelliittivastaanottoon, ja siksi tekstityksessä on myös parin sekunnin aikaero kuvaan ja ääneen verrattuna.

jarmala

  • Käyttäjä
  • Viestejä: 398
    • Profiili
Vs: TV-kanavien teletext -tekstityssivut
« Vastaus #2 : 09.11.19 - klo:02.13 »
Veikkaan, ettei AVA lähetä tekstitystä teksti-tv:n kautta.

Lähettää se, FFMPEG:in mukaan siinä on:

Koodia: [Valitse]
Input #0, mpegts, from 'Viimeinen Samurai.m2t':
  Duration: 03:15:59.13, start: 23236.129178, bitrate: 2670 kb/s
  Program 155
    Stream #0:0[0x20e]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x2d6](fin): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 224 kb/s
    Stream #0:2[0x424](fin): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
    Stream #0:3[0x1392](fin): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006), 492x250

Eli tuo 0:3 on dvb_teletext... Hmm, vai onko sillä sitten ollenkaan tekstitystä, vaikka siinä onkin MTV:n teleteksti... Tietääkö kukaan?

No, jos siinä ei ole, niin tulee sitten seuraava kysymys:

Millä Linuxissa toimivalla videoeditorilla saa poistettua mainoskanavien mainoskatkot leffoista niin, että dvb-tekstitys (#0:2) säilyy ehjänä?
« Viimeksi muokattu: 09.11.19 - klo:02.25 kirjoittanut jarmala »
Ubuntu 18.04 LTS, Gnome Flashback Metacity, Xeon E3-1245 V2, 8 GB

nm

  • Käyttäjä
  • Viestejä: 13096
    • Profiili
Vs: TV-kanavien teletext -tekstityssivut
« Vastaus #3 : 09.11.19 - klo:12.02 »
Lähettää se, FFMPEG:in mukaan siinä on:

Koodia: [Valitse]
Input #0, mpegts, from 'Viimeinen Samurai.m2t':
  Duration: 03:15:59.13, start: 23236.129178, bitrate: 2670 kb/s
  Program 155
    Stream #0:0[0x20e]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x2d6](fin): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 224 kb/s
    Stream #0:2[0x424](fin): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
    Stream #0:3[0x1392](fin): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006), 492x250

Okei, taitaa siellä sitten jokin teletext-tekstitys olla. Sivunumero on varmaankin selvitettävissä ffprobella:

Koodia: [Valitse]
ffprobe -print_format json -show_data -show_streams -select_streams s "Viimeinen Samurai.m2t" | python -m json.tool
Listauksen extradata-kohdassa on käsittääkseni sivunumero viimeisenä kenttänä.


Millä Linuxissa toimivalla videoeditorilla saa poistettua mainoskanavien mainoskatkot leffoista niin, että dvb-tekstitys (#0:2) säilyy ehjänä?

VDR:llä, mutta jollain toisella ohjelmalla tehdyn tallenteen siirtäminen VDR:n tallenteeksi on hankalaa, vaikka TS-muotoinen tallenne olisi sinänsä yhteensopiva.
« Viimeksi muokattu: 09.11.19 - klo:12.04 kirjoittanut nm »

jarmala

  • Käyttäjä
  • Viestejä: 398
    • Profiili
Vs: TV-kanavien teletext -tekstityssivut
« Vastaus #4 : 09.11.19 - klo:21.26 »

Koodia: [Valitse]
ffprobe -print_format json -show_data -show_streams -select_streams s "Viimeinen Samurai.m2t" | python -m json.tool

Kiitoksia. Tuollaista komentoa en olisi itse osannut keksiäkään... Se sanoo:

Koodia: [Valitse]
        {
            "avg_frame_rate": "0/0",
            "codec_long_name": "DVB teletext",
            "codec_name": "dvb_teletext",
            "codec_tag": "0x0006",
            "codec_tag_string": "[6][0][0][0]",
            "codec_time_base": "0/1",
            "codec_type": "subtitle",
            "disposition": {
                "attached_pic": 0,
                "clean_effects": 0,
                "comment": 0,
                "default": 0,
                "dub": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "karaoke": 0,
                "lyrics": 0,
                "original": 0,
                "timed_thumbnails": 0,
                "visual_impaired": 0
            },
            "duration": "11758.140000",
            "duration_ts": 1058232600,
            "extradata": "\n00000000: 0900                                     ..\n",
            "height": 250,
            "id": "0x1392",
            "index": 3,
            "r_frame_rate": "0/0",
            "start_pts": 4040979428,
            "start_time": "44899.771422",
            "tags": {
                "language": "fin"
            },
            "time_base": "1/90000",
            "width": 492
        }

Eipä tuosta nyt heti pistä silmään mitään sivunumeroon viittaavaa. Hmm?
Ubuntu 18.04 LTS, Gnome Flashback Metacity, Xeon E3-1245 V2, 8 GB

nm

  • Käyttäjä
  • Viestejä: 13096
    • Profiili
Vs: TV-kanavien teletext -tekstityssivut
« Vastaus #5 : 10.11.19 - klo:01.25 »
Koodia: [Valitse]
            "extradata": "\n00000000: 0900                                     ..\n"

Sivu on 100, kun tuon 0x0900:n dekoodaa ETSI EN 300 468:n mukaan. Eli luku on kaksi tavua heksadesimaalimuodossa, joista ekat 5 bittiä teletext_type, sitten 3 bittiä teletext_magazine_number (sivunumeron sadat), 4 bittiä sivun kymmenet ja viimeiset 4 bittiä sivun viimeinen numero.

0x900 = 00001 001 0000 0000

teletext_type = 1 (initial page)
teletext_magazine_number = 1
teletext_page_tens = 0
teletext_page_units = 0

Jiku

  • Käyttäjä
  • Viestejä: 239
    • Profiili
Vs: TV-kanavien teletext -tekstityssivut
« Vastaus #6 : 10.11.19 - klo:17.36 »
Millä Linuxissa toimivalla videoeditorilla saa poistettua mainoskanavien mainoskatkot leffoista niin, että dvb-tekstitys (#0:2) säilyy ehjänä?
Sen pitäisi onnistua näin:
Koodia: [Valitse]
ffmpeg -i alkup.ts -ss 00:00:30 -t 00:50:00 -map 0:v -map 0:a -map 0:s -c:v copy -c:a copy -c:s copy -async 1 cut.ts
Eli käytännössä pitäisi siis leikata pätkä mainoskatkoon saakka, toinen pätkä mainoskatkosta loppuun ja yhdistää ne.
Tuo mappays on tärkeää, muuten tekstit tippuu pois.


comskip/ comchap voisi olla hyviä pohjia jos haluaa oman skriptin rakentaa
Nuo on taas alunperin suunniteltu ohjelmaan comskip jolla voi automaattisesti tunnistaa mainoskatkoja.
Mutta aivan idioottivarmaksi tuota tunnistamista tuskin saa.

edit: halusitkin että on graafinen ohjelma.. Yksi vaihtoehtohan on tietysti polttaa tekstit kiinteäksi, sen jälkeen homma helpottuu huomattavasti.
Graafisista ohjelmista ainakin Handbrake osaa sen.
« Viimeksi muokattu: 10.11.19 - klo:17.43 kirjoittanut Jiku »
Puoliksi suunniteltu on hyvin tehty

jarmala

  • Käyttäjä
  • Viestejä: 398
    • Profiili
Vs: TV-kanavien teletext -tekstityssivut
« Vastaus #7 : 13.11.19 - klo:02.37 »
Sivu on 100, kun tuon 0x0900:n dekoodaa ETSI EN 300 468:n mukaan. Eli luku on kaksi tavua heksadesimaalimuodossa, joista ekat 5 bittiä teletext_type, sitten 3 bittiä teletext_magazine_number (sivunumeron sadat), 4 bittiä sivun kymmenet ja viimeiset 4 bittiä sivun viimeinen numero.

0x900 = 00001 001 0000 0000

teletext_type = 1 (initial page)
teletext_magazine_number = 1
teletext_page_tens = 0
teletext_page_units = 0

Hmm, kokeilin ottaa projectx:llä tekstitvsivun 100, mutta ei se tunnu ihan oikealta:

Koodia: [Valitse]
1
00:00:05,869 --> 00:00:11,869
SEURAA AINA KUN HALUAT
S.899
Postin lakko alkaa maanantaina      103
Wärtsilä irtisanoo 92 työntekijää   162
Leijonat kaatoi hienosti Venäjän    225
Toni Piispanen kelasi MM-kultaan    296
Suosikkihahmo jättää Salkkarit      121
Tekstiviesti ennustuksia s.777
www.ennustaja.info   2,50e/kpl
Uutiset 102   Viihde 120    Urheilu 201
SYKSYN KUUMINTA SEURAA
www.puhelin.xxx  2,34e/min+pvm
s.859 K18 s.825
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Uusi korkokatto astui voimaan s.700

Eli ei vielä ihan mätsää oikeiden tekstityksien kanssa. Kyllä nyt tässä vaiheessa saisi jo joku AVA:n edustaja vastata kysymykseen, millä sivulla heidän tektityksensä on...
Ubuntu 18.04 LTS, Gnome Flashback Metacity, Xeon E3-1245 V2, 8 GB

jarmala

  • Käyttäjä
  • Viestejä: 398
    • Profiili
Vs: TV-kanavien teletext -tekstityssivut
« Vastaus #8 : 13.11.19 - klo:02.48 »

Sen pitäisi onnistua näin:
Koodia: [Valitse]
ffmpeg -i alkup.ts -ss 00:00:30 -t 00:50:00 -map 0:v -map 0:a -map 0:s -c:v copy -c:a copy -c:s copy -async 1 cut.ts
Eli käytännössä pitäisi siis leikata pätkä mainoskatkoon saakka, toinen pätkä mainoskatkosta loppuun ja yhdistää ne.
Tuo mappays on tärkeää, muuten tekstit tippuu pois.

edit: halusitkin että on graafinen ohjelma.. Yksi vaihtoehtohan on tietysti polttaa tekstit kiinteäksi, sen jälkeen homma helpottuu huomattavasti.
Graafisista ohjelmista ainakin Handbrake osaa sen.

Kiitoksia. Ffmpeg periaattessa kyllä osaa sen, mutta kun leffassa on viisi mainoskatkoa, niin ei viitsi tehdä tuota kuutta kertaa: etsiä jaksojen alku- ja loppuajat ja lopuksi yhdistää ne kuusi palasta. Tahtoisi helpomman keinon...

Handbrake: loistavaa, jos se osaa polttaa dvb-tekstit kuvaan kiinni. Äkkiä neuvoja tänne, miten se tehdään, niin minäkin voisin oppia sen. Jooko? Ja sitten kun tekstit on poltettu kuvaan kiinni, leffan leikkaaminen on sen jälkeen lastenleikkiä.
Ubuntu 18.04 LTS, Gnome Flashback Metacity, Xeon E3-1245 V2, 8 GB

Cultor

  • Käyttäjä
  • Viestejä: 153
    • Profiili
Vs: TV-kanavien teletext -tekstityssivut
« Vastaus #9 : 13.11.19 - klo:10.31 »
Kiitoksia. Ffmpeg periaattessa kyllä osaa sen, mutta kun leffassa on viisi mainoskatkoa, niin ei viitsi tehdä tuota kuutta kertaa: etsiä jaksojen alku- ja loppuajat ja lopuksi yhdistää ne kuusi palasta. Tahtoisi helpomman keinon...

Handbrake: loistavaa, jos se osaa polttaa dvb-tekstit kuvaan kiinni. Äkkiä neuvoja tänne, miten se tehdään, niin minäkin voisin oppia sen. Jooko? Ja sitten kun tekstit on poltettu kuvaan kiinni, leffan leikkaaminen on sen jälkeen lastenleikkiä.
Handbrakesta en mitään osaa sanoa, ffmpeg'illä olen polttanut tekstit kuvaan. Muistiinpanoista löytyi Maximum-tallenteiden muunnosloitsu.

Koodia: [Valitse]
ffmpeg -i Elokuva.ts -acodec copy -vcodec libx264 -vb 1600k -s 854x480 -aspect 16:9 -vpre libx264-ipod640 -filter_complex "[0:0][0:4]overlay" -sn Elokuva.mp4
Oikean tekstistreemin saa selville ffprobe'lla.

Koodia: [Valitse]
ffprobe Nazcan_linjojen.ts

Input #0, mpegts, from 'Nazcan_linjojen.ts':
  Duration: 00:59:49.07, start: 13957.788533, bitrate: 4076 kb/s
  Program 17
    Metadata:
      service_name    : ?YLE TV1
      service_provider: ?YLE
    Stream #0:0[0x200]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x28a](eng): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 224 kb/s
    Stream #0:2[0x28b](dut): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 160 kb/s (visual impaired)
    Stream #0:3[0x403](fin): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
    Stream #0:4[0x911](fin): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006)
« Viimeksi muokattu: 13.11.19 - klo:10.40 kirjoittanut Cultor »

Jiku

  • Käyttäjä
  • Viestejä: 239
    • Profiili
Vs: TV-kanavien teletext -tekstityssivut
« Vastaus #10 : 13.11.19 - klo:18.05 »
Nyt kun Handbrakea katsoin, niin enpä löytänytkään mahdollisuutta saada transport streamin tekstejä kiinteäksi. Muistinkohan niin väärin, että olen ne ensin .srt-tiedostoksi muuttanut ja vasta sitten polttanut..
Mulla on tuohon liittyen aika alkutekijöissään oleva projekti, joka OCR-tunnistaa tekstit ja muuttaa ne srt-muotoon DVB-tekstistä ja DVD-levyjen tekstistä.
dvbteksti2srt
Voisin siihen lisätä kyllä tuon kuvaan poltto-ominaisuuden myös. Se on tosiaan helppo tolla ffmpegin overlaylla tehdä suoraan ilman OCR-tunnistustakin.
Laitoin sulle jarmala yksityisviestin asiaan liittyen!

Edit: Tässä olisi pikainen testiversio skriptistä, joka ffmpegillä polttaa tekstin kiinni kuvaan: ts_polta_teksti
Tukee nyt DVB ja teksi-tv-tekstejä. Teksti-tv sivunumeron tunnistus on purkkaa ja toimii jos toimii..
« Viimeksi muokattu: 13.11.19 - klo:19.46 kirjoittanut Jiku »
Puoliksi suunniteltu on hyvin tehty

kamara

  • Käyttäjä
  • Viestejä: 2117
    • Profiili
Vs: TV-kanavien teletext -tekstityssivut
« Vastaus #11 : 13.11.19 - klo:20.06 »
Nyt kun Handbrakea katsoin, niin enpä löytänytkään mahdollisuutta saada transport streamin tekstejä kiinteäksi. Muistinkohan niin väärin, että olen ne ensin .srt-tiedostoksi muuttanut ja vasta sitten polttanut..
Mulla on tuohon liittyen aika alkutekijöissään oleva projekti, joka OCR-tunnistaa tekstit ja muuttaa ne srt-muotoon DVB-tekstistä ja DVD-levyjen tekstistä.
dvbteksti2srt
Voisin siihen lisätä kyllä tuon kuvaan poltto-ominaisuuden myös. Se on tosiaan helppo tolla ffmpegin overlaylla tehdä suoraan ilman OCR-tunnistustakin.
Laitoin sulle jarmala yksityisviestin asiaan liittyen!

Edit: Tässä olisi pikainen testiversio skriptistä, joka ffmpegillä polttaa tekstin kiinni kuvaan: ts_polta_teksti
Tukee nyt DVB ja teksi-tv-tekstejä. Teksti-tv sivunumeron tunnistus on purkkaa ja toimii jos toimii..

Itse tein vastaavan projektin, jo aiemmin...
Tässä on linkki siihen...
https://forum.ubuntu-fi.org/index.php?topic=51035.msg417150#msg417150

Sorsatkin on mukana. ;)

... ja saa sitä parannellakin.

Postimies

  • Käyttäjä
  • Viestejä: 2272
    • Profiili
Vs: TV-kanavien teletext -tekstityssivut
« Vastaus #12 : 14.11.19 - klo:13.57 »
Millä Linuxissa toimivalla videoeditorilla saa poistettua mainoskanavien mainoskatkot leffoista niin, että dvb-tekstitys (#0:2) säilyy ehjänä?

Itse pätkin vdr:llä. Kun painaa kauko-ohjaimen "0" näppäintä se tekee "merkin" eli tallentaa ajankohdan tiedostoon. Kun kaikki mainokset ovat löytyneet voi painaa näppäintä "2" ja vdr aloittaa tallenteen pätkimisen. Katkaisukohtia pitää olla oikea määrä - vahingossa voi jäädä pelkät mainokset jäljelle. Kannattaa tarkistaa. Systeemi melko kätevä ja toimii sohvalta käsin. En ole kokeillut toimiiko muilla kuin VDR:n tallenteilla. Kuitenkin jos ajat saa talteen, niin se helpottaa paljon jatkokäsittelyä.

VLC osannee myös ts-tallenteita näyttää ja koodata tekstit kuvaan. En ole kokeillut. Nyt olisi tarvetta tehdä toimiva matroska Elisan boxille, joka ei tunnu osaavan edes matroskan tekstejä. Ei huvittaisi kantaa konetta mukana yhden leffan takia. Kaverilla on Elisan viihdeboxi joka sentään osaa ntfs tiedostojärjestelmän. TV:n soitin osaa vain fat-tikut.

jarmala

  • Käyttäjä
  • Viestejä: 398
    • Profiili
Vs: TV-kanavien teletext -tekstityssivut
« Vastaus #13 : 14.11.19 - klo:23.48 »

Laitoin sulle jarmala yksityisviestin asiaan liittyen!

Edit: Tässä olisi pikainen testiversio skriptistä, joka ffmpegillä polttaa tekstin kiinni kuvaan: ts_polta_teksti
Tukee nyt DVB ja teksi-tv-tekstejä. Teksti-tv sivunumeron tunnistus on purkkaa ja toimii jos toimii..

Kiitoksia! Testejä ajetaan parhaillaan... Vartokaa...

Juu, onnistuu se! No nyt rupeaa homma pelittämään.
« Viimeksi muokattu: 14.11.19 - klo:23.58 kirjoittanut jarmala »
Ubuntu 18.04 LTS, Gnome Flashback Metacity, Xeon E3-1245 V2, 8 GB

Postimies

  • Käyttäjä
  • Viestejä: 2272
    • Profiili
Vs: TV-kanavien teletext -tekstityssivut
« Vastaus #14 : 15.11.19 - klo:11.47 »

Kiitoksia! Testejä ajetaan parhaillaan... Vartokaa...

Juu, onnistuu se! No nyt rupeaa homma pelittämään.
Toimiiko tuo ts_polta_teksti myös jos tallenne on useammassa osassa?
Itsellä kun on noita HD-leffoja 2G tiedostoissa. VDR pätkii leffat oletuksena,
jos kokorajaa ei muista muuttaa. 

Jiku

  • Käyttäjä
  • Viestejä: 239
    • Profiili
Vs: TV-kanavien teletext -tekstityssivut
« Vastaus #15 : 15.11.19 - klo:13.23 »
Nyt on tekstipohjaisen lisäksi yksinkertainen purkkaviritys graafisella käyttöliittymällä. Molemmat löytyy täältä.
Melko varmasti ongelmia joidenkin tiedostojen kanssa tulee, tuo transport stream kun voi sisältää käytännössä ihan mitä tahansa ja kaikkiin vaihtoehtoihin ei vain osaa varautua.


Toimiiko tuo ts_polta_teksti myös jos tallenne on useammassa osassa?
Itsellä kun on noita HD-leffoja 2G tiedostoissa. VDR pätkii leffat oletuksena,
jos kokorajaa ei muista muuttaa. 

Miten se nimeää nuo? Ajattelin että voisiko siitä ekasta nimestä päätellä niiden seuraavien pätkien nimen ja tehdä yksinkertaisen skriptin joka yhdistää ne yhteksi tiedostoksi?
Transport streamin liittäminen on todella helppoa:
Koodia: [Valitse]
ffmpeg -i "concat:eka.ts|toka.ts|kolmas.ts"  -map 0:v -map 0:a -map 0:s -c:v copy -c:a copy -c:s copy kokonainen.ts
Puoliksi suunniteltu on hyvin tehty

Jiku

  • Käyttäjä
  • Viestejä: 239
    • Profiili
Vs: TV-kanavien teletext -tekstityssivut
« Vastaus #16 : 02.12.19 - klo:14.02 »
Sain nyt PyQt:lla tehtyä jo aika hyvin toimivan käyttöliittymän tuohon tekstitysten valintaan. Ne voi polttaa nyt kuvaan kiinni tai sitten sisällyttää MP4:n "irtoteksteiksi".
Tossa on enemmän: https://www.huoltovalikko.com/threads/hd-tallenteiden-jatkojalostus-linuxilla-etenkin-tekstitykset.13745/page-2#post-174587

Edit: Tällaiselta se näyttää:



Edit2: koodit löytyy tuttuun tapaan githubista
« Viimeksi muokattu: 02.12.19 - klo:16.05 kirjoittanut Jiku »
Puoliksi suunniteltu on hyvin tehty