Hi *,
das Subject nimmt es schon vorweg: Wie kann ich am besten via Internet eine Aufnahme aus live streamen, wenn die Bandbreite ziemlich mau ist.
Es geht um das Abspielen in einem Mediaplayer, nicht um das Web-Streaming.
Danke und ciao.
Michael.
Hi *,
das Subject nimmt es schon vorweg: Wie kann ich am besten via Internet eine Aufnahme aus live streamen, wenn die Bandbreite ziemlich mau ist.
Es geht um das Abspielen in einem Mediaplayer, nicht um das Web-Streaming.
Danke und ciao.
Michael.
Das Streamen von Aufnahmen passiert letztendlich über streamdev (laut der URL in der m3u-Datei) - wenn der VDR flott genug ist, um das in Echtzeit zu transkodieren, kannst du da eine passende externremux.sh anlegen und die Streaming-URL erweitern, damit transkodiert wird: http://www.vdr-wiki.de/wiki/index.php/Externremux.sh
Das Streamen von Aufnahmen passiert letztendlich über streamdev (laut der URL in der m3u-Datei) - wenn der VDR flott genug ist, um das in Echtzeit zu transkodieren, kannst du da eine passende externremux.sh anlegen und die Streaming-URL erweitern, damit transkodiert wird: http://www.vdr-wiki.de/wiki/index.php/Externremux.sh
Hm, ich habe ein solches Script, dessen Default bei DSL1000 steht, also dem kleinstmöglichen Wert für die Bandbreite.
Offenbar wird das aber nicht genutzt.
Was könnte da faul sein?
Hm, ich habe ein solches Script, dessen Default bei DSL1000 steht, also dem kleinstmöglichen Wert für die Bandbreite.
Offenbar wird das aber nicht genutzt.
Was könnte da faul sein?
Es war nicht als Parameter angegeben, aber auch mit --remux wird es nicht genutzt.
Man sieht im Log des VDR, dass streamdev-server loslegt, aber das Script wird nicht gestartet, zumindest gibt es nix ins Journal aus, obwohl "logger" sein Ausgabeprogramm ist.
Einstellungen -> Streamdev Stream Typ: "EXT"
Einstellungen -> Streamdev Stream Typ: "EXT"
Ah, danke. Da hat dann auf der Kiste auch noch mencoder, d.h. MPlayer gefehlt.
Jetzt kommt allerdings:
Sep 23 20:14:06 vdr[6622]: [6617] externremux.sh: mencoder -msglevel all=1 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=96 -oac mp3lame -lameopts mode=3:preset=16 -alang eng -vf scale=160:-3 -zoom -o /tmp/externremux-32283 -- -
Sep 23 20:14:06 vdr[6622]: [6617] externremux.sh: get_path("config") problem
Sep 23 20:14:06 vdr[6622]: [6617] externremux.sh: Seek failed
Sep 23 20:14:06 vdr[6622]: [6617] externremux.sh: Seek failed
Sep 23 20:14:06 vdr[6622]: [6617] externremux.sh: Seek failed
Sep 23 20:14:06 vdr[6622]: [6617] externremux.sh: Seek failed
Sep 23 20:14:06 vdr[6622]: [6617] externremux.sh: Seek failed
Sep 23 20:14:06 vdr[6622]: [6617] externremux.sh: Seek failed
Sep 23 20:14:06 vdr[6622]: [6617] externremux.sh: Seek failed
Sep 23 20:14:06 vdr[6622]: [6617] externremux.sh: Seek failed
Sep 23 20:14:06 vdr[6622]: [6617] externremux.sh: Seek failed
Sep 23 20:14:06 vdr[6622]: [6617] externremux.sh: Seek failed
Sep 23 20:14:06 vdr[6622]: [6617] externremux.sh: Seek failed
Sep 23 20:14:10 vdr[6622]: [6617] externremux.sh:
Sep 23 20:14:10 vdr[6622]: [6617] externremux.sh: Too many audio packets in the buffer: (4096 in 14155776 bytes).
Sep 23 20:14:10 vdr[6622]: [6617] externremux.sh: MPEG: FATAL: EOF while searching for sequence header.
Sep 23 20:14:10 vdr[6622]: [6617] externremux.sh: Video: Cannot read properties.
Display More
Noch ne Idee evtl.?
Ich hab jetzt mal das "neueste" Script von 2015 hier aus dem Forum genommen, das VLC zum remuxen nutzt.
Da startet das Remuxen, aber es gibt Unmengen an Meldungen im Journal:
Sep 23 20:26:34 vdr[24141]: [9653] ERROR (extern.c,327): write failed: Datenübergabe unterbrochen (broken pipe)
Sep 23 20:26:34 vdr[24141]: [9653] ERROR (extern.c,327): write failed: Datenübergabe unterbrochen (broken pipe)
Sep 23 20:28:17 vdr[24141]: [9822] ERROR (thread.c,258): Keine Berechtigung
Sep 23 20:28:17 vdr[24141]: [9823] ERROR (thread.c,258): Keine Berechtigung
Sep 23 20:28:47 vdr[24141]: [10095] ERROR (thread.c,258): Keine Berechtigung
Sep 23 20:28:47 vdr[24141]: [10096] ERROR (thread.c,258): Keine Berechtigung
Sep 23 20:29:20 vdr[24141]: [24183] ERROR: streamdev-recstreaming thread 9823 won't end (waited 3 seconds) - canceling it...
Sep 23 20:29:23 vdr[24141]: [24183] streamdev-server: externremux process won't stop - killing it
Aber trotzdem kommt nach einer Weile ein Bild - und das unterbrechungsfrei.
Wenn Jemand noch ein moderneres Script hat, würde ich das gerne nehmen.
Ansonsten sehe ich das Ganze als gelöst an.
Danke.
Ciao.
Michael.
Aber trotzdem kommt nach einer Weile ein Bild - und das unterbrechungsfrei
War leider ne optische Täuschung - live stand wieder auf "TS", und da, wo wir gerade sind, ist die Bandbreite hinreichend.
Mit "EXT" kommt aktuell nur Ton, kein Bild.
Ich würde folgende Meldungen mal genauer untersuchen.
Sep 23 20:28:17 vdr[24141]: [9822] ERROR (thread.c,258): Keine Berechtigung
Sep 23 20:28:17 vdr[24141]: [9823] ERROR (thread.c,258): Keine Berechtigung
Sep 23 20:28:47 vdr[24141]: [10095] ERROR (thread.c,258): Keine Berechtigung
Sep 23 20:28:47 vdr[24141]: [10096] ERROR (thread.c,258): Keine Berechtigung
Ich würde folgende Meldungen mal genauer untersuchen.
CodeSep 23 20:28:17 vdr[24141]: [9822] ERROR (thread.c,258): Keine Berechtigung Sep 23 20:28:17 vdr[24141]: [9823] ERROR (thread.c,258): Keine Berechtigung Sep 23 20:28:47 vdr[24141]: [10095] ERROR (thread.c,258): Keine Berechtigung Sep 23 20:28:47 vdr[24141]: [10096] ERROR (thread.c,258): Keine Berechtigung
void cThread::SetPriority(int Priority)
{
if (setpriority(PRIO_PROCESS, 0, Priority) < 0)
LOG_ERROR;
}
Sieht jetzt nicht so kritisch aus
Ist wohl kritischer
void cTSExt::Put(const uchar *Data, int Count)
{
if (safe_write(m_Inpipe, Data, Count) == -1) {
LOG_ERROR_STR("write failed");
return;
}
}
Anscheinend nimmt das externe Script die Daten nicht an. Andererseits kommt ja Ton ...
Teste doch mal die Konvertierung mit dem externen Script ohne VDR/Streaming
Möglicherweise ist der Server zu langsam für die Konvertierung in Echtzeit
Dual-Quadcore Intel(R) Xeon(R) CPU E3-1241 v3 @ 3.50GHz
32 Gig RAM
Sollte doch reichen?
Don’t have an account yet? Register yourself now and be a part of our community!