Monitor-RTMP-Stream, Aufzeichnung, falls verfügbar

8

Ich suche nach einer Möglichkeit, die Aktivität in einem Stream zu überwachen, damit ich feststellen kann, ob etwas durch den Stream gekommen ist oder nicht. Wenn das der Fall ist, werde ich es mit rtmpdump aufnehmen.

Ich stelle mir das vor, indem ich eine Cron-Task starte, die alle 60 Sekunden einen Stream überprüft. Wenn festgestellt wird, dass ein Stream durchkommt, rufen Sie rtmpdump auf, um mit der Aufzeichnung zu beginnen. Wenn nicht, dann tun Sie nichts und überprüfen Sie erneut in 60 Sekunden.

Da rtmpdump nur eine Art von Fehlern ausgibt, wenn es keine Stream-Daten gibt, scheint es nicht so, als wäre es eine gute Idee, es zu benutzen, um einen Stream zu überwachen, aber vielleicht liege ich falsch.

Es wäre einfach, wenn ich dies von Fall zu Fall manuell machen würde, aber ich versuche die Aufzeichnung von Streams automatisch zu automatisieren, wenn sie verfügbar sind.

Hat jemand einen Weg gefunden, dies zu tun? Vielleicht einige andere Tools, die ich in der Befehlszeile (Linux) verwenden kann? Wenn es hilft, schreibe ich Code dafür mit Ruby / Rails

    
Brian 16.03.2012, 14:05
quelle

2 Antworten

2

Sie können die Informationen des Streams mit folgendem Befehl an stdout senden:

%Vor%

Dies wird versuchen, nur 6 Sekunden Video aufzunehmen und zu zeigen, was das Ergebnis ist. Wenn der Stream läuft, wird etwas wie folgt ausgegeben:

%Vor%

Wenn der Stream nicht läuft / fehlschlägt, wird etwas wie folgt ausgegeben:

%Vor%

Hier ist ein Arbeitsbeispiel mit einem öffentlichen rtmp-Stream aus VLCStreamTester :

%Vor%

Von hier mit Ruby können Sie leicht überprüfen, ob ein Stream aktiv ist oder nicht (Lesen der Ausgabe für Schlüsselwörter), und dann entscheiden, mit dem üblichen rtmpdump-Befehl aufzuzeichnen, oder nicht. Danach können Sie mehr Logik erstellen und eine Reihe von URLs statt einer einzelnen URL durchlaufen, um die benötigte Automatisierung zu erhalten.

    
SDude 20.05.2015 14:06
quelle
1

Vielleicht habe ich Sie falsch verstanden, aber warum legen Sie nicht einfach eine Schleife darum? Wenn es einen Stream gibt, nehme ich an, dass rtmpdump nicht beendet wird, sondern solange wie ein Stream vorhanden ist. Wenn es keinen Stream gibt, geht er aus und wir schlafen eine Weile und versuchen es erneut.

rtmpdump scheint ein --timeout-Flag zu haben, also versuche es auf etwas Hoch zu setzen, um die Rate der Wiederholungen zu reduzieren, wahrscheinlich ist es gut, trotzdem einen Schlaf zu haben.

setze dies in eine record.sh, cmod a + x und führe es aus

%Vor%     
Björn Nilsson 15.05.2015 01:53
quelle