Arquivos HLS TS inesperadamente grandes

Arquivos HLS TS inesperadamente grandes

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?

informação relacionada