xinelibout menee jumiin

VDR ja DVB aiheista keskustelua

ViestiKirjoittaja phi » 22.03.2007 23:35

nm kirjoitti:Tekstityksen pitäisi kyllä toimia, jos käytät streamdev-clientia asiakaspäässä ja asetat sen TSPIDS (multipid) -tilaan. En ole tosin itse kokeillut tätä aikoihin.


Sain YLEn tekstitykset näkymään live-katselussa streamdev-client :llä kopioimalla channels.conf ja plugins/subchannels.conf tiedostot serveriltä clientille. Jostain syystä client ei itse tee tuota tiedostoa subchannels.conf.
phi
Vanhempi asiantuntija
 
Viestit: 179
Liittynyt: 12.09.2006 17:11

ViestiKirjoittaja paju2000 » 23.03.2007 0:49

Minä puolestaan käytin RoFan patchiä ja subit alkoi toimimaan. Pitää testata jossain vaiheessa tuo phi:n ehdottama idea.
paju2000
Harrastaja
 
Viestit: 58
Liittynyt: 03.03.2007 14:31

ViestiKirjoittaja phi » 23.03.2007 1:16

paju2000 kirjoitti:Minä puolestaan käytin RoFan patchiä ja subit alkoi toimimaan. Pitää testata jossain vaiheessa tuo phi:n ehdottama idea.


Käsittääkseni em. patchi ei vaikuta kun HTTP-streamaukseen (?).

Koitin myös puukottaa section filtterit käyttöön, ja ilmeisesti onnistuinkin kun EPG data, running status ja mm. kanavapäivitykset tulee läpi. subchannels.conf kuitenkin pysyy tyhjänä...
phi
Vanhempi asiantuntija
 
Viestit: 179
Liittynyt: 12.09.2006 17:11

ViestiKirjoittaja rofafor » 23.03.2007 9:49

phi kirjoitti:Käsittääkseni em. patchi ei vaikuta kun HTTP-streamaukseen (?).

Streamdev-client käyttää käsittääkseni TSPIDS-moodia striimauksessa (ainut moodi, johon en koskenut) ja siten pätsini ei pitäisi vaikuttaa sen toimivuuteen.

phi kirjoitti:Koitin myös puukottaa section filtterit käyttöön, ja ilmeisesti onnistuinkin kun EPG data, running status ja mm. kanavapäivitykset tulee läpi. subchannels.conf kuitenkin pysyy tyhjänä...

Minulle voi lähettää pätsejä pätseihin, niin ne saattavat joskus toimiakin... ;)
Avatar
rofafor
Optikkoliikkeen kopiovastaava
 
Viestit: 1283
Liittynyt: 26.03.2004 3:00
Paikkakunta: Internet

ViestiKirjoittaja phi » 28.03.2007 20:28

phi kirjoitti:Koitin myös puukottaa section filtterit käyttöön, ja ilmeisesti onnistuinkin kun EPG data, running status ja mm. kanavapäivitykset tulee läpi. subchannels.conf kuitenkin pysyy tyhjänä...


Section filter - osuus meni uusiksi, mutta nyt toimii hienosti mukaanlukien EPG scan ja automaattiset kanavien päivitykset.
Patchi streamdev:tä (vdr-developer.org:n CVS-versiota) vastaan löytyy osoitteesta
http://phivdr.dyndns.org/vdr/vdr-streamdev-patches/

Tulipa sitten ikuisuuksien ihmettelyn jälkeen huomattua että streamdev-client pitää ladata _ennen_ subtitles -pluginia jotta subtitles -plugini edes näkee streamdev -laitteen :)

rofafor kirjoitti:Minulle voi lähettää pätsejä pätseihin, niin ne saattavat joskus toimiakin... ;)


Mahtaisikohan HTTP TS-streamauksessa riittää jos heittäisi kylmästi sekaan alkuperäisen kanavan PAT/PMT-tiedot muokkaamattomina ... ?
Olisi vähemmän "työtä" verrattuna vaihtoehtoon B (=generaattorin "luova kopioiminen" jostain muusta ohjelmasta)
phi
Vanhempi asiantuntija
 
