Parece que às vezes a segmentação HLS não funciona corretamente para alguns fluxos. Meu arquivo TS cresce até que a unidade fique cheia, não há segmentação acontecendo. A maioria dos meus streams rodando perfeitamente por semanas (com o mesmo cmdline).
O que eu sei sobre um dos meus fluxos de origem problemáticos (saída FFPROBE): https://justpaste.it/5d0px
Meu cmdline fica assim:
/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
Estou registrando atividades do FFMPEG no arquivo de log e vi apenas um erro quando minha unidade ficou cheia:
av_interleaved_write_frame(): Não há espaço restante no dispositivo
Erro ao gravar o trailer de /var/media/playlist/stream.m3u8: Não há espaço restante no dispositivo
Eu tentei estas versões do FFMPEG: N-93765-gfcc01ba, 4.1.3
O arquivo HLS m3u8 parece bom, a duração é boa, mas os últimos arquivos TS crescem até minha unidade ficar cheia. Usando Ramdrive para armazenar arquivos TS.
Editar: Alguma atualização: executei o FFMPEG por um dia inteiro com loglevel 48:
- O arquivo de log é enorme, ~ 790 MB, então vou compartilhar apenas o erro que recebo. Claro que se você precisar eu carrego.
- A segmentação parou no arquivo de segmento 9538 (veja as configurações HLS acima). Vejo apenas este erro quando a segmentação parou:
DTS não monótono no fluxo de saída 0:0; anterior: 8584618042, atual: 307231408; alterando para 8584618043. Isso pode resultar em carimbos de data/hora incorretos no arquivo de saída.
No meu servidor de produção, onde a maioria dos mystreams está em execução, criei um script Python simples que detecta se o arquivo TS é maior que 20 MB (arquivos TS normalmente têm no máximo 2 megabytes)
Aqui estão meus resultados:
21/05/2019 08:02:02: /var/media/ts/tlc_9538.ts maior que 20 MB
21/05/2019 08:02:03: /var/media/ts/eurosport_9538.ts maior que 20 MB
21/05/2019 08:02:04: /var/media/ts/digi_sport1_9538.ts maior que 20 MB
21/05/2019 09:27:01: /var/media/ts/travel_9538.ts maior que 20 MB
21/05/2019 09:48:01: /var/media/ts/digi_sport2_9538.ts maior que 20 MB
21/05/2019 11:21:01: /var/media/ts/digi_world_9538.ts maior que 20 MB
21/05/2019 11:22:01: /var/media/ts/history_9538.ts maior que 20 MB
21/05/2019 12:39:01: /var/media/ts/viasat_history_9538.ts maior que 20 MB
Como você pode ver, este evento acontece no 9538º arquivo TS. Há alguma razão para isso?