[ANNOUNCE] vdr-streamdev-0.5.0 / 0.4.0

  • Zitat

    Original von schmirl


    Offenbar fehlt es Dir an der passenden Entwicklungsumgebung. Evtl musst Du soetwas wie ein vdr-dev Paket nachinstallieren - das ist abhängig von Deiner Distribution. Bitte informiere Dich in der Dokumentation zu yavdr.


    Eine Doku dafür haben wir nicht, weil wir da nichts eigenes machen, das ist die typische Debian/Ubuntu-Vorgehensweise. Dieser Post von hotzenplotz5 kommt einer Anleitung noch am nächsten. Ich glaube bei etobi gab es irgendwo auch noch ein paar sehr informative Seiten.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Zitat

    Original von schmirl


    Laut mencoder manpage muss man wohl den Parameter -novideo bzw. die Parameter -vc null -vo null angeben. Kannst Du diese Parameter testweise mal anstelle von "-ovc $VC $VOPTS" in die externremux.sh schreiben? Wenn das klappt: Kann man "-ovc $VC $VOPTS" auch stehen lassen und die Parameter einfach zusätzlich angeben?


    So, ich habe beides getestet, läuft leider immer noch nicht:


    Streamdev: Accepted new client (HTTP) 192.168.178.21:46764
    vdr: [24498] streamdev-server: Detaching current receiver
    vdr: [29895] streamdev-livestreaming thread started (pid=24253, tid=29895)
    vdr: [29894] streamdev-writer thread started (pid=24253, tid=29894)
    vdr: [29892] externremux.sh: mencoder -novideo -oac mp3lame -lameopts mode=3:preset=16 -vf scale -zoom -xy 160 -o /tmp/externremux-14053 -- -
    vdr: [29892] externremux.sh: get_path("config") problem
    vdr: [29892] externremux.sh: Seek failed
    vdr: [29892] externremux.sh: Seek failed
    vdr: ....
    vdr: [29892] externremux.sh: Video stream is mandatory!
    vdr: [24258] ERROR: 1 ring buffer overflow (188 bytes dropped)
    vdr: [24498] client (HTTP) 192.168.178.21:46764 has closed connection
    vdr: [24498] streamdev: closing streamdev connection to 192.168.178.21:46764
    vdr: [24258] ERROR: 55 ring buffer overflows (10340 bytes dropped)
    vdr: [24609] buffer usage: 70% (tid=29895)
    vdr: [24498] ERROR: streamdev-livestreaming thread 29895 won't end (waited 3 seconds) - canceling it...
    vdr: [29894] streamdev-writer thread ended (pid=24253, tid=29894)
    vdr: [24498] streamdev-server: externremux process won't stop - killing it
    vdr: [24498] buffer stats: 2801388 (74%) used


    Streamdev: Accepted new client (HTTP) 192.168.178.21:57718
    vdr: [24498] streamdev-server: Detaching current receiver
    vdr: [30252] streamdev-livestreaming thread started (pid=24253, tid=30252)
    vdr: [30251] streamdev-writer thread started (pid=24253, tid=30251)
    vdr: [30249] externremux.sh: mencoder -vc null -vo null -oac mp3lame -lameopts mode=3:preset=16 -vf scale -zoom -xy 160 -o /tmp/externremux-19967 -- -
    vdr: [30249] externremux.sh: get_path("config") problem
    vdr: [30249] externremux.sh: -vo is not an MEncoder option
    vdr: [24258] ERROR: 1 ring buffer overflow (188 bytes dropped)
    vdr: [24258] ERROR: 52 ring buffer overflows (9776 bytes dropped)
    vdr: [24609] buffer usage: 70% (tid=30252)
    vdr: [24609] buffer usage: 80% (tid=30252)
    vdr: [24609] buffer usage: 90% (tid=30252)
    vdr: [24609] ERROR: 1 ring buffer overflow (188 bytes dropped)
    vdr: [24258] ERROR: 58 ring buffer overflows (10904 bytes dropped)
    vdr: [24609] ERROR: 10330 ring buffer overflows (1942040 bytes dropped)
    vdr: [24258] ERROR: 58 ring buffer overflows (10904 bytes dropped)
    vdr: [24498] client (HTTP) 192.168.178.21:57718 has closed connection
    vdr: [24498] streamdev: closing streamdev connection to 192.168.178.21:57718
    vdr: [24609] ERROR: 10359 ring buffer overflows (1947492 bytes dropped)
    vdr: [24258] ERROR: 58 ring buffer overflows (10904 bytes dropped)
    vdr: [24498] ERROR: streamdev-livestreaming thread 30252 won't end (waited 3 seconds) - canceling it...
    vdr: [30251] streamdev-writer thread ended (pid=24253, tid=30251)
    vdr: [24498] streamdev-server: externremux process won't stop - killing it
    vdr: [24498] buffer stats: 3759812 (99%) used


    Die Datei "/tmp/externremux-xxxx" wird erstellt und sofort wieder gelöscht.


    Ronny

  • folgendes getestet:
    -alle Plugins auf server/client disabled
    - streamdev-filter = 0
    - am client auf ARD HD, dann auf SKY Cinema (streaming) und zurück auf ARD HD
    Logs dazu: client.1.tgz und server.1.tgz


    -dann streamdev-filter = 1
    - am client auf ARD HD, dann auf SKY Cinema (streaming) dann auf SAT 1
    Logs dazu: client.2.tgz und server.2.tgz


    Ich hoffe Du kannst was erkennen.

  • Hallo!


    Ich wollte die neue Version auch gerne testen - allerdings scheitere ich schon beim Compilieren:

    Code
    g++ -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses -fPIC -c -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DUSE_CUTTIME -DUSE_JUMPPLAY -DUSE_LIEMIEXT -DUSE_MAINMENUHOOKS -DUSE_PLUGINMISSING -DUSE_SORTRECORDS -DUSE_WAREAGLEICON -D_GNU_SOURCE -I/src/vdr-1.7.14/include -I.. -o extern.o extern.c
    extern.c: In constructor `Streamdev::cTSExt::cTSExt(cRingBufferLinear*, const cServerConnection*, const cChannel*, const int*, const int*)':
    extern.c:154: Fehler: »const class std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<const std::string, std::string> > >« hat kein Element namens »at«


    Liegt es an meiner alten gcc-Installation (3.4.6)?


    Gruß,
    Nico

  • Zitat

    Originally posted by NicoWallmeier
    Ich wollte die neue Version auch gerne testen - allerdings scheitere ich schon beim Compilieren:
    Liegt es an meiner alten gcc-Installation (3.4.6)?


    Ja, gut erkannt. Ist in der CVS-Version bereits behoben. Patch findest Du im Bugtracker.

  • Zitat

    Originally posted by ronny_b


    So, ich habe beides getestet, läuft leider immer noch nicht:


    Nach dem was man in Google so findet, ist mencoder nur mit viel Trickserei dazu zu bewegen, einen reinen Audio-Strom zu bearbeiten. Kennt jemand eine gute und allgemein verfügbare Alternative? Kenne mich da leider nicht sonderlich gut aus. Im Thread [geht!] mimetype audio für externremux-radio, war: ffmpeg, wie mimetype festlegen? steht ein Aufruf mit ffmpeg.


  • In beiden Logs wird über streamdev laufend Rock-Antenne eingestellt. Klingelt da was bei Dir? Ausserdem ist der Client laufend an ANIXE HD und Einsvestival HD interessiert, und das in allen Fällen nicht für Live-Bild. Interessanterweise gilt das auch für das Umschalten auf SKY Cinema.


    Das Umschalten auf Sky Cinema ist nur im client.1 Log einmal zu sehen ist. Du sagst, Du hättest auch im client.2 Log auf SKY Cinema umgeschaltet. Davon steht nichts im Log. Auch von ARD HD und SAT1 keine Spur, was allerdings normal wäre wenn Du diese Kanäle in der channels.conf des Clients fest auf die lokale DVB-Karte gebunden haben solltest.


    Auch sehr auffällig: Ein normaler Umschaltvorgang des VDR läuft über die Funktion GetDevice. Die fragt erstmal bei jedem Device nach, ob denn der Kanal überhaupt zur Verfügung gestellt wird. Nur wenn dies der Fall ist und sich VDR entschließt, den Kanal tatsächlich über dieses Device zu beziehen, wird der Kanal auf diesem Device eingestellt. Bei Streamdev entspricht dies den Befehlen PROV (steht der Kanal zur Verfügung) und TUNE (Kanal einstellen). Ich sehe in beiden Logs nur ein einziges Mal den PROV-Befehl, nämlich beim Umschalten auf Sky Cinema. Der Client sendet aber laufend TUNE Befehle für Rock-Antenne (funktioniert) sowie ANIXE HD und Einsvestival HD (schlägt fehl da Kanal nicht bekannt).


    Irgendetwas ist hier völlig daneben. Wenn keine Plugins mehr aktiv sind: Sind irgendwelche Patches in Deinem VDR?

  • Hallo Frank.


    Danke für die Analyse.
    Der vdr ist bei mir immer nur mit dem liemikuutio-patch versehen.
    Ich habe am client mal mit einem vanilla vdr getestet. Keine Besserung. Dann die channels.conf auf 3 Kanäle reduziert. sat/pro7/sky.
    Und siehe da: kein Channelswitch auf dem server.
    Kurze Rede, langer Sinn: es liegt am channels.conf Eintrag für Rockantenne.
    Ohne gut, mit schlecht.
    Warum auch immer, und warum sollte bei mir da was klingeln?
    Muss ich halt ohne Rockantenne einschlafen. Habe ich bis heute ja auch ohne getan.
    Besten Dank für die Hilfe.


    Alexander

    WoZi: VDR 2.3.8 auf OpenSuse Leap 42.1, Kernel 4.7.0-RC5, K208 [GeForce GT 730TT-Budget S2-3200 PCI,TechnoTrend TVStick CT2-4400 USB, Kodi git
    SchlafZi: VDR 2.3.8, OpenSuse Leap 42.1, Kernel 4.7.2, GeForce GT 630 Rev. 2, Hauppauge WinTV-HVR4000 PCI

    Keller: Headless PI3, VDR 2.3.8, Technotrend TT Connect S2-3600 USB


  • Hallo,


    ich versuche gerade das Streamen per ext zum Laufen zu bekommen. Ich verwende VLC 1.1.0 unter Windows und greife auf System 3 zu.


    Das Streaming mittels TS und PES funktioniert einwandfrei, sobald ich jedoch EXT nutzen möchte, gibt es folgende Fehlermeldungen:


    VDR:

    Code
    Aug  1 12:12:05 ionvdr vdr: [4016] Streamdev: Accepted new client (HTTP) 192.168.1.49:1112
    Aug  1 12:12:05 ionvdr vdr: [4224] streamdev-livestreaming thread started (pid=3990, tid=4224)
    Aug  1 12:12:05 ionvdr vdr: [4223] streamdev-writer thread started (pid=3990, tid=4223)
    Aug  1 12:12:08 ionvdr vdr: [4016] ERROR: read from client (HTTP) 192.168.1.49:1112 failed: Die Verbindung wurde vom Kommunikationspartner zurückgesetzt
    Aug  1 12:12:08 ionvdr vdr: [4016] streamdev: closing streamdev connection to 192.168.1.49:1112
    Aug  1 12:12:08 ionvdr vdr: [4224] streamdev-livestreaming thread ended (pid=3990, tid=4224)
    Aug  1 12:12:08 ionvdr vdr: [4223] streamdev-writer thread ended (pid=3990, tid=4223)
    Aug  1 12:12:11 ionvdr vdr: [4016] buffer stats: 160176 (4%) used


    Die tmp-Datei für externremux wird dabei für kurze Zeit (solange bis der VLC aufgibt) in /tmp angelegt und out.log zeigt sinnvolle Werte.


    VLC liefert folgende Fehlermeldung:

    Code
    VLC kann die MRL 'http://192.168.1.45:3000/ext/5' nicht öffnen. Sehen Sie für Details im Fehlerprotokoll nach.
    
    
    access_http error: malformed header line: RIFFýýýýAVI LIST2
    access_http error: malformed header line: RIFFýýýýAVI LIST2
    access_mms error: malformed header line: RIFFýýýýAVI LIST2
    main error: open of `http://192.168.1.45:3000/ext/5' failed: (null)


    M.E. versteht der VLC den HTTP-Stream nicht, oder?


    Gruss
    Marcus

    My VDRs:

  • Zitat

    Originally posted by dad401
    VLC liefert folgende Fehlermeldung:

    Code
    VLC kann die MRL 'http://192.168.1.45:3000/ext/5' nicht öffnen. Sehen Sie für Details im Fehlerprotokoll nach.
    
    
    access_http error: malformed header line: RIFFýýýýAVI LIST2
    access_http error: malformed header line: RIFFýýýýAVI LIST2
    access_mms error: malformed header line: RIFFýýýýAVI LIST2
    main error: open of `http://192.168.1.45:3000/ext/5' failed: (null)


    Kann es sein, dass das eine alte externremux.sh ist, die noch nicht an die neuen Anforderungen angepasst ist? Falls ja: Bitte eine neue externremux.sh nehmen oder in der alten externremux.sh vor Aufruf von mencoder (oder was auch immer sonst die eigentliche Arbeit macht) folgende Zeilen ergänzen

    Code
    echo -ne 'Content-type: video/mpeg\r\n'
    echo -ne '\r\n'
  • vielleicht ist das ganze ein wenig zu OT:
    aber...basteln macht halt spass
    Zum Thema:
    ich habe mir bei server4you einen "Testserver" besorgt.
    Dann habe ich auf diesem VLC 1.0.6 kompiliert und installiert.
    Was auch funktioniert hat.
    der VLC soll quasi als "Verteiler" meines Streams dienen
    In der Firewall testweise ALLE TCP und UDP Ports freigegeben.
    Dann habe ich mit folgender Commandline den VLC aufgerufen:

    Code
    cvlc -vv -I http http://xxxxxxx.dyndns.info:8889/ext/9 --sout="#std{access=http,mux=ts,dst=0.0.0.0:8181}"


    aufgerufen.
    Der streamdev server acceptiert auch den connect, allerdings kommt nach ein paar Sekunden folgende Fehlermeldung:

    Code
    ERROR: streamdev-server: couldn't send data: Connection timed out


    O.g. commandline funktioniert übrigens auf meinem lokalen VLC einwandfrei.
    Any Ideas?
    EDIT: habe den Fehler gefunden..
    Mein Streamingserver, und alle anderen Dienste, die mein Server bereitstellt, und der hinter einer Fritzbox hängt, ist nur noch ansprechbar, wenn der Client Rechner auf eine max. MTU von 1488 eingestellt ist.
    Warum auch immer, da hat es wohl die Konfiguration der Fritzbox ein wenig zerschossen..

    Linux Mint Helena (Ubuntu 9.10),
    Athlon X250 2x3.0 GHZ/4GB RAM
    VDR 1.6.x, Streamdev-Server 0.5, Live 0.2 (Eigenkompilate)

    2 Mal editiert, zuletzt von vel_tins ()

  • Zitat

    Original von schmirl
    Kann es sein, dass das eine alte externremux.sh ist, die noch nicht an die neuen Anforderungen angepasst ist?


    Jetzt wo Du es sagst - weiss ich woran es liegen könnte. Ich glaube ich habe die externremux per Parameter dem Plugin übergeben - da ist es völlig egal, dass die neue in /etc/vdr/plugins/streamdev-server liegt :-/


    Wenn ich wieder am VDR bin, prüfe ich das gleich mal.


    Danke & Gruss
    Marcus

    My VDRs:

  • Zitat

    Original von dad401
    Jetzt wo Du es sagst - weiss ich woran es liegen könnte. Ich glaube ich habe die externremux per Parameter dem Plugin übergeben - da ist es völlig egal, dass die neue in /etc/vdr/plugins/streamdev-server liegt :-/


    Das war es - Problem behoben.


    Zur externremux.sh:


    Beim Updaten der neuen mit meinen alten Werten der externremux.sh stelle ich fest, dass es ggf. sinnvoll wäre einen "generellen" MPLAYER-Parameter einzuführen, z.B. MPLAYER_OPTS


    Momentan kann ich z.B. folgende Zeile (ohne etwas am Skript intern zu ändern) nicht verwenden: -vf scale=320:240, da die Höhe ja automatisch vorgegeben wird, wenn WIDTH angegeben ist. Weiterhin braucht man ja evtl. zukünftig noch weitere MPLAYER-Optionen (neben -oac, -ovc etc.).


    Weitere Idee:


    mit meinem alten externremux.sh (m.E. eine aus dem Wiki) konnte ich auch Aufnahmen des VDR oder eine DVD abspielen. Ggf. kann man das ja auch hier integrieren. Das ganze sieht etwa wie folgt aus:


    Gruss
    Marcus

    My VDRs:

  • Zitat

    Momentan kann ich z.B. folgende Zeile (ohne etwas am Skript intern zu ändern) nicht verwenden: -vf scale=320:240, da die Höhe ja automatisch vorgegeben wird, wenn WIDTH angegeben ist. Weiterhin braucht man ja evtl. zukünftig noch weitere MPLAYER-Optionen (neben -oac, -ovc etc.).


    Aktuell wird als Höhe -3 bzw. -11 gesetzt, d.h. abhängig von der Breite auf die zum Bildformat passenden Höhe. Finde ich eigentlich optimal - außer man steht auf Eierköpfe :gap. Gibt es einen Grund, die Höhe direkt angeben zu wollen? Falls ja, spricht natürlich nichts dagegen, einen entsprechenden Parameter einzuführen.


    Bezüglich weiterer Parameter wäre ich für Beispiele dankbar.


    Zitat

    mit meinem alten externremux.sh (m.E. eine aus dem Wiki) konnte ich auch Aufnahmen des VDR oder eine DVD abspielen. Ggf. kann man das ja auch hier integrieren.


    Sorry, aber das ist zu sehr gebastelt. Das Streaming einer Aufnahme belegt dabei einen Live-Kanal. Irgendwann kann streamdev das Streaming von Aufnahmen vielleicht selbst - die Grundvoraussetzungen dazu wurden im Rahmen der XBMC-Integration schon geschaffen. Mein persönliche Motivation dies in Angriff zu nehmen ist aber relativ gering, da ich HTTP-Streaming nicht verwende.

  • Zitat

    Original von schmirl
    Gibt es einen Grund, die Höhe direkt angeben zu wollen? Falls ja, spricht natürlich nichts dagegen, einen entsprechenden Parameter einzuführen.


    Da ich auch gerne mal zu meinem Handy streame (Nokia N82) habe ich dort immer genau die Bildschirmauflösung angegeben. Mit der derzeitigen Angabe kommen m.E. 320x256 heraus und das mag der Handyplayer wohl nicht.


    Zitat

    Original von schmirl
    Sorry, aber das ist zu sehr gebastelt. Das Streaming einer Aufnahme belegt dabei einen Live-Kanal. Irgendwann kann streamdev das Streaming von Aufnahmen vielleicht selbst - die Grundvoraussetzungen dazu wurden im Rahmen der XBMC-Integration schon geschaffen. Mein persönliche Motivation dies in Angriff zu nehmen ist aber relativ gering, da ich HTTP-Streaming nicht verwende.


    Ok, das ist verständlich. War auch nur als Idee gedacht...


    Marcus

    My VDRs:

  • Aus einem mir nicht wirklich begreiflichen Grund, bekommt mein Client keine zugriff auf den Server.
    Mit der 4.0 hatte noch alles fehlerlos funktioniert. Habe ich ein Brett heute morgen vor dem Kopf ?


    Hier mal der Auszug aus der setup.conf des Server :


    streamdev-server.AllowSuspend = 1
    streamdev-server.HTTPBindIP = 0.0.0.0
    streamdev-server.HTTPServerPort = 3000
    streamdev-server.HTTPStreamType = 1
    streamdev-server.IGMPBindIP = 0.0.0.0
    streamdev-server.IGMPClientPort = 1234
    streamdev-server.IGMPStreamType = 0
    streamdev-server.MaxClients = 5
    streamdev-server.ServerPort = 2004
    streamdev-server.StartHTTPServer = 1
    streamdev-server.StartIGMPServer = 0
    streamdev-server.StartServer = 1
    streamdev-server.SuspendMode = 1
    streamdev-server.VTPBindIP = 0.0.0.0


    streamdevhosts.conf server


    #
    # streamdevhosts This file describes a number of host addresses that
    # are allowed to connect to the streamdev server running
    # with the Video Disk Recorder (VDR) on this system.
    # Syntax:
    #
    # IP-Address[/Netmask]
    #


    127.0.0.1 # always accept localhost
    #192.168.100.0/24 # any host on the local net
    #204.152.189.113 # a specific host
    #239.255.0.0/16 # uncomment for IGMP multicast streaming
    #0.0.0.0/0 # any host on any net (DON'T DO THAT! USE AUTHENTICATION)




    Hier mal die Fehlermeldung vom Server
    Aug 14 09:31:08 (none) user.err vdr: [18417] Streamdev: Accepted new client (VTP) 192.168.25.3:51276
    Aug 14 09:31:08 (none) user.err vdr: [18417] streamdev: client 192.168.25.3:51276 not allowed to connect
    Aug 14 09:31:08 (none) user.err vdr: [18417] streamdev: closing streamdev connection to 192.168.25.3:51276


    Und hier mal die vom Client
    Aug 14 09:36:46 (none) user.err vdr: [9461] ERROR: Streamdev: Didn't receive greeting from 192.168.25.2:2004
    Aug 14 09:36:46 (none) user.err vdr: [9461] retrying
    Aug 14 09:36:46 (none) user.err vdr: [9461] ERROR: Streamdev: Didn't receive greeting from 192.168.25.2:2004
    Aug 14 09:36:46 (none) user.err vdr: [9461] retrying
    Aug 14 09:36:46 (none) user.err vdr: [9461] ERROR: Streamdev: Didn't receive greeting from 192.168.25.2:2004
    Aug 14 09:36:46 (none) user.err vdr: [9461] retrying
    Aug 14 09:36:50 (none) user.err vdr: [9461] switching to channel 1
    Aug 14 09:36:50 (none) user.err vdr: [9461] ERROR: Streamdev: Didn't receive greeting from 192.168.25.2:2004
    Aug 14 09:36:50 (none) user.err vdr: [9461] info: Kanal nicht verfügbar!

    VDR : Reelbox Avantgarde II , 2 GB RAM , 128 GB SSD HD + TimeCapture als recording Partition , 2x single DVB-s2
    -> BM2LTS Version 1.94.3A


    Client 1 : Raspberry PI mit XBMC
    Client 2 : XBMC auf MacBook Pro
    Clinet 3 : Iphone
    Clinet 4 : Ipad


    * * * Hilfe zum BM2LTS Version http://www.sc-schulze.de * * *

    Einmal editiert, zuletzt von tuxnet ()

  • Hi,


    Du musst auch dein internes Netz freigeben, also bspw.
    192.168.25.0/24
    einfügen


    MFG
    KRis

    Intel DN2800MT 4GB RAM; 32GB mSata, Ubuntu 15.04, TVHeadend 4.1, Digibit R1 SatIP

Jetzt mitmachen!

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