Unerwartet große HLS TS-Dateien

Unerwartet große HLS TS-Dateien

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?

verwandte Informationen