Es scheint, dass die HLS-Segmentierung bei einigen Streams manchmal nicht richtig funktioniert. Meine TS-Datei wächst, bis das Laufwerk voll ist, es findet keine Segmentierung statt. Die meisten meiner Streams laufen wochenlang einwandfrei (mit derselben Befehlszeile).
Was weiß ich über einen meiner problematischen Quellstreams (FFPROBE-Ausgabe): https://justpaste.it/5d0px
Meine Befehlszeile sieht folgendermaßen aus:
/root/bin/ffmpeg -loglevel 16 -probesize 10M -analyzeduration 10M -i http://host/streams/stream.m3u8 -map 0:1 -map 0:0 -c:a copy -c:v copy -f hls -hls_time 10 -hls_flags delete_segments -hls_base_url http://host/ts/ -hls_segment_filename /var/media/ts/stream_%03d.ts /var/media/playlist/stream.m3u8
Ich protokolliere FFMPEG-Aktivitäten in einer Protokolldatei und habe nur einen Fehler gesehen, als mein Laufwerk voll war:
av_interleaved_write_frame(): Kein Speicherplatz mehr auf dem Gerät
Fehler beim Schreiben des Trailers von /var/media/playlist/stream.m3u8: Kein Speicherplatz mehr auf dem Gerät
Ich habe diese FFMPEG-Versionen ausprobiert: N-93765-gfcc01ba, 4.1.3
Die HLS m3u8-Datei sieht gut aus, die Dauer ist ok, aber die letzten TS-Dateien werden immer größer, bis mein Laufwerk voll ist. Ich verwende Ramdrive, um TS-Dateien zu speichern.
Bearbeiten: Einige Updates: Habe FFMPEG einen ganzen Tag mit Loglevel 48 laufen lassen:
- Die Protokolldatei ist riesig (ca. 790 MB), daher werde ich nur den Fehler mitteilen, den ich erhalte. Wenn Sie ihn brauchen, lade ich ihn natürlich hoch.
- Die Segmentierung wurde bei der 9538. Segmentdatei gestoppt (siehe HLS-Einstellungen oben). Ich sehe nur diesen Fehler, wenn die Segmentierung gestoppt wird:
Nicht monotones DTS im Ausgabestream 0:0; vorher: 8584618042, aktuell: 307231408; Änderung auf 8584618043. Dies kann zu falschen Zeitstempeln in der Ausgabedatei führen.
Auf meinem Produktionsserver, auf dem die meisten meiner Streams laufen, habe ich ein einfaches Python-Skript erstellt, das erkennt, ob eine TS-Datei größer als 20 MB ist (TS-Dateien sind normalerweise maximal 2 Megabyte groß).
Hier sind meine Ergebnisse:
21.05.2019 08:02:02: /var/media/ts/tlc_9538.ts größer als 20 MB
21.05.2019 08:02:03: /var/media/ts/eurosport_9538.ts größer als 20 MB
21.05.2019 08:02:04: /var/media/ts/digi_sport1_9538.ts größer als 20 MB
21.05.2019 09:27:01: /var/media/ts/travel_9538.ts größer als 20 MB
21.05.2019 09:48:01: /var/media/ts/digi_sport2_9538.ts größer als 20 MB
21.05.2019 11:21:01: /var/media/ts/digi_world_9538.ts größer als 20 MB
21.05.2019 11:22:01: /var/media/ts/history_9538.ts größer als 20 MB
21.05.2019 12:39:01: /var/media/ts/viasat_history_9538.ts größer als 20 MB
Wie Sie sehen, tritt dieses Ereignis bei der 9538. TS-Datei auf. Gibt es dafür einen Grund?