Verhindern Sie das Ablegen von ffmpeg, wenn der Eingabe-Icecast-Stream abgelegt wird

743
Ivan Kolesnikov

Ich transcodiere einen ICECAST-Stream und übertrage ihn über ffmpeg mit folgendem Befehl an udp multicast:

ffmpeg -i http: // ip: 8000 / icecast -vn -acodec libmp3lame -ar 44100 -ac 2 -ab 128 -f mpegts udp: // ip: port

Wenn jedoch ein Eiskonverton fällt, dann fällt auch ffmpeg ab. Ist der Weg ffmpeg am Laufen?
Die beste Variante ist die Wiedergabe in udp: // ip: port stream, wenn der Icecast-Stream abgefallen ist, und die Wiedergabe wird fortgesetzt, wenn dieser Stream wieder verfügbar ist.
Ich habe die Ausgabe von wget und fIcy nach ffmpeg geroutet, aber kein Glück. Gibt es dafür eine Softwarelösung?

0

1 Antwort auf die Frage

1
Gyan

Nicht getestet, aber einen Versuch wert

Kürzere Methode

ffmpeg -reconnect_at_eof 1 -reconnect_streamed 1 -i http://ip:8000/icecast -vn -c:a libmp3lame -ar 44100 -ac 2 -ab 128 -f mpegts udp://ip:port 

Längere Methode (wenn oben nicht funktioniert)

ffmpeg -reconnect_at_eof 1 -reconnect_streamed 1 -i http://ip:8000/icecast -f lavfi -i anullsrc -filter_complex "[0]aresample=async=1[main]; [main][1]amix=dropout_transition=0,volume=2" -vn -c:a libmp3lame -ar 44100 -ac 2 -ab 128 -f mpegts udp://ip:port 
Vielen Dank! Sehr hilfreich! Kurze Methode: Wiederherstellen der Verbindung für etwa 4 Sekunden, wenn der Eingabestrom abfällt, dann auch ffmpeg. Ich habe auch den Parameter -reconnect_delay_max 3600 hinzugefügt, aber es hat nicht geholfen. Lange Methode: Wie bei der ersten Methode, die Verbindung erneut 4 Sekunden lang herstellen, dann Stille schreiben, den ICECAST-Stream jedoch nicht wiedergeben, wenn dieser Stream erneut ausgeführt wird. Ivan Kolesnikov vor 6 Jahren 0