似乎有時 HLS 分段對於少數流無法正常工作。我的 TS 檔案會一直成長,直到磁碟機已滿,並且不會發生分段。我的大多數串流都可以完美運行數週(使用相同的命令列)。
我對有問題的來源流之一(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檔案。
編輯: 一些更新:以日誌等級 48 運行 FFMPEG 一整天:
- 日誌檔案很大~790MB,所以我將只分享我得到的錯誤。當然如果你需要的話我會上傳的。
- 分段在第 9538 個分段檔案處停止(請參閱上面的 HLS 設定),當分段停止時,我只看到此錯誤:
輸出流0:0中非單調DTS;上一個:8584618042,目前:307231408;更改為 8584618043。
在我的生產伺服器上,大多數 mystreams 都在運行,我製作了一個簡單的 Python 腳本,用於檢測 TS 檔案是否大於 20MB(TS 檔案通常最大 2 MB)
這是我的結果:
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 檔案中。這有什麼理由嗎?