IDR keyframes now required by Safari (as of iOS 16.3.1?)

Can we confirm that as of iOS 16.3.1, key frames for MPEGTS via HLS are mandatory now?

I've been trying to figure out why https://chaney-field3.click2stream.com/ shows "Playback Error" across Safari, Chrome, Firefox, etc.. I ran the diagnostics against one of the m3u8 files that is generated via Developer Tools (e.g. mediastreamvalidator "https://e1-na7.angelcam.com/cameras/102610/streams/hls/playlist.m3u8?token=<token>" and then hlsreport validation_data.json) and see this particular error:

  1. Video segments MUST start with an IDR frame

Variant #1, IDR missing on 3 of 3

Does Safari and iOS devices explicitly block playback when it doesn't find one? From what I understand AngelCam simply acts as a passthrough for the video/audio packets and does no transcoding but converts the RTSP packets into HLS for web browsers But IP cameras are constantly streaming their data and a user connecting to the site may be receiving the video between key frames, so it would likely violate this expectation.

From my investigation it also seems like this problem also started happening in iOS 16.3? I'm seeing similar reports for other IP cameras here:

https://ipcamtalk.com/threads/blue-iris-ui3.23528/page-194#post-754082 https://www.reddit.com/r/BlueIris/comments/1255d78/ios_164_breaks_ui3_video_decode/

For what it's worth, when I re-encoded the MPEG ts files (e.g. ffmpeg-i /tmp/streaming-master-m4-na3.bad/segment-375.ts -c:v h264 /tmp/segment-375.ts) it strips the non key frames in the beginning and then playback works properly if I host the same images on a static site and have the iOS device connect to it.

It seems like Chrome, Firefox, VLC, and ffmpeg are much more forgiving on missing key frames. I'm wondering what the reason for enforcing this requirement? And can I confirm it's been a recent change?

Replies

Hey there! Yes, I've actually noticed this change on Safari recently. It seems like Safari is catching up with other browsers in terms of supporting web animations. I'm curious to see how developers will adapt to this requirement and how it will affect the overall user experience. Have you had a chance to test it out on your projects yet

https://ipcamtalk.com/threads/blue-iris-ui3.23528/page-194#post-754082

https://1dolarberaparupiah.com/