Playback of HLS live event skips part of video on pause/unpause on iOS 9.
| Originator: | haik.ampardjian | ||
| Number: | rdar://34239380 | Date Originated: | 2017-09-04 |
| Status: | Open | Resolved: | |
| Product: | iOS Safari | Product Version: | |
| Classification: | UI/Usability | Reproducible: | Always |
Summary: Playback of HLS live event skips part of video on pause/unpause on iOS 9. The software product my team is working on delivers personalized interactive video communications. We serve HLS video to visitors using iOS Safari. The video is generated at the time of visit, and we let the user start playing it while it's still not completely generated to reduce latency. FFmpeg on backend generates video in the background. So basically that's video on demand (VOD) emulated as live event because VOD type of HLS playlist cannot be appended with new chunks per HLS spec. The problem we have is that if user starts playback and then pauses for long time, on iOS 9 on resume playback automatically jumps to much later moment (to one of last segments available on latest playlist). We want user to watch video without skips, unless user does it manually. We have to support iOS 9 and fullscreen playback with native controls (not inline video playback on HTML page). I understand that developers can't provide much support for obsolete versions of software (iOS), but on our commercial projects iOS 9 alone accounts for 10% of visits so we'd like at last some hack. And by the way, we don't use HLS for iOS 10 anyway in favour of inline video playback. See attached archive ios9_hls_event_footage_skip.tar.xz with files of bug reproduction case. Steps to Reproduce: * Put these files to a web server directory. PHP must be supported. * Run ./ffmpeg.sh to generate HLS video where each frame shows its PTS. * Optionally, start watching web server access log (e.g. tail -F /var/log/apache2/access_log) * Open index.html (served by your web server) in Safari on iPhone with iOS 9.3.5 (iOS 10.1.1 doesn't reproduce the issue). * Press "play" on web page on iPhone. * When native player opens, immediately pause the playback. * Wait for 5 seconds or more (but less than 2 minutes). * See that playback has skipped a portion of video. * To repeat the test, remove file with name "visited" from the web server directory. Expected Results: Playback proceeds from the same point on unpause. Actual Results: Playback skips part of video footage on unpause. Version/Build: iOS 9.3.5 Configuration: iPhone 5s
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!