Viestit: 179
Liittynyt: 12.09.2006 17:11

ViestiKirjoittaja rofafor » 28.03.2007 21:06

phi kirjoitti:Section filter - osuus meni uusiksi, mutta nyt toimii hienosti mukaanlukien EPG scan ja automaattiset kanavien päivitykset.

Voisit samalla submitata pätsin suoraan Frankille, jotta se siirtyisi myös CVS:ään (jos karsastat rekisteröitymistä, niin minäkin voin kyllä tehdä sen tarvittaessa):
http://www.vdr-developer.org/mantisbt/view_all_bug_page.php

phi kirjoitti:Mahtaisikohan HTTP TS-streamauksessa riittää jos heittäisi kylmästi sekaan alkuperäisen kanavan PAT/PMT-tiedot muokkaamattomina ... ? Olisi vähemmän "työtä" verrattuna vaihtoehtoon B (=generaattorin "luova kopioiminen" jostain muusta ohjelmasta)

Mielestäni toimisi, mutta VDR:stä ei saa nykyiselllään PMT-pidiä helposti ulos...
Avatar
rofafor
Optikkoliikkeen kopiovastaava
 
Viestit: 1283
Liittynyt: 26.03.2004 3:00
Paikkakunta: Internet

ViestiKirjoittaja phi » 29.03.2007 9:54

rofafor kirjoitti:Voisit samalla submitata pätsin suoraan Frankille, jotta se siirtyisi myös CVS:ään (jos karsastat rekisteröitymistä, niin minäkin voin kyllä tehdä sen tarvittaessa):
http://www.vdr-developer.org/mantisbt/view_all_bug_page.php

Tieto on mennyt Frank:lle joitain päiviä sitten. Halusi vaan patchin mielummin pienempinä paloina ...

rofafor kirjoitti:
phi kirjoitti:Mahtaisikohan HTTP TS-streamauksessa riittää jos heittäisi kylmästi sekaan alkuperäisen kanavan PAT/PMT-tiedot muokkaamattomina ... ? Olisi vähemmän "työtä" verrattuna vaihtoehtoon B (=generaattorin "luova kopioiminen" jostain muusta ohjelmasta)

Mielestäni toimisi, mutta VDR:stä ei saa nykyiselllään PMT-pidiä helposti ulos...


Meinasin jotain seuraavan kaltaista:
- Yhteys avatessa luodaan uusi section filtteri jolla luetaan PAT (pid 0, tid 0)
- PAT data pakataan takaisin TS-paketteihin ja heitetään client:lle (vai pitääkö PAT:sta poistaa muut kanavat ? Tällöin myös CRC muuttuu :()
- saadusta datasta kaivetaan kanavaa vastaava PMT pid SI::PAT luokalla. Kun tämä saatu, suljetaan PAT section filtteri ja avataan Receiver:stä PMT PID.

Mahtaako vastaanottaja häiriintyä ylimääräisistä kanavista ja pid:eistä noissa tauluissa (?) vai osaako se "virittyä" oikealle kanavalle automaattisesti sen mukaan mitä aktiivisia audio/videostreameja löytää ...
Kaiken lisäksi testailu on hiukan hidasta kun pitää odotella ohjelmaa jossa on DVB-tekstit :)
phi
Vanhempi asiantuntija
 
Viestit: 179
Liittynyt: 12.09.2006 17:11

ViestiKirjoittaja rofafor » 29.03.2007 11:14

phi kirjoitti:Mahtaako vastaanottaja häiriintyä ylimääräisistä kanavista ja pid:eistä noissa tauluissa (?) vai osaako se "virittyä" oikealle kanavalle automaattisesti sen mukaan mitä aktiivisia audio/videostreameja löytää ...

