ffnetdev streamt, aber VLC zeigt nichts an

  • Ich weiß nicht mehr weiter. Mein VDR-Server besteht aus vdr 1.6 mit aktuellen Versionen von streamdev-server und ffnetdev auf OpenSuse 11.0. Alles funktioniert wie gewünscht, bis auf die Anzeige eines Live-Streams von ffnetdev auf VLC. Getestet habe ich den VLC 1.0.3 auf MacOS 10.5.6 und VLC 1.0.3 und 0.8.9 (?) auf Windows Vista und VLC 1.0.3 auf Windows XP.


    Genauer untersucht habe ich es auf MacOS: tcpdump zeigt mir, dass auf dem MacOS ein Stream ankommt bestehend aus 362 byte Paketen - und das in beiden Fällen: streamdev-server und ffnetdev. Den Stream vom streamdev-server zeigt der VLC auch problemlos an, nur den Stream vom ffnetdev nicht. Der vdr zeigt hingegen in den /var/log/messages, dass ffnetdev einen Client annimmt und mit welcher Rate er stream-t.


    Ich habe das Plugin erneut compiliert und bekomme folgende Warnings:


    ======================8<----------------------------------
    osdworker.c: In static member function ‘static bool cOSDWorker::SendScreen(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, const void*)’:
    osdworker.c:184: warning: unused variable ‘furh’
    osdworker.c: In member function ‘void cOSDWorker::HandleClientRequests(cTBSelect*)’:
    osdworker.c:542: warning: format ‘%04X’ expects type ‘unsigned int’, but argument 3 has type ‘CARD32’
    osdworker.c:544: warning: format ‘%04X’ expects type ‘unsigned int’, but argument 3 has type ‘CARD32’
    In function ‘char* strcpy(char*, const char*)’,
    inlined from ‘virtual void cOSDWorker::Action()’ at osdworker.c:725:
    /usr/include/bits/string3.h:106: warning: call to char* __builtin___strcpy_chk(char*, const char*, unsigned int) will always overflow destination buffer
    tsworker.c: In member function ‘virtual void cTSWorker::Action()’:
    tsworker.c:216: warning: format ‘%d’ expects type ‘int’, but argument 4 has type ‘long int’
    tsworker.c:218: warning: format ‘%d’ expects type ‘int’, but argument 4 has type ‘long int’
    vncEncodeHexT.c: In member function ‘virtual UINT vncEncodeHexT::EncodeHextiles8(BYTE*, BYTE*, int, int, int, int)’:
    vncEncodeHexT.c:410: warning: ‘fg’ may be used uninitialized in this function
    vncEncodeHexT.c:410: warning: ‘bg’ may be used uninitialized in this function
    ======================8<----------------------------------


    Aufgrund des am Client (MacOS 10.5.x, VLC 1.0.3) ankommenden Streams glaube ich, dass obige Warnings ignoriert werden können.


    Die Suche im Forum, auf vdr-wiki und Herumgooglen hat mir nicht geholfen. Ich habe ffnetdev-0.1.0 ge-patch-t und compiliert bekommen. Details zu allem (vdr logs etc.) sende ich natürlich gerne auf Anfrage. Hauptsache dass Live-Streaming geht irgendwann...


    1000 Dank im Voraus für jedwede Hilfe!

    VDR 1.6.0 on SuSE 11.0, Intel Celeron (Mendocino) 366 MHz 190 MB
    streamdev, remote, ffnetdev, femon, devstatus

  • Die Warnings kannst du wahrscheinlich ignorieren.
    Warum VLC nichts anzeigt kann ich aber auch nicht sagen, da kenne ich mich weniger aus.


    Evtl. kann man VLC irgendwie gesprächiger machen, mit ein paar Fehlermeldungen würde man eher was anfangen können.

    Gruss
    SHF


  • Hallo SHF, gute Idee:


    ========================8<---------------------------------------


    main debug: processing request item james:20002 node Media Library skip 0
    main debug: resyncing on james:20002
    main debug: james:20002 is at 0
    main debug: starting new item
    main debug: creating new input thread
    main debug: Creating an input for 'james:20002'
    main debug: thread (input) created at priority 22 (input/input.c:230)
    main debug: thread started
    main debug: using timeshift granularity of 50 MBytes
    main debug: using timeshift path '/tmp'
    main debug: `tcp://james:20002' gives access `tcp' demux `' path `james:20002'
    main debug: creating demux: access='tcp' demux='' path='james:20002'
    main debug: looking for access_demux module: 0 candidates
    main debug: no access_demux module matched "tcp"
    main debug: TIMER module_need() : 0.085 ms - Total 0.085 ms / 1 intvls (Avg 0.085 ms)
    main debug: creating access 'tcp' path='james:20002'
    main debug: looking for access module: 1 candidate
    main debug: net: connecting to james port 20002
    main debug: connection: Operation now in progress
    main debug: connection succeeded (socket = 16)
    main debug: using access module "access_tcp"
    main debug: TIMER module_need() : 6.906 ms - Total 6.906 ms / 1 intvls (Avg 6.906 ms)
    main debug: Using AStream*Stream
    main debug: pre buffering
    macosx debug: input has changed, refreshing interface
    main debug: received first data after 59 ms
    main debug: pre-buffering done 1024 bytes in 0s - 16 kbytes/s
    main debug: looking for stream_filter module: 4 candidates
    main debug: TIMER module_need() : 0.302 ms - Total 0.302 ms / 1 intvls (Avg 0.302 ms)
    main debug: looking for stream_filter module: 1 candidate
    main debug: using stream_filter module "stream_filter_record"
    main debug: TIMER module_need() : 0.131 ms - Total 0.131 ms / 1 intvls (Avg 0.131 ms)
    main debug: creating demux: access='tcp' demux='' path='james:20002'
    main debug: looking for demux module: 50 candidates
    main debug: using demux module "ts"
    main debug: TIMER module_need() : 3.680 ms - Total 3.680 ms / 1 intvls (Avg 3.680 ms)
    ts debug: DEMUX_SET_GROUP 0 0x0
    access_tcp warning: unimplemented query in control
    main debug: `tcp://james:20002' successfully opened
    ts debug: pid[99] unknown
    ts debug: pid[100] unknown


    # Bis hierher ist's der Start des Streams.
    # Was nun folgt kommt beim Stoppen des Streams.


    main debug: incoming request - stopping current input
    main debug: waitpipe: object killed
    main debug: dying input
    main debug: socket 16 polling interrupted
    main debug: control type=0
    main debug: control: stopping input
    ts debug: pid list:
    ts debug: - pid[99] seen
    ts debug: - pid[100] seen
    ts debug: - pid[8191] seen
    main debug: removing module "ts"
    main debug: removing module "stream_filter_record"
    main debug: removing module "access_tcp"
    main debug: thread ended
    main debug: dead input
    macosx debug: input has stopped, refreshing interface
    main debug: TIMER input launching for 'james:20002' : 75.141 ms - Total 75.141 ms / 1 intvls (Avg 75.141 ms)


    ========================8<---------------------------------------


    Was meint VLC mit den folgenden Zeilen?


    ts debug: pid[99] unknown
    ts debug: pid[100] unknown


    Ich muss mir wohl mal den Source vom VLC anschauen...


    Grüße
    Tobias

    VDR 1.6.0 on SuSE 11.0, Intel Celeron (Mendocino) 366 MHz 190 MB
    streamdev, remote, ffnetdev, femon, devstatus

  • Kannst Du mal einen VDR Log Ausschnit posten? Um zu sehen wie ffnetdev eine Verbindung akzeptiert, ab "[ffnetdev] Streamer: Accepted client".


    Viele Grüße,
    Bernd

    VDR "headless" Server:

    • Whitebox mit Supermicro X10SLL+-F, Xeon Prozessor, 16 GB RAM als ESXi Host, Debian VM für VDR, Digital Devices Cine S2 mit VT-d Passthrough an die VM
    • Debian, VDR 2.2 mit epgsearch, streamdev-server und live Plugins

    Client: Laptop, Windows und OS X, VLC Media Player

  • Hallo Bernd,


    gerne - hier ist's:


    =========================8<-----------------------------------------


    Nov 30 11:43:54 james vdr: [3157] [ffnetdev] Streamer: Accepted client 192.168.178.47:50049
    Nov 30 11:43:54 james vdr: [3157] [ffnetdev] set Primary Device to 3
    Nov 30 11:43:54 james vdr: [3157] [ffnetdev] remote control disabled.
    Nov 30 11:44:08 james vdr: [3157] [ffnetdev] Streamer: current TransferRate 1079359 Byte/Sec, 11872952 Bytes send
    Nov 30 11:44:19 james vdr: [3157] [ffnetdev] Streamer: current TransferRate 978847 Byte/Sec, 10767324 Bytes send
    Nov 30 11:44:30 james vdr: [3157] [ffnetdev] Streamer: current TransferRate 968439 Byte/Sec, 10652832 Bytes send
    Nov 30 11:44:35 james vdr: [3157] [ffnetdev] remote control disabled.
    Nov 30 11:44:35 james vdr: [3157] [ffnetdev] restore Primary Device to 2
    Nov 30 11:44:40 james vdr: [3157] [ffnetdev] Streamer: Connection closed: client 0.0.0.0:0


    =========================8<-----------------------------------------


    Danke und Grüße
    Tobias

    VDR 1.6.0 on SuSE 11.0, Intel Celeron (Mendocino) 366 MHz 190 MB
    streamdev, remote, ffnetdev, femon, devstatus

  • Dann hast Du zumindest eine andere ffnetdev Version als ich...


    ---snip---
    Nov 30 20:59:02 lellie vdr: [3523] [ffnetdev] Streamer: Accepted client 192.168.0.75:3706
    Nov 30 20:59:04 lellie vdr: [3523] [ffnetdev] remote control disabled.
    Nov 30 20:59:04 lellie vdr: [3523] [ffnetdev] Streamer: Rate 0,000 MBit/Sec, 20480 Bytes send, 3% Buffer used
    Nov 30 20:59:15 lellie vdr: [3523] [ffnetdev] Streamer: Rate 3,408 MBit/Sec, 4587520 Bytes send, 3% Buffer used
    Nov 30 20:59:26 lellie vdr: [3523] [ffnetdev] Streamer: Rate 3,353 MBit/Sec, 4812800 Bytes send, 3% Buffer used
    Nov 30 20:59:28 lellie vdr: [3523] [ffnetdev] remote control disabled.
    Nov 30 20:59:28 lellie vdr: [3523] [ffnetdev] Streamer: Connection closed: client 0.0.0.0:0
    Nov 30 20:59:29 lellie vdr: [3523] [ffnetdev] Streamer: Bytes not sent, but deleted from ringbuffer: 774449
    ---snip---


    Hast Du in Deinem Beispiel im VLC den Stream nach ca. 1 min selber abgebrochen?


    Wie öffnest Du in VLC den Stream? Bei mir ist das tcp://<ipdesvdr>:20002


    Welches Device ist #3, welches ist #2?

    VDR "headless" Server:

    • Whitebox mit Supermicro X10SLL+-F, Xeon Prozessor, 16 GB RAM als ESXi Host, Debian VM für VDR, Digital Devices Cine S2 mit VT-d Passthrough an die VM
    • Debian, VDR 2.2 mit epgsearch, streamdev-server und live Plugins

    Client: Laptop, Windows und OS X, VLC Media Player

  • Die Version von ffnetdev ist 0.1.0:


    Nov 30 11:30:47 james vdr: [3063] initializing plugin: ffnetdev (0.1.0): Full Featured Network Device for Streaming


    Ich musste zwei Patches anwenden, damit ich es für den VDR 1.6.0 überhaupt übersetzt bekam. Mit den Warnings aus dem Posting Nr. 1 ging es dann.


    Hier die weiteren Karten und damit die Antwort auf die Frage nach den Devices:


    Nov 30 11:30:47 james vdr: [3063] probing /dev/dvb/adapter0/frontend0
    Nov 30 11:30:47 james vdr: [3149] tuner on device 1 thread started (pid=3063, tid=3149)
    Nov 30 11:30:47 james vdr: [3150] section handler thread started (pid=3063, tid=3150)
    Nov 30 11:30:47 james vdr: [3063] probing /dev/dvb/adapter1/frontend0
    Nov 30 11:30:47 james vdr: [3152] CI adapter on device 1 thread started (pid=3063, tid=3152)
    Nov 30 11:30:47 james vdr: [3153] tuner on device 2 thread started (pid=3063, tid=3153)
    Nov 30 11:30:47 james vdr: [3154] section handler thread started (pid=3063, tid=3154)
    Nov 30 11:30:47 james vdr: [3063] found 2 video devices


    Nov 30 11:30:47 james vdr: [3063] setting primary device to 2


    Das Device 2 ist eine FF-Karte von Hauppauge.


    Hier initialisiert sich das ffnetdev:


    Nov 30 11:30:47 james vdr: [3063] plugin 'ffnetdev' called obsolete function RegisterI18n()
    Nov 30 11:30:47 james vdr: [3156] [ffnetdev] OSD via VNC thread started (pid=3063, tid=3156)
    Nov 30 11:30:47 james vdr: [3156] [ffnetdev] VNC: Listening on port 20001
    Nov 30 11:30:47 james vdr: [3157] [ffnetdev] TS streamer thread started (pid=3063, tid=3157)
    Nov 30 11:30:47 james vdr: [3157] [ffnetdev] Streamer: Listening on port 20002


    Starte ich dann einen Stream mittels VLC, dann kommen die folgenden Meldungen:


    Nov 30 11:43:54 james vdr: [3157] [ffnetdev] Streamer: Accepted client 192.168.178.47:50049
    Nov 30 11:43:54 james vdr: [3157] setting primary device to 3
    Nov 30 11:43:54 james vdr: [3157] [ffnetdev] set Primary Device to 3
    Nov 30 11:43:54 james vdr: [3157] [ffnetdev] remote control disabled.


    Und ja, ich hatte den Stream dann selber beendet ([Stop] im VLC). Und geöffnet habe ich den Stream ebenso mit tcp://{IPAddrVDR}:20002.


    Bernd: Hast Du eine FF-Karte in Deinem System? Von Deiner Signatur sah es mir nicht so aus. Vielleicht muss bei Dir daher kein Primary Device umgesetzt werden.


    Ich werde als nächstes zusätzlich den c't-VDR installieren. Muss halt noch Platz auf dem alten System schaffen...


    Danke nochmals!
    Tobias

    VDR 1.6.0 on SuSE 11.0, Intel Celeron (Mendocino) 366 MHz 190 MB
    streamdev, remote, ffnetdev, femon, devstatus

  • Ich habe 2 Budget-Karten drin, sonst nix.


    Hast Du eine Budget-Karte? Dann probier doch mal die FF-Karte abzuklemmen (-D auf der command line).


    So started ffnetdev bei mir:


    ---snip---
    Dec 3 22:24:41 lellie vdr: [12366] initializing plugin: ffnetdev (0.1.0): Full Featured Network Device for Streaming
    Dec 3 22:24:41 lellie vdr: [12366] [ffnetdev] initializing plugin.
    Dec 3 22:24:41 lellie vdr: [12366] [ffnetdev] Device: Constructor cStreamDevice
    Dec 3 22:24:41 lellie vdr: [12375] [ffnetdev] PES2PES remux thread started (pid=12366, tid=12375)
    Dec 3 22:24:41 lellie vdr: [12366] initializing plugin: live (0.2.0): Live Interactive VDR Environment
    Dec 3 22:24:41 lellie vdr: [12366] setting primary device to 3
    Dec 3 22:24:41 lellie vdr: [12366] [ffnetdev] Device: ffnetdev becomes primary device. Registering our OSD provider...
    Dec 3 22:24:41 lellie vdr: [12366] [ffnetdev] Device: Setting volume to 255 (not implemented).
    ---snip---


    Ich muss zugeben dass ich nicht genau nachvollziehen kann welche ffnetdev Version ich habe... Probier doch mal die Version aus subversion...


    Viele Grüße,
    Bernd

    VDR "headless" Server:

    • Whitebox mit Supermicro X10SLL+-F, Xeon Prozessor, 16 GB RAM als ESXi Host, Debian VM für VDR, Digital Devices Cine S2 mit VT-d Passthrough an die VM
    • Debian, VDR 2.2 mit epgsearch, streamdev-server und live Plugins

    Client: Laptop, Windows und OS X, VLC Media Player

  • Hallo Bernd,


    ich habe jetzt mal die Karten einzeln aktiviert, sodass vdr nur jeweils eine kannte. Auch das brachte nichts. Werde mir ein DVD-Laufwerk kaufen und c't-VDR zusätzlich installieren. Mal schauen...


    Abermals danke
    Tobias

    VDR 1.6.0 on SuSE 11.0, Intel Celeron (Mendocino) 366 MHz 190 MB
    streamdev, remote, ffnetdev, femon, devstatus

Jetzt mitmachen!

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