MediaMVP ist tot, es lebe MVPServer!

  • Hallo allerseits,


    gestern, nach einer Anregung aus der MVPSERVER Mailingliste, ist es mir gelungen, das Zapping in der MVP-Server Anwendung gangbar zu machen.


    War eigentlich nicht so schwer.
    Wer es ausprobieren möchte, folgendes ist zu tun:
    a) Anpassen der keymap.py (normalerweise in /usr/shared/mvpserver/skins/utils)


    # Keymap for the original Hauppauge remote
    # [ name, menukey, mediakey ]
    small_keymap = {
    '0x01':['0', '0', 'SKIP0'],
    '0x02':['1', '1', 'SKIP10'],
    '0x03':['2', '2', 'SKIP20'],
    '0x04':['3', '3', 'SKIP30'],
    '0x05':['4', '4', 'SKIP40'],
    '0x06':['5', '5', 'SKIP50'],
    '0x07':['6', '6', 'SKIP60'],
    '0x08':['7', '7', 'SKIP70'],
    '0x09':['8', '8', 'SKIP80'],
    '0x0a':['9', '9', 'SKIP90'],
    '0x0d':['OK', 'OK', 'OK'],
    '0x0e':['Rewind', '', 'REWIND'],
    '0x0f':['Forward', '', 'FORWARD'],
    '0x10':['Vol-', 'LEFT', 'VOLDOWN'],
    '0x11':['Vol+', 'RIGHT', 'VOLUP'],
    '0x12':['Ch+', 'UP', ''],
    '0x13':['Ch-', 'DOWN', ''],
    '0x14':['Power', '', 'SHUTDOWN'],
    '0x15':['Mute', '', 'MUTE'],
    '0x19':['Play', 'OK', 'PLAY'],
    '0x1a':['Record', '', ''],
    '0x1b':['Stop', '', 'STOP'],
    '0x1c':['Pause', '', 'PAUSE'],
    '0x1e':['Menu', 'MENU', ''],
    '0x20':['Back', 'BACK', ''],
    '0x23':['Go', '', ''],
    '0x24':['Red', 'RED', ''],
    '0x25':['Green', 'GREEN', 'SKIPBACK'],
    '0x26':['Yellow', 'YELLOW', 'SKIPFWD'],
    '0x27':['Blue', 'BLUE', ''],
    '0x28':['Blank', 'BLANK', ''],
    '0x29':['Full', '', ''],

    '0x2a':['Replay', 'SKIPBACK', 'SKIPBACK'],
    '0x2b':['Skip', 'SKIPFWD', 'SKIPFWD'] }

    # Keymap for the new remote
    large_keymap = {
    '0x01':['0', '0', 'SKIP0'],
    '0x02':['1', '1', 'SKIP10'],
    '0x03':['2', '2', 'SKIP20'],
    '0x04':['3', '3', 'SKIP30'],
    '0x05':['4', '4', 'SKIP40'],
    '0x06':['5', '5', 'SKIP50'],
    '0x07':['6', '6', 'SKIP60'],
    '0x08':['7', '7', 'SKIP70'],
    '0x09':['8', '8', 'SKIP80'],
    '0x0a':['9', '9', 'SKIP90'],
    '0x0d':['OK', 'OK', 'OK'],
    '0x0e':['Rewind', '', 'REWIND'],
    '0x0f':['Forward', '', 'FORWARD'],
    '0x10':['Left', 'LEFT', ''],
    '0x11':['Right', 'RIGHT', ''],
    '0x12':['Up', 'UP', ''],
    '0x13':['Down', 'DOWN', ''],
    '0x14':['Power', '', 'SHUTDOWN'],
    '0x15':['Mute', '', 'MUTE'],
    '0x19':['Play', 'OK', 'PLAY'],
    '0x1a':['Record', '', ''],
    '0x1b':['Stop', '', 'STOP'],
    '0x1c':['Pause', '', 'PAUSE'],
    '0x1e':['Menu', 'MENU', ''],
    '0x1f':['Guide', '', ''],
    '0x20':['Back', 'BACK', ''],
    '0x23':['Go', '', ''],
    '0x24':['Red', 'RED', ''],
    '0x25':['Green', 'GREEN', 'SKIPBACK'],
    '0x26':['Yellow', 'YELLOW', 'SKIPFWD'],
    '0x27':['Blue', 'BLUE', ''],
    '0x28':['Blank', 'BLANK', ''],
    '0x29':['Full', '', ''],

    '0x2a':['Replay', 'SKIPBACK', 'SKIPBACK'],
    '0x2b':['Skip', 'SKIPFWD', 'SKIPFWD'],

    '0x2c':['TV', '', ''],
    '0x2d':['Videos', '', ''],
    '0x2e':['Music', '', ''],
    '0x2f':['Pictures', '', ''],
    '0x30':['Radio', '', ''],
    '0x31':['Vol+', '', 'VOLUP'],
    '0x32':['Vol-', '', 'VOLDOWN'],
    '0x33':['Ch+', 'UP', ''],
    '0x34':['Ch-', 'DOWN', ''],
    '0x35':['PrevCh', '', ''],
    '0x36':['*', '', ''],
    '0x37':['Subtitles', '', ''] }




    _keymap = None


    UND


    def process_key(code):
    """Process a raw key code. This will handle any commands initially and then
    return an action. If the action is '' then none should be performed.
    """
    print 'Handle code ', code
    ret = 0
    if mediamvp.Playing() != '':
    key = mediakey(code)

    if key != '' and key !='OK':
    ret = mediamvp.Command(key)
    key = ''
    key = ''
    if ret == 0:
    key = menukey(code)
    print 'Returning ', key


    b) Anpassen der vdtv.py Datei (normalerweise in login as: root
    /usr/shared/mvpserver/skins/default):
    (nahe def menu(...)

    if k =='':
    continue


    if k =='EXIT' or k == 'BACK':
    quit = 1
    elif k == 'MENU':
    if self.enabled:
    self.enabled = 0
    else:
    self.enabled = 1
    elif k == 'LEFT':
    hlist.left()
    dlist = self.getchannels(hlist,1)
    elif k == 'RIGHT':
    hlist.right()
    dlist = self.getchannels(hlist,1)

    elif k == 'SKIPFWD':
    dlist.lineDown()
    # Check there's an item here!
    if item:
    channel = item.getChannel()
    if channel.vpid == '0':
    type = 'ES/'
    else:
    type = 'PES/'
    url = self.config.getAsString("vdr.streamdev_url")
    url += type
    url += channel.id
    mediamvp.Play(url)
    elif k == 'SKIPFWD':
    dist.lineUp()
    # Check there's an item here!
    if item:
    channel = item.getChannel()
    if channel.vpid == '0':
    type = 'ES/'
    else:
    type = 'PES/'
    url = self.config.getAsString("vdr.streamdev_url")
    url += type
    url += channel.id
    mediamvp.Play(url)

    elif k == 'DOWN':
    dlist.lineDown()
    elif k == 'UP':
    dlist.lineUp()
    elif k == 'GREEN':
    dlist.pageDown()
    elif k == 'YELLOW':
    dlist.pageUp()


    Damit kann man dann mit den Skip Tasten (auf der "Hauppauge-Fernbedienung" ganz unten, während des TV sehens umschalten. (Geht zur Zeit erst beim 2. mal).


    Ist noch alles ein bisschen "dirty", aber ich werde heute abend nochmal alles nachschauen und bei interesse besser dokumentieren...
    Vielleicht wage ich mich ja auch an die erstellung einers .diff (habe ich noch nie gemacht)...


    Ich hoffe, ich kann damit ein bisschen helfen,


    Zorin

    Mein Produktiv-VDR:
    Gigabyte EP43-DS4, als Streamdev-Client,
    Server: Core i5 mit 8GB und 2*DVB-C Budget und 2x Digital Devices C/T via yaVDR als Xen-Guest mit PCI(e) passthrough
    Test-Client: Acer Revo R3600

  • Patch erstellen ist ganz einfach.
    Verzeichnis duplizieren: z.B. "cp -r dir-old dir-patched"
    Dateien in dir-patched ändern
    Patch erstellen: "diff -Nur dir-old dir-patched > file.patch"


    Patch wird eingespielt mit: "patch -p1 < file.patch" (innerhalb des Verzeichnisses)

  • Danke, Mephisto,
    hier wird ja wirklich schnell geholfen.


    Werde es nachher / am Wochenende gleich mal probieren...

    Mein Produktiv-VDR:
    Gigabyte EP43-DS4, als Streamdev-Client,
    Server: Core i5 mit 8GB und 2*DVB-C Budget und 2x Digital Devices C/T via yaVDR als Xen-Guest mit PCI(e) passthrough
    Test-Client: Acer Revo R3600

  • Hi,
    das ist ja super,das es hier weiter geht. :D
    Kann jemand von euch die Aufnahmen vom vdr abspielen?
    Bekomme es nicht gebacken. :(
    Wäre doch wohl sinnvoll hier mal ne madiamvp.conf zu posten die funktioniert.
    Wäre schön wenn einer das mal machen würde.
    gruß
    Dejuh

    Server-3000-AMD-64bit-1536mbRam- Suse-10.0-DHCP-TFTP-PHP-Apache-VDR-1.3.43-2x DVB-S-TT-1.3 und 2x NOVA-S-250GB-250GB für Video
    Bose-Zenega-Xine

    Client mit Epia-DXR3-Lüfterlos und Linvdr mit vdr-1.3.27
    DVD-Wechsler ......zu sehen auf meiner HP
    VDR-Touch-Control mit DXR3 und Linvdr-1.3.27
    2x Mediamvp

  • Zitat

    Wäre doch wohl sinnvoll hier mal ne madiamvp.conf zu posten die funktioniert.


    fände ich auch ganz toll :]

    mfg
    bronsky
    _________________________________________________________
    VDR 1.4.3-4 für LinVDR 0.7 ; Athlon XP1,75 GHz; ASUS A7V; 512 MB; 160GB ; DVD-Brenner: LG; DVB-S: TT 1.6 & TT Budget & CI 3.5" mit AC; TFT PSOne an ATI 7000 64MB comp.
    Testsystem:LFS 1.0.9 nach HJS und linvdr beta 0.75 ; Athlon 64 3000+; MSI K8N Neo ; 512 MB; 80GB&160GB Samsung; DVD-Brenner: LG; DVB-S: TT 1.5;

  • Tach,


    grundsätzlich wäre das schon sinnvoll... allerdings bringt das ja auch nicht so viel, weil ihr ja dann ohnehin gewisse Netzwerkeinstellungen ohnehin wieder anpassen müsstet.


    Ausserdem ist ja die .conf noch der geringste Teil des ganzen Kuchens. Auch die Bild-, Musik- und Videoverzeichnisse dürften ja auch bei vielen woanders liegen.


    Da gibt es sicher noch die ein oder andere Baustelle.


    Daher wie immer bei Linux...wenn man das System an sich verstanden hat, bringt es einen erst wirklich weiter :)


    Greets Olaf

    Ollie jetzt auch im Internet !!! ->> http://www.ohms.ws << VDR mit ASUS A7V8X-X, Athlon XP 2 Ghz, 512 MB DDR-RAM und gentoo 2008.0 Linux, ner Menge Platten (1 TB), 2 Brennern und Karten-Vollausstattung (1 X Nexus 4 MB Mod, 3 x Nova, 1 PVR 350) , TFT/Sony PSOne, Nvidia Graka und und und * Linux - wir geben ihrem Computer das Leben zurück *

  • Hi Olaf,
    damit hast Du immer noch nicht meine Fragen beantwortet.
    gruß
    Dejuh

    Server-3000-AMD-64bit-1536mbRam- Suse-10.0-DHCP-TFTP-PHP-Apache-VDR-1.3.43-2x DVB-S-TT-1.3 und 2x NOVA-S-250GB-250GB für Video
    Bose-Zenega-Xine

    Client mit Epia-DXR3-Lüfterlos und Linvdr mit vdr-1.3.27
    DVD-Wechsler ......zu sehen auf meiner HP
    VDR-Touch-Control mit DXR3 und Linvdr-1.3.27
    2x Mediamvp

  • Tach Dejuh,


    meinste die Frage mit dem Abspielen von VDR-Aufnahmen ? Hm, richtig, aber das habe ich auch noch nicht hinbekommen.


    Dominic meinte, es hätte vielleicht etwas damit zu tun, dass die MVP die Videoaufnahmen im /video-Verzeichnis sucht und nicht wie bei vielen, /video0 als Startverzeichnis annimmt. Aber selbst ein Symlink von /video auf video0 oder das eigenständige Anlegen eines /video0 Verzeichnisses mit ein paar VDR-Aufnahmen drin haben mich da nicht weitergebracht.


    Also, damit wäre die Frage wohl erledigt.


    Nein, ich komm an meine VDR-Aufnahmen auch nicht ran :-()


    Greets Olaf

    Ollie jetzt auch im Internet !!! ->> http://www.ohms.ws << VDR mit ASUS A7V8X-X, Athlon XP 2 Ghz, 512 MB DDR-RAM und gentoo 2008.0 Linux, ner Menge Platten (1 TB), 2 Brennern und Karten-Vollausstattung (1 X Nexus 4 MB Mod, 3 x Nova, 1 PVR 350) , TFT/Sony PSOne, Nvidia Graka und und und * Linux - wir geben ihrem Computer das Leben zurück *

  • Hi Olaf,
    das wollte ich wissen :D
    DANKEEEE
    gruß
    Dejuh

    Server-3000-AMD-64bit-1536mbRam- Suse-10.0-DHCP-TFTP-PHP-Apache-VDR-1.3.43-2x DVB-S-TT-1.3 und 2x NOVA-S-250GB-250GB für Video
    Bose-Zenega-Xine

    Client mit Epia-DXR3-Lüfterlos und Linvdr mit vdr-1.3.27
    DVD-Wechsler ......zu sehen auf meiner HP
    VDR-Touch-Control mit DXR3 und Linvdr-1.3.27
    2x Mediamvp

  • Cool Cool Cool ...


    Scnr :D


    LG
    Roman

    Wohnzimmer (Client 1): C't Vdr (Sarge), 2.6.15-sl, 1.4.0-2, TT-1.5 FF, Hermes 651, 40 GB, 2Ghz Celeron, 512MB, PSOne TFT
    Server: C't VDR (Sid), 2.6.15-1-k7, 1.4.1-1, TT-1.6 FF, XP-2000+, 500GB, 512MB
    Schlafzimmer (Client 2): MediaMVP
    MediaMVP, Bose S 100, 400er Oldischlepptopp für den Garten

  • Bei mir gingen die Recordings anfangs auch nicht.
    Ich habe mir dann mal die Fehlermeldung und später dann den Source-Code angeschaut.
    Bei mir (vdr 1.3.6)) war das Problem, das Mvpserver den Zeitteil des Aufnahmeformats als '%Y-%m-%d.%H:%M' erwartet. Korrekt sollte aber '%Y-%m-%d.%H.%M' sein. Ich habe (danke nochmals, mephisto) einen patch erstellst:


    diff -Nur vdr/recording.py vdr-patched/recording.py
    --- vdr/recording.py 2005-05-04 21:54:49.000000000 +0200
    +++ vdr/recording.py.orig 2005-05-20 02:15:27.000000000 +0200
    @@ -120,7 +120,7 @@
    self.resume = -1


    elif isinstance(source, StringType) and os.path.isdir(source):
    - pat = re.compile('(/video\d*/)?(.*)/(\d{4}-\d\d-\d\d\.\d\d\:\d\d)\.(\d\d)\.(\d\d)\.rec/?')
    + pat = re.compile('(/video\d*/)?(.*)/(\d{4}-\d\d-\d\d\.\d\d\.\d\d)\.(\d\d)\.(\d\d)\.rec/?')
    result = pat.match(source)
    if result is None:
    raise TypeError, 'path of recording has unknown format'
    @@ -130,7 +130,7 @@
    s3 = re.compile('(\x01)')
    s4 = re.compile('(\x02)')
    self.name = s4.sub('/',s3.sub('\'',s2.sub('~', s.sub(' ',result.group(2)))))
    - self.start = int(time.mktime(time.strptime(result.group(3), '%Y-%m-%d.%H:%M')))
    + self.start = int(time.mktime(time.strptime(result.group(3), '%Y-%m-%d.%H.%M')))
    self.prio = int(result.group(4))
    self.lifetime = int(result.group(5))


    Es wäre schön, wenn Ihr Euch mal kurz meldet, mit welcher VDR Version die Recordings mit und ohne PATCH funktionieren...


    Viel Erfolg,


    Zorin

    Mein Produktiv-VDR:
    Gigabyte EP43-DS4, als Streamdev-Client,
    Server: Core i5 mit 8GB und 2*DVB-C Budget und 2x Digital Devices C/T via yaVDR als Xen-Guest mit PCI(e) passthrough
    Test-Client: Acer Revo R3600

  • Hi Folks,


    erstmal danke an Olaf für seine ganz gut verwendbare Installationshilfe.
    ;)
    Da es ja scheinbar den Meisten - zumindest allen, die keine absolute Standardinstallation
    des VDR's fahren - nicht gelingt die Recordings abzurufen, hier mal meine Abwandlung
    vom skins/vdr Verzeichnis.


    1. mein SVDRP läuft nicht auf 2001, sondern 2002 ...
    2. mein video Verzeichnis liegt unter /video/video1/video[0-9]


    Bei der ursprünglichen festen Verdrahtung geht das natürlich so nicht ... ->
    also Source-Code anschauen und Patchen der python Dateien ...
    Für die Zukunft sollte das in die 'mediamvp.conf' rein ...


    Nun laufen bei mir auch dei Recordings.

    Ich hoffe das hilft dem einen oder anderen


    :)


    Viel Erfolg


    --------------------------- patch attached -----------------------

  • Hallo Zorin,


    deine Struktur - ohne den ":" im VDR Verzeichnisnamen sieht danach aus, als ob dein VDR Windoof-verträglich gemacht wurde ...


    Das dürfte der Grund für den dann nötigen Patch sein; das ist soweit ich bisher sehen konnte (-> 1.3.24) unabhängig von der Version vom VDR.


    Allgemeiner sollte der Patch wohl für beide Typen gehen, wenn statt
    \. bzw. \:
    ein [.:] an der REGEXP Stelle steht ...


    Ach ja, schalte bitte beim nächstenmal die Smilies ab ...

  • Vielen Dank für die Erläuterung, dires...


    Ja, das mit den Smilies ist mir leider erst hinterher aufgefallen...
    Was meinst Du genau mit "windows-kompatibel' ?


    Konnte da nicht ganz folgen....


    Inzwischen hat ja dann der MVPServer wirklich alles, was das alte Plugin auch hatte...


    Grüsse,


    Zorin

    Mein Produktiv-VDR:
    Gigabyte EP43-DS4, als Streamdev-Client,
    Server: Core i5 mit 8GB und 2*DVB-C Budget und 2x Digital Devices C/T via yaVDR als Xen-Guest mit PCI(e) passthrough
    Test-Client: Acer Revo R3600

  • wenn man den VDR mit VFAT=1 compiliert wird halt bei aufnahmen anstat dem >>:<< Zeichen ein >>.<< Zeichen verwendet. Sonst kann es bei mir z.B. mit Samba probleme geben. Ist auch sehr schön im Quellcode nachzulesen was VFAT bewerktstelligt

    Aktuelle Systeme:
    VDR-Server: MSI KT6A Ultra FISR ; Athlon XP 2200+ ; GrKa Geforce 2 MX; 256MB DDR-SDRam Plugins: streamdev-server, remote
    2 x DVB-Budget Karte, Gentoo, Kernel 2.6.8 usw....

  • Hallo Leute,


    bekommen es nicht ans laufen, MVP bootet nicht. In der mvpserver.conf
    ist die dongle.bin 23104 eingetragen. Wo muss diese Dongle.bin liegen?


    Die IP bezieht sich der MVP vom Router?


    Der Eintrag in der mvpserver:


    [mvp]
    ;reject = 192.168.155.... (Was für eine IP muss da rein.



    Danke für Eure Hilfe


    Grüße


    Eric

    CM Centurion 5, Asus P4800, Celeron 2,6 , Infineon 2x 512 MB, 1x WD 320GB (video) NEC ND-3500A, 2x Hauppauge Nexus-s, 1x Nova-S CI; VDRKino 1.2.27 mit VDR-1.3.27.

  • Du musst einen DHCP-Server und einen TFTP-Server aufsetzen (distributionsspezifisch). Dann musst Du den DHCP-Server so konfigurieren, dass er für die MediaMVP die auf die dongle.bin im tftproot-Verzeichnis verweist. Ungefär so:


    Code
    host mediamvp {
            hardware ethernet 00:0d:fe:10:31:92;
            fixed-address 192.168.0.140;
            next-server 192.168.0.1;
            filename "/tftproot/dongle.bin";
        }
  • Ich dachte das braucht man bei dem mvpserver nicht mehr?


    Eric

    CM Centurion 5, Asus P4800, Celeron 2,6 , Infineon 2x 512 MB, 1x WD 320GB (video) NEC ND-3500A, 2x Hauppauge Nexus-s, 1x Nova-S CI; VDRKino 1.2.27 mit VDR-1.3.27.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!