Tämän takia oma lähestymiseni oli tehdä oma TSRemux-luokkaa, joka käyttäisi muokattua libdvbmpeg-kirjastosta löytyvää insert_pat_pmt()-funktiota luoden taulut vain vastaanotettaville pideille.. Kirjoitin alustavan pätsin aikanaan, mutta se ei lähtenyt heti toimimaan ja mielenkiinto lopahti. :)
Avatar
rofafor
Optikkoliikkeen kopiovastaava
 
Viestit: 1283
Liittynyt: 26.03.2004 3:00
Paikkakunta: Internet

ViestiKirjoittaja phi » 29.03.2007 16:24

rofafor kirjoitti:
phi kirjoitti:Mahtaako vastaanottaja häiriintyä ylimääräisistä kanavista ja pid:eistä noissa tauluissa (?) vai osaako se "virittyä" oikealle kanavalle automaattisesti sen mukaan mitä aktiivisia audio/videostreameja löytää ...

Tämän takia oma lähestymiseni oli tehdä oma TSRemux-luokkaa, joka käyttäisi muokattua libdvbmpeg-kirjastosta löytyvää insert_pat_pmt()-funktiota luoden taulut vain vastaanotettaville pideille.. Kirjoitin alustavan pätsin aikanaan, mutta se ei lähtenyt heti toimimaan ja mielenkiinto lopahti. :)


Periaatteessa PMT:n pitäisi kelvata sellaisenaan, jolloin clientin päässä olisi mahdollista valita ääni- ja tekstityskieli (ja todeta että vain yksi vaihtoehdoista löytyy streamista :oops:). Ainakin vlc:lle, xinelle ja mplayer:lle myös PAT ja PMT näkyy kelpaavan sellaisenaan:
http://phivdr.dyndns.org/vdr/vdr-stream ... -pmt.patch

Hiukan tuo vlc kyllä valittaa alussa, mutta näyttää kiltisti kaiken, jopa niin että ääni ja tekstitys -valikoihin ilmestyy uudet ääni/tekstitysraitojen kielet automaagisesti ohjelman vaihtuessa. Varmaankin noita ääni- ja tekstitys pid:ejä pitäisi seurata PMT:stä ja tarvittaessa lisäillä/poistaa lennossa ... Tai sitten hakata vuoronperään Stop ja Play -nappuloita toisessa päässä :)
MPlayer ei näytä tekstejä vaan valittaa "SPUasm: invalid fragment".
phi
Vanhempi asiantuntija
 
Viestit: 179
Liittynyt: 12.09.2006 17:11

ViestiKirjoittaja rofafor » 29.03.2007 19:52

phi kirjoitti:ja todeta että vain yksi vaihtoehdoista löytyy streamista

Hienoa! Mielestäni nyt streameihin voisi lisätä kaikki kanavan ääni- sekä tekstitysraidat - niiden tarvitsema lisäkaista on kuitenkin murto-osa videosta. VDR myöskin tukee muistaakseni 64 pidiä receiverissä, joka riittänee em. tarkoituksiin kaikissa tilanteissa...

phi kirjoitti:Varmaankin noita ääni- ja tekstitys pid:ejä pitäisi seurata PMT:stä ja tarvittaessa lisäillä/poistaa lennossa ... Tai sitten hakata vuoronperään Stop ja Play -nappuloita toisessa päässä :)

Jälkimmäinenkin vaihtoehto kelvannee suurimmalle osalle käyttäjistä, mutta patfilter:iisi lienee helppo prujata VDR:n vastaavasta pidien lukeminen ja niiden perusteella muokata livestreamerin receiveriä lennossa. Tämän jälkeen homman pitäisi toimia ilman erillistä subtitles-pätsiäkin.

Ps. Tein testiksi vdr-1.5.1-spids pätsin, joka toivottavasti parsii subtitles pidit kunnolla...
Avatar
rofafor
Optikkoliikkeen kopiovastaava
 
Viestit: 1283
Liittynyt: 26.03.2004 3:00
Paikkakunta: Internet

ViestiKirjoittaja phelin » 04.04.2007 13:24

phi kirjoitti:Koitin myös puukottaa section filtterit käyttöön, ja ilmeisesti onnistuinkin kun EPG data, running status ja mm. kanavapäivitykset tulee läpi. subchannels.conf kuitenkin pysyy tyhjänä...


