Кажется, что сегментация HLS иногда не работает должным образом для некоторых потоков. Мой файл TS растет до тех пор, пока диск не заполнится, сегментация не происходит. Большинство моих потоков работают отлично неделями (с той же cmdline).
Что я знаю об одном из моих проблемных исходных потоков (выход FFPROBE): https://justpaste.it/5d0px
Моя командная строка выглядит так:
/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
Я регистрирую действия FFMPEG в файле журнала и увидел только одну ошибку, когда мой диск был заполнен:
av_interleaved_write_frame(): На устройстве не осталось места
Ошибка записи трейлера /var/media/playlist/stream.m3u8: на устройстве не осталось места
Я пробовал следующие версии FFMPEG: N-93765-gfcc01ba, 4.1.3
Файл HLS m3u8 выглядит нормально, длительность в порядке, но последние файлы TS растут до тех пор, пока мой диск не заполнится. Использование Ramdrive для хранения файлов TS.
Редактировать: Некоторые обновления: целый день запускал FFMPEG с уровнем логирования 48:
- Файл журнала огромный ~790 МБ, поэтому я поделюсь только той ошибкой, которую получаю. Конечно, если вам нужно, я ее выложу.
- Сегментация остановилась на 9538-м сегментном файле (см. настройки HLS выше). Я вижу только эту ошибку, когда сегментация остановилась:
Немонотонный DTS в выходном потоке 0:0; предыдущее: 8584618042, текущее: 307231408; изменяется на 8584618043. Это может привести к неправильным временным меткам в выходном файле.
На моем производственном сервере, где запущено большинство mystreams, я создал простой скрипт Python, который определяет, превышает ли размер TS-файла 20 МБ (обычно размер TS-файлов не превышает 2 мегабайт).
Вот мои результаты:
2019-05-21 08:02:02: /var/media/ts/tlc_9538.ts больше 20 МБ
2019-05-21 08:02:03: /var/media/ts/eurosport_9538.ts больше 20 МБ
2019-05-21 08:02:04: /var/media/ts/digi_sport1_9538.ts больше 20 МБ
2019-05-21 09:27:01: /var/media/ts/travel_9538.ts больше 20 МБ
2019-05-21 09:48:01: /var/media/ts/digi_sport2_9538.ts больше 20 МБ
2019-05-21 11:21:01: /var/media/ts/digi_world_9538.ts больше 20 МБ
2019-05-21 11:22:01: /var/media/ts/history_9538.ts больше 20 МБ
2019-05-21 12:39:01: /var/media/ts/viasat_history_9538.ts больше 20 МБ
Как вы видите, это событие происходит в 9538-м файле TS. Есть ли для этого какая-то причина?