Kunnollinen tallentava DVB-C poksi medion 4400

Keskustelu osiossa 'Digi-TV' , aloittajana eXtreme, 18.12.2004.

  1. Perre

    Perre Guest Guest

    Liittynyt:
    09.11.2005
    Viestejä:
    50
    Saadut tykkäykset:
    0
    Tietääkö kukaan millä systeemillä tekstitys tapahtuu esim. sellaisilla kanavilla kun
    BBCPrime, Discovery, Animal Planet TCM j.n.e . koska se toimii aivan moitteettomasti. Valittavanahan on 3-5 eri kieltä.
     
  2. foenix_

    foenix_ Guest Guest

    Liittynyt:
    06.04.2006
    Viestejä:
    206
    Saadut tykkäykset:
    0
    Discovery Channel taitaa käyttää teksti-tv pohjaista tekstitystä.
     
  3. skapanen

    skapanen Uusi jäsen

    Liittynyt:
    23.11.2006
    Viestejä:
    78
    Saadut tykkäykset:
    0
    Ja ihan tiedoksi että huollon kautta löytyy softa v1.62.
    www-sivuilla sitä ei vielä näkynyt, eikä ole tietoa korjauksistakaan, mutta tuota ehdottivat kun ylen tekstityksistä purnasin.
    ..kahtotaan auttaako.
     
  4. torni

    torni Uusi jäsen

    Liittynyt:
    22.02.2000
    Viestejä:
    188
    Saadut tykkäykset:
    1
    Laita liitteeksi tänne, jos tuo jotain korjaa..
     
  5. jhu

    jhu Uusi jäsen

    Liittynyt:
    12.12.2002
    Viestejä:
    490
    Saadut tykkäykset:
    0
    Softaversio 1.62 on tulossa tuonne Schneiderin sivuille, mutta softan saa kyllä sähköpostilla pyytämällä jos on kiire (minulla oli ;)). Mitään suoraan tekstitykseen liittyviä muutoksia ei ole kuulemma tehty, mutta "tuo on ensimmäinen ohjelmisto mikä ollaan testattu ylen testi streamilla. " Hyvä että edes nyt, kun laite on ollut markkinoilla jo useamman vuotta...

    Ainoa näkyvä muutos, jonka huomasin oli, että kuvaruutunäyttö oli siirtynyt piirun verran keskemmäs niin, että OSD:n alta näkyi kaistale kuvaa. Pidän nyt boksia päällä myöhemmälle iltaan saakka, että näkee pysyykö tekstien ajoitus kohdallaan.
     
  6. skapanen

    skapanen Uusi jäsen

    Liittynyt:
    23.11.2006
    Viestejä:
    78
    Saadut tykkäykset:
    0
    Laitoin eilen tuon v1.62 boksiin, ei se siitä ainakaan seonnut ;P
    Ulkoasultaan jatkaa version 1.60 linjoilla, eli hieman erinäköinen kuin aiemmat.
     
  7. jhu

    jhu Uusi jäsen

    Liittynyt:
    12.12.2002
    Viestejä:
    490
    Saadut tykkäykset:
    0
    Joo-o. Eipä tekstityksiin mitään parannusta luvattu, eikä siihen mitään muutostakaan tullut. Boksi on ollut päällä siitä saakka kun viimeisen viestini kirjoitin ja nyt tarkistin YLE Teemalta tulevan leffan tekstitysten toiminnan.

    Oireet olivat täsmälleen samat kuin ennenkin: Tekstejä tulee satunnaisina ryppäinä, aina liian aikaisin. Välillä joku osuu kohdalleen, mutta sitten tulee taas kaksi - kolme ruudullista tekstitystä ennen aikojaan, joten käytännössä ohjelman seuraamisesta ei tule mitään, kun tekstejä tulee silloinkin kun kukaan ruudulla ei puhu mitään. Kun boksin käynnistää uudelleen, niin tekstien ajoitus korjaantuu oikeaksi.
     
  8. torni

    torni Uusi jäsen

    Liittynyt:
    22.02.2000
    Viestejä:
    188
    Saadut tykkäykset:
    1
    Nope, BSOD pukkaa...:mad:
     
  9. Rankkankka

    Rankkankka Guest Guest

    Liittynyt:
    03.12.2006
    Viestejä:
    16
    Saadut tykkäykset:
    0
    Yritin muuttaa YLE Teemalta tullutta Saatana saapuu Moskovaan -jaksoa aluksi MPG:ksi ja sitten AVIksi niin, että tekstit tulisi mukaan. Aloitin homman siirtämällä tiedoston USB-explorerilla. En convertoinut.

    Sitten käytin Projectx:ää (ensimmäistä kertaa). 'Demuxasin'. Koitin tehdä kaiken, kuten täällä: http://fin.afterdawn.com/artikkelit/arkisto/projectx_dvb.cfm neuvottiin (se löys jotain 29000 warningia/erroria :)). Sitten yhdistin kuvan, äänen ja tekstit TMPGEnc-ohjelmalla.

    Lopputuloksessa kuva ja äänet räiskyy ja paukkuu runsaasti eikä tekstejä näy missään.

    Tosin, Projectx myöskin väitti, että tekstejä ei ole ollenkaan tallentunut. Boksilla ne kyllä näkyy (miten näkyy).

    Onko joku saanut tekstillisen mpg-tiedoston toimimaan jotenkin? Miten? Teinkö jotain väärin?
     
  10. Idän Jari

    Idän Jari Guest Guest

    Liittynyt:
    01.04.2006
    Viestejä:
    39
    Saadut tykkäykset:
    0
    Ymmärtääkseni ProjectX:n ainoa toimiva versio tämän purkin kanssa on v0.90.04.00.b15-20070325.
    Tai siis ainakin minä käytän kyseistä versiota, ja sillä saan tekstitkin mukaan. Itselläni lopputuotos on DVD levy, mutta kai siitä saisi mpg:kin jollakin tavalla.

    Siis USBExplorerilla siirto PC:lle ilman muunnosta -> PJX:llä "strip Medion to separate pes..." ja prepare/demux -> DVDAuthorGUI -> NTI CD&DVD maker.
    Tuolla metodilla olen tehnyt YLE:n tekstillisiä DVD:tä.
     
  11. lapi

    lapi Guest Guest

    Liittynyt:
    28.12.2007
    Viestejä:
    16
    Saadut tykkäykset:
    0
    Finnsatin FSC 7200 digiboxin tidoesto-ongelma alkoi vaivaamaan
    sen verran paljon että tuhlasin pari päivää tätä kallista joululomaa
    ongelman lopulliseen ratkaisuun.

    Tästä boxista (ja muista Opentechin 7000 sarjan digiboxien) USBExplorerilla
    tulevan tiedoston formaatti on jonkinlainen puskuridumppi. Se muodostuu
    64 KB pätkistä joissa jokaisessa on kahdeksan 8 KB pienempää pätkää.
    Ensimmäisestä pätkästä on vain 7 ensimmäistä tavua käytössä ja ne tavut
    kertovat millaisia pätkiä loput seitsemän ovat. Loppuosa tästä pätkästä
    näyttää olevan nollaa.

    Lohkoja näyttää olevan kolmenlaisia. Tyyppi 0 on videodataa, tyyppi
    1 audiodataa ja tyyppi 2 sisältää tekstitykset.

    Tein lyhyen C-ohjelman joka lukee noita dumppitidostoja ja tekee
    sellaisen tiedoston jota ProjectX osaa tulkata. ProjectX:stä (versio
    on 0.9.40) kyllä tulee ainakin YLE:ltä tallennetuista ohjelmista paljon
    ilmoituksia puuttuvista aloituskoodeista mutta ei tuo ainakaan näin
    YLE:n lähetysten laatuun tottuneen silmissä ja korvissa näytä vaikuttavan
    tallenteen laatuun.

    Alla oleva fixeri, ProjectX, GUIDVDAuthor, Nero -yhdistelmä tuottaa
    siedettäviä DVD tallenteita. (Huom! Tässä siis ei käytetä
    lainkaan USBExplorering konvertteria joka ei näytä toimivan
    YLE:n lähetysten kanssa).

    Ja tässä siis koodi (tiedotoon fsfix.c, käännös gcc -o fsfix fsfix.c.
    gcc:n Windowsille saa esim. Cygwini mukana ja saattaa tuo toimia
    Mkro$oftin kääntäjällä käännettynäkin).
    ----------
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    #define DEBUG 0

    #if DEBUG
    #define DPRINT(s) printf s
    #else
    #define DPRINT(s)
    #endif

    /***********************************************************************
    * Fixer interface prototypes
    ***********************************************************************/

    void fix_init( FILE *ofile );
    void fix( FILE *ofile, FILE *ifile );
    void fix_finish( FILE *ofile );

    /***********************************************************************
    * Main
    ***********************************************************************/

    // usage: fsfix <outfile> <infile1> ...

    int main( int argc, char *argv[] )
    {
    char *ofname;
    int arg;
    FILE *ofile;

    ofname = argv[1];
    printf( "out: %s\n", ofname );

    ofile = fopen( ofname, "wb" );
    if ( ! ofile )
    {
    fprintf( stderr, "Can't open %s for output\n", ofname );
    return 1;
    }

    fix_init( ofile );

    for ( arg = 2; arg < argc; arg++ )
    {
    char *ifname;
    FILE *ifile;

    ifname = argv[arg];
    printf( "in: %s\n", ifname );

    ifile = fopen( ifname, "rb" );
    if ( ! ifile )
    {
    fprintf( stderr, "Can't open %s for input\n", ifname );
    return 1;
    }

    fix( ofile, ifile );

    fclose( ifile );
    }

    fix_finish( ofile );

    return 0;
    }

    /***********************************************************************
    * FIXER
    ***********************************************************************/

    #define BLOCKSIZE 8192
    #define ABLOCKS 16
    #define PBLOCKS 16
    #define VBLOCKS 128

    /***********************************************************************
    * local data
    ***********************************************************************/

    typedef unsigned char u8;

    typedef struct
    {
    u8 *data;
    int next_block;
    int next_start;
    int nblocks;
    } BUFFER;

    BUFFER ab;
    BUFFER pb;
    BUFFER vb;

    BUFFER *b[] = { &vb, &ab, &pb };

    char *block_type[] = { "video", "audio", "title" };

    int kb;
    int kb_prev;

    int max_index;

    /***********************************************************************
    * local prototypes
    ***********************************************************************/

    int read64k( FILE *ifile );
    void emit( FILE *ofile );
    void move_back( BUFFER *buf );
    int find_pes_start( BUFFER *buf, int start );

    /***********************************************************************
    * interface
    ***********************************************************************/

    void fix_init( FILE *ofile )
    {
    ab.data = malloc( ABLOCKS * BLOCKSIZE );
    pb.data = malloc( PBLOCKS * BLOCKSIZE );
    vb.data = malloc( VBLOCKS * BLOCKSIZE );

    if ( !ab.data || !pb.data || !vb.data )
    {
    fprintf( stderr, "Can't allocate memory buffers\n" );
    exit( 1 );
    }

    ab.nblocks = ABLOCKS;
    pb.nblocks = PBLOCKS;
    vb.nblocks = VBLOCKS;

    ab.next_block = pb.next_block = vb.next_block = 0;
    ab.next_start = pb.next_start = vb.next_start = 0;

    kb = 0;
    kb_prev = 0;

    max_index = 0;
    }

    void fix( FILE *ofile, FILE *ifile )
    {
    int nb;

    while ( nb = read64k( ifile ) )
    {
    kb += ( nb + 1 ) * 8;
    if ( kb > kb_prev+10000 )
    {
    printf( "%d KB\n", kb );
    kb_prev = kb;
    }
    emit( ofile );
    }
    }

    void fix_finish( FILE *ofile )
    {
    emit( ofile );
    }

    /***********************************************************************
    * local functions
    ***********************************************************************/

    int read64k( FILE *ifile )
    {
    u8 flags[7];
    int i;
    int len = 0;

    if ( fread( flags, sizeof(u8), 7, ifile ) != 7 ) return 0;
    if ( fseek( ifile, BLOCKSIZE-7, SEEK_CUR ) != 0 ) return 0;

    for ( i = 0; i < 7; i++ )
    {
    if ( flags > max_index ) max_index = flags;
    if ( flags > 2 )
    {
    fprintf( stderr, "Unknown buffer flag %d\n", flags );
    exit( 1 );
    }
    len += fread( b[flags]->data + b[flags]->next_block * BLOCKSIZE,
    sizeof(u8),
    BLOCKSIZE,
    ifile );
    if ( ++b[flags]->next_block >= ++b[flags]->nblocks )
    {
    fprintf( stderr, "Out of %d blocks\n", block_type[flags] );
    exit( 1 );
    }
    DPRINT( ("%d",flags) );
    }
    DPRINT( ("\n") );
    return len/BLOCKSIZE;
    }

    void emit( FILE *ofile )
    {
    int i;
    for ( i = 0; i <= max_index; i++ )
    {
    for (;;)
    {
    int start = find_pes_start( b, b->next_start + 1 );
    if ( start < 0 ) break;

    fwrite( b->data + b->next_start,
    sizeof(u8),
    start-b->next_start,
    ofile );
    DPRINT( ("<-%d\n", i) );
    b->next_start = start;
    }
    move_back( b );
    DPRINT( ("R%d %d\n", i, b->next_block ) );
    }
    }

    void move_back( BUFFER *buf )
    {
    int nblocks = buf->next_start / BLOCKSIZE;
    if ( nblocks == 0 ) return;

    memmove( buf->data,
    buf->data + nblocks * BLOCKSIZE,
    ( buf->next_block - nblocks ) * BLOCKSIZE );
    buf->next_block -= nblocks;
    buf->next_start -= nblocks * BLOCKSIZE;
    DPRINT( ("moved %d\n", nblocks) );
    }

    int find_pes_start( BUFFER *buf, int start )
    {
    unsigned int shr = 0xffffffff;
    int i;

    for ( i = start; i < buf->next_block * BLOCKSIZE; i++ )
    {
    shr <<= 8;
    shr |= buf->data;
    if ( ( shr & 0xffffff00 ) == 0x100 &&
    ( shr & 0xff ) >= 0xBC )
    {
    return i - 3;
    }
    }
    return -1;
    }
     
  12. Ohramies

    Ohramies Uusi jäsen

    Liittynyt:
    31.01.2006
    Viestejä:
    465
    Saadut tykkäykset:
    0
    No niitä virheitä kyllä tulee siinäkin tapauksessa että ajaa sen pjx preprocess-rumban läpi ne export-tiedostot.

    Jos nyt tuon dokumentoinnin ymmärsin oikein niin tämä osaa (tai ainakin pitäisi) syödä suoraan usb explorerin kolmeen palaan runnoman pitkän leffan seuraavalla komentorivillä:
    fxfix leffa_fix leffa leffa0 leffa1

    Ko-kö?
     
  13. lapi

    lapi Guest Guest

    Liittynyt:
    28.12.2007
    Viestejä:
    16
    Saadut tykkäykset:
    0
    Juuri noi se toimii. (Joku Windowsia osaava koodaaja vois tehä GUI:n...)
     
  14. Ohramies

    Ohramies Uusi jäsen

    Liittynyt:
    31.01.2006
    Viestejä:
    465
    Saadut tykkäykset:
    0
    Sen mun tekemäni "explorer-palojen kopiointi yhdeksi isoksi tiedostoksi"-batin tapainen skriptinpätkä olisi varmasti ihan riittävä.

    Äkkiseltään katsellessa cmd.exe battikielestä loppuvat rahkeet kesken koska ei pysty ottamaan stringistä viimeistä merkkiä veks. Eli ei voi tarkistaa onko tiedosto ainoa pala jostain alle gigaan menevästä ohjelmasta. Pitäis toisinsanoen tehdä vbskriptillä vähän viisaampi.. Joululoma meni jo joten sen projektin kanssa voi vähän kestää :p

    Toki jos tuo rajoite ei haittaa niin sitten sen batin modaaminen on hyvinkin helppo nakki, pitää vain hanskata southparkit tms erikseen.
     
  15. lapi

    lapi Guest Guest

    Liittynyt:
    28.12.2007
    Viestejä:
    16
    Saadut tykkäykset:
    0
    Toivottavasti niin olisi. Kokeilin sitäkin menetelmää. Ongelmana
    tosiaan on että explorerin palat eivät ole mitään siistiä videovirtaa
    vaan tuollainen kuvaamani puskuridumppi. Siitä aiheutuu mm. että
    PES paketti päättyy kesken 8 KB rajalla jos puskurin tyyppi vaihtuu.

    Tässä esimerkki eräästä tiedostosta:
    8192 * T c0 5882 -> 14080
    14080 T c0 5882 -> 19968
    19968 T c0 5882 -> 25856
    25856 T c0 5882 -> 31744
    31744 T c0 5882 -> 37632
    32768 * T ea 0 -> *

    Offsetilla 31744 alkava audio paketti (ID c0 = audiovirta 0)
    on 5882 tavun mittainen ja seuraavan paketin pitäisi alkaa offsetilta
    37632 mutta koska audiopuskuri ei tässä ole vielä täynnä ja 32768
    on 8 KB puskurin raja niin siitä alkaa videodata (PES paketti
    ID ea = videovirta 10).

    Seuraavassa saman tiedoston alun puskureita (A = 8KB audiota
    V = 8 KB videoa):
    AAAVVVV
    VVVVVVV
    VVVVVVV
    VVVVVVV
    VVVVVVV
    AAAVVVV
    VVVVVVV

    PES virtaa oikein lukeva dekooderi
    (esim. ProjectX) lukee osan videovirtaa audioksi ja ihmettelee
    sitten kun alkaa tulla videopaketteja ilman asianmukaista
    PES headeria.

    Samanlaisia keskeytymisiä tulee videovirtaan, mutta koska
    videopuskuria seuraa suuremmalla todennäköisyydellä toinen
    videopuskuri näitä virheitä tulee varsin vähän.

    Edelleen, samanlaisia ongelmia tulee tekstivirtaan, mutta ne
    puskurit tulevat aina yksitellen, joten käytännössä jokainen
    8 KB pätkä tekstitystä sisältää virheen. (Eo. esimerkkitiedosto
    oli suomenkielinen, joten siinä ei ole testejä).

    Oleellista on siis että saadaan korjattua puskurirajoille osuvat
    PES-paketit ja sen tuo lyhyt C-ohjelma tekee. Enjoy! :thumbsup:

    Ja hieman kokemuksia viimeisen viikon ajalta -- toimii loistavasti!
    Monty Pythonit, Monte Criston kreivit ja muuta on nyt teksteineen
    siististi DVD:llä. :sleep:
     
  16. Ohramies

    Ohramies Uusi jäsen

    Liittynyt:
    31.01.2006
    Viestejä:
    465
    Saadut tykkäykset:
    0
    Mahtaako toi sun softanpätkäsi vetää herneen nenään jos se saa parametrinä tiedoston jota ei ole olemassa?

    Se battihan työntää yksinkertaisesti copylle
    copy /B tiedosto + tiedosto1 + tiedosto2 tiedosto.ts
    -rivin siitä huolimatta onko toka tai kolmas pala olemassa. Copy ei siitä hermostu.

    Vbscriptillä olisi suhteellisen helppo tehdä skripti joka toimisi vähän fiksummin, tosin en ole perehtynyt yhtään sen tiedostojenkäsittelyyn, tehnyt vain excel-makroja. Vois katsoa jos viikonloppuna jää luppoaikaa kun ei oluttakaan tammikuussa juoda.
     
  17. lapi

    lapi Guest Guest

    Liittynyt:
    28.12.2007
    Viestejä:
    16
    Saadut tykkäykset:
    0
    Kyllä vetää. Ei pidä antaa. Logiikkaa voisi parantaa monella tavalla,
    esim. siten että tarkastetaan että tulostiedosto ei ylikirjoita vahingossa
    jo olemassa olevaa tiedostoa. Syötetiedostojen olemassa olo ja
    lukukelpoisuus sekä se että ne edes näyttävät explorerin
    tekemiltä pätkiltä voitaisiin myös tarkastaa sekä laskea syötteen koko
    ja arvioida prosessoinnin aikana jäljellä olevaa aikaa, yms. hienoa.

    Haluaako joku harjoitustyönä implementoida muutokset?
     
  18. Jekutin

    Jekutin Guest Guest

    Liittynyt:
    29.07.2007
    Viestejä:
    129
    Saadut tykkäykset:
    0
    Ottaen huomioon kirjoitusajankohtasi ymmärrän tekstin sekaisuuden, mutta hieman parempaa jäsentelyä. On aikamoista pötköä.

    Eli mitä laitteesi tekee? Mitä etupaneelin näytössä lukee?
     
  19. Ohramies

    Ohramies Uusi jäsen

    Liittynyt:
    31.01.2006
    Viestejä:
    465
    Saadut tykkäykset:
    0
    Mielenkiintoista kyllä, eipä näy 1.62 firmistä vieläkään schneiderin sivuilla. Liekö siinä ollut jotain korjaamisen varaa..
     
  20. itokazie

    itokazie Uusi jäsen

    Liittynyt:
    07.11.2001
    Viestejä:
    235
    Saadut tykkäykset:
    0
    Soitin huoltoon pari päivää sitten ja kertoivat, että uusi softaa tulee jossain välissä noita Ylen tekstityksiä varten. Sanovat, että voi kestää usean kuukaudenkin. Toinen kaveri taas uskoi, että ihan pian joitakin vikkoja kun laitteet menivät silloin jumiin Ylen temppujen takia. Ylki sitten veti muutokset takas, ettei kansan tarvi sähköpiuhan kimpussa olla jatkuvasti.

    Eli todennäköisesti tässä talven aikana vielä 1.63 tai mikä lienee putkahtaa ulos. Itsellä on toiminut tuo 1.60 ihan hyvin. Kysyin myös miksi noita 1.61 ja 1.62 ei ole jaossa sanoivat, että ei ole tarpeen. Eikös nänä jos korjaa joitakin tekstityksien viiveitä vai?