Kokeilin eilen uusinta patchiasi VLC:n kanssa. Versiolla 0.8.6 ei tekstitv-tekstitys toiminut, mutta kun käänsin tuoreen svn:n, toimi sekin. Eli DVB-tekstit, tekstitv-tekstitys ja audioraidat (DD mukaanlukien) toimivat hienosti! Mutta entäs EPG? Ainakin tämän threadin mukaan VLC osaisi poimia EPG:n TS:stä: http://forum.videolan.org/viewtopic.php?t=21248. Ainakaan vielä en sitä kyllä saanut toimimaan.
Avatar
phelin
Yli-ihminen
 
Viestit: 1251
Liittynyt: 09.02.2005 3:00
Paikkakunta: Helsinki

ViestiKirjoittaja phi » 04.04.2007 17:53

phelin kirjoitti:Mutta entäs EPG? Ainakin tämän threadin mukaan VLC osaisi poimia EPG:n TS:stä: http://forum.videolan.org/viewtopic.php?t=21248. Ainakaan vielä en sitä kyllä saanut toimimaan.


EPG:tä ei lisätä tuohon streamiin. Voit kokeilla joitain noista:

Koodi: Valitse kaikki
   int Ppid = pmt.getPCRPid();                                               
   if (Ppid && !m_Streamer->HasPid(Ppid)) {                                   
      Dprintf("cStreamdevPatFilter PMT scanner: adding PCR PID %d", Ppid);
      m_Streamer->SetPid(Ppid, true);                                               
   }
+  m_Streamer->SetPid(0x10, true);  // NIT
+  m_Streamer->SetPid(0x11, true);  // SDT
+  m_Streamer->SetPid(0x12, true);  // EIT
+  m_Streamer->SetPid(0x14, true);  // TDT


En kyllä saanut muuta uutta esiin kun parhaillaan menossa olevan ohjelman nimen status bar:iin ja kanavien nimet StreamInfo -ikkunaan. Kaista kyllä kasvoi luokkaa 300kb/s (!) (kanava luokkaa 4Mbit/s ja koko streami 6 Mbit/s). Heikko hyötysuhde :) - ehkä noista olisi syytä suodattaa pois vähemmän oleellista tavaraa (kaiken paitsi current/next event ?).
phi
Vanhempi asiantuntija
 
Viestit: 179
Liittynyt: 12.09.2006 17:11

ViestiKirjoittaja phelin » 04.04.2007 22:33

phi kirjoitti:
phelin kirjoitti:Mutta entäs EPG? Ainakin tämän threadin mukaan VLC osaisi poimia EPG:n TS:stä: http://forum.videolan.org/viewtopic.php?t=21248. Ainakaan vielä en sitä kyllä saanut toimimaan.


EPG:tä ei lisätä tuohon streamiin. Voit kokeilla joitain noista:

Koodi: Valitse kaikki
   int Ppid = pmt.getPCRPid();                                               
   if (Ppid && !m_Streamer->HasPid(Ppid)) {                                   
      Dprintf("cStreamdevPatFilter PMT scanner: adding PCR PID %d", Ppid);
      m_Streamer->SetPid(Ppid, true);                                               
   }
+  m_Streamer->SetPid(0x10, true);  // NIT
+  m_Streamer->SetPid(0x11, true);  // SDT
+  m_Streamer->SetPid(0x12, true);  // EIT
+  m_Streamer->SetPid(0x14, true);  // TDT


En kyllä saanut muuta uutta esiin kun parhaillaan menossa olevan ohjelman nimen status bar:iin ja kanavien nimet StreamInfo -ikkunaan.

