Users are reporting that playback of recorded video from Frigate's VOD HLS playlist stalls on Apple iOS and Safari devices due to the playlist referencing empty fMP4 fragments. This issue appears to be specific to Frigate's HLS playlist generation and affects Hikvision cameras, while other playback paths for the same files work correctly. The problem seems to stem from a strict Apple decoder stalling on data-less fragments.
This bug highlights the sensitivity of Apple’s AVPlayer to strict HLS compliance, specifically regarding fMP4 segment encapsulation. While fragmented MP4 was intended to unify HLS and DASH workflows, implementation discrepancies in NVR software like Frigate can lead to critical ecosystem fragmentation where playback fails only on mobile devices. For infrastructure engineers, this underscores the risk of relying on client-side stitching for VOD without robust validation of fragment data. Watch for a Frigate update to the recording-review manifest logic to prune empty segments from the index-v1.m3u8 file.
Frigate's open-source NVR has faced a recurring pattern of playback failures on Apple devices tied to its HLS segment generation. In an earlier beta support discussion, Frigate's /vod/clip/ endpoint was found to generate a nearly empty first segment of around 120 bytes that Safari rejects while Chrome handles it without error. That issue identified the same root cause as the current report: the VOD endpoint produces fMP4 fragments containing only styp, sidx, and an empty moof box with no mdat payload, which Apple's strict AVPlayer decoder cannot process. The current discussion extends this pattern from single-clip playback to the recording-review workflow, where two of every three fragments in the stitched playlist are empty.
The transition from MPEG-TS to fragmented MP4 in Frigate's recording pipeline introduced these compatibility gaps. Frigate 0.17 moved away from mpeg-ts to fragmented mp4 for its VOD endpoints, with developers noting that browsers generally prefer fMP4 over transport stream. However, the shift exposed differences in how Apple's decoder handles edge cases in fMP4 structure that other browsers tolerate. A separate support thread confirmed that after upgrading from Frigate 0.14 to 0.16.1, clip playback broke on macOS Safari and all iOS browsers because the clip.mp4 endpoint changed behavior, and the recommended workaround was to use the HLS master.m3u8 endpoint instead of progressive MP4 delivery.
Frigate's segment-stitching architecture also encounters truncation issues beyond the empty-fragment problem. In a related discussion, a user reported that VOD segments for a Tapo C210 camera were truncated, with nginx promising a Content-Length based on the moov atom but failing mid-stream when frame data was missing at expected offsets. This suggests that Frigate's recording pipeline has multiple failure modes when reassembling 10-second MP4 segments into continuous playback streams, particularly when camera encoders produce non-standard GOP structures or when the muxer encounters frames it cannot process. For operators running Frigate with Hikvision or similar cameras, the Export workflow (server-side concatenation into a single MP4) remains the most reliable path for Apple device playback until the VOD manifest logic is patched to prune empty fragments.
Add StreamingMeme as a preferred source on Google to see more of our streaming news at the top of your Search results.
Add as preferred source