예기치 않게 큰 HLS TS 파일

예기치 않게 큰 HLS TS 파일

때때로 HLS 분할이 일부 스트림에 대해 제대로 작동하지 않는 것 같습니다. 내 TS 파일은 드라이브가 가득 찰 때까지 커지며 분할이 발생하지 않습니다. 대부분의 스트림은 몇 주 동안 완벽하게 실행됩니다(동일한 cmdline 사용).

문제가 있는 소스 스트림(FFPROBE 출력) 중 하나에 대해 무엇을 알고 있습니까? https://justpaste.it/5d0px

내 cmdline은 다음과 같습니다

/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 파일을 저장합니다.

편집하다: 일부 업데이트: 로그 레벨 48로 하루 종일 FFMPEG를 실행했습니다.

  • 로그 파일은 790MB 정도 크기 때문에 제가 받은 오류만 공유하겠습니다. 물론 필요하시면 올려드리겠습니다.
  • 분할이 9538번째 세그먼트 파일에서 중지되었습니다(위의 HLS 설정 참조) 분할이 중지되면 이 오류만 표시됩니다.

출력 스트림 0:0의 비단조적인 DTS; 이전: 8584618042, 현재: 307231408; 8584618043으로 변경됩니다. 이로 인해 출력 파일에 잘못된 타임스탬프가 발생할 수 있습니다.

대부분의 mystream이 실행되는 프로덕션 서버에서 TS 파일이 20MB보다 큰지 감지하는 간단한 Python 스크립트를 만들었습니다(TS 파일은 일반적으로 최대 2MB).

내 결과는 다음과 같습니다.

2019-05-21 08:02:02: /var/media/ts/tlc_9538.ts 20MB보다 큼

2019-05-21 08:02:03: /var/media/ts/eurosport_9538.ts 20MB보다 큼

2019-05-21 08:02:04: /var/media/ts/digi_sport1_9538.ts 20MB보다 큼

2019-05-21 09:27:01: /var/media/ts/travel_9538.ts 20MB보다 큼

2019-05-21 09:48:01: /var/media/ts/digi_sport2_9538.ts 20MB보다 큼

2019-05-21 11:21:01: /var/media/ts/digi_world_9538.ts 20MB보다 큼

2019-05-21 11:22:01: /var/media/ts/history_9538.ts 20MB보다 큼

2019-05-21 12:39:01: /var/media/ts/viasat_history_9538.ts 20MB보다 큼

보시다시피 이 이벤트는 9538번째 TS 파일에서 발생합니다. 그럴 이유가 있나요?

관련 정보