Navigation -> Program -valikkoon näyttäisi tulevan kaikkien samaan transponderiin/muxiin liittyvien kanavien nimet. Oletuksena status bar:ssa on sillä hetkellä toistettavan ohjelman nimi, mutta valikosta kanavan nimen valitsemalla näkee valitulla kanavalla sillä hetkellä pyörivän ohjelman nimen status bar:ssa. Samalla tosin toistettavan kanavan toisto katkeaa. Onkohan tuossa tarkoituksena vaihtaa kyseiselle kanavalle, mutta vaihto ei onnistu?
Koodi: Valitse kaikki
VLC:n lokista:

[00000334] main input debug: control type=9
[00000334] main input debug: unselecting program id=17
[00000366] main decoder debug: removing module "libmpeg2"
[00000366] main decoder debug: thread 2975415184 joined (input/decoder.c:204)
[00000366] main decoder debug: killing decoder fourcc `mpgv', 3 PES in FIFO
[00000370] main decoder debug: removing module "mpeg_audio"
[00000370] main decoder debug: thread 2966711184 joined (input/decoder.c:204)
[00000370] main decoder debug: killing decoder fourcc `mpga', 4 PES in FIFO
[00000383] main private debug: removing module "mpgatofixed32"
[00000386] main private debug: removing module "bandlimited_resampler"
[00000379] main audio output debug: thread 2958187408 joined (alsa.c:729)
[00000379] main audio output debug: removing module "alsa"
[00000379] main audio output debug: removing module "trivial_mixer"
[00000334] main input debug: selecting program id=33
[00000338] ts demuxer debug: DEMUX_SET_GROUP 33 (nil)


Ymmärsin siis ilmeisesti nopean lukemisen (tai siis oikeastaan kuvien katselun) seurauksena väärin tuon ketjun, eikä VLC:ssä olekaan kovin kummoista EPG-tukea.
Avatar
phelin
Yli-ihminen
 
Viestit: 1251
Liittynyt: 09.02.2005 3:00
Paikkakunta: Helsinki

ViestiKirjoittaja phi » 05.04.2007 16:35

phelin kirjoitti:valikosta kanavan nimen valitsemalla näkee valitulla kanavalla sillä hetkellä pyörivän ohjelman nimen status bar:ssa. Samalla tosin toistettavan kanavan toisto katkeaa. Onkohan tuossa tarkoituksena vaihtaa kyseiselle kanavalle, mutta vaihto ei onnistu?

Juu... Streamissa ei ole kun tuo yksi kanava.
Vastaavantapainen ongelma ilmeni kaapelissa jossain välissä, kun PAT- ja PMT -tiedoissa oli uudet MTV3 Max ym. kanavat mutta niitä ei kuitenkaan (vielä) lähetetty kaapeliin.

phelin kirjoitti:Ymmärsin siis ilmeisesti nopean lukemisen (tai siis oikeastaan kuvien katselun) seurauksena väärin tuon ketjun, eikä VLC:ssä olekaan kovin kummoista EPG-tukea.

Myös esim. xine:ssä EPG-tuki toimii käsittääkseni vain jos data tulee dvb-kortilta (eli ei esim. .ts tiedostosta tai http:llä).
phi
Vanhempi asiantuntija
 
Viestit: 179
Liittynyt: 12.09.2006 17:11

ViestiKirjoittaja phelin » 11.04.2007 20:21

Käytössä tällä hetkellä uusin versio TS-streaming-pätsistä (eli http://phivdr.dyndns.org/vdr/vdr-stream ... -0.5.patch).
Jostain syystä CPU:n kuormitus nousee lähelle 100%, nimenomaan streamdev:n livestreaming säikeessä:

VDR:n lokista:
Apr 11 20:00:10 vdrkone2 vdr: [7081] streamdev-livestreaming thread started (pid=5724, tid=7081)

$ ps -eLf | grep 7081
vdruser 5724 1 7081 97 25 20:00 ? 00:09:42 ./vdr ...

Avatar
phelin
Yli-ihminen
 
Viestit: 1251
Liittynyt: 09.02.2005 3:00
Paikkakunta: Helsinki

EdellinenSeuraava

Paluu VDR & DVB

Paikallaolijat

Käyttäjiä lukemassa tätä aluetta: Baidu [Spider] ja 0 vierailijaa

cron