Foliovision › Forums › FV Player › Bug Reports › Video stalls on iOS | High priority issue!
-
Hello!
Our iOS users report issues with the Amazon S3 videos in our playlist. It plays totally fine on Android and Dekstops but iPhone and iPad users experience the stalling.
Here is a report from one of the users: video starts buffering and plays, then stops buffering at around 16 minutes and when the video reaches this 16 minute point it shows “video loading has stalled” (attaching screenshot). If the user starts playing at 45 minutes for example, it starts playing again for another 15 minutes or so and then again stalls.
I asked this user to measure their speed and it was 40mbps download speed.We are using FV Player Pro version 7.4.16.727 . We are using Release, not Beta. However I tried the Beta, and the issue remains.
The iOS playback issues have been repeating for past few years with FV player and S3 storage unfortunately, it wasn’t the stalling error, but similar errors where the video would not go past a certain playing time, Me and my tech support been chatting with FV support quite frequently, sometimes it was fixed, sometimes our users gave up and switched to Desktop or Android where it works alright. I wish it can be finally fixed.
I can share the playlist link and setup test access for support, if this thread can be switched to private conversation, because this is a public paid library product on our site.
-
-
Hello Kristin,
Thanks for reaching to us. We’re here to help you solve these issues.
So, the issue only experience users in iOS, right? Is there a chance that you can provide us user agent info from that user? We would like to check which browser does the user use. Also, information about those iOS devices could be really beneficial for us.(iOS version etc.)
I would also like to do hands-on testing on your website. Can you please provide us a link to that particular problematic video? Thanks!
Let us know if you have any questions.
Thanks for using our services,
JurajHello Kristin,
it doesn’t have to be so complex as what Juraj is asking for – please just let us know what iOS version your users were using and if it happens in the Safari browser. That’s all we need to know.
But I’ll already prepare a test for this. ‘ll let the video URL expire after 1 minute (rather than 15 minutes). That will make it easier to reproduce the issue and figure out if there is anything wrong.
Thanks,
MartinHello Kristin,
please check if you have enabled Settings -> FV Player Pro -> Hosting -> Amazon S3 Protected Content -> “Amazon S3 Ajax (Pro)”.
Then clicking that reload arrow below the “Video loading has stalled error, click to reload” message will fix the video playback.
I see that setting should just be enabled by default for Pro users as that’s what can keep the video playing even if the link times out. You can try that on this special link where the S3 link expiration was set to 5 seconds: https://foliovision.com/player/demos/amazon-signed-urls#fvpexpirelow
Play the video and let it play for at least 5 seconds and then seek into the unbuffered part of that video. You will see that it fails to seek, but recovers and continues playback.
However I see the issue on iPhone – when you seek into an unbuffered position of video, it refuses to report any playback error if the HTTP response code is 403 – which is the case of an expired link to Amazon S3. That’s why we check how the playback is progressing and if it’s not progressing for too long, we do show that error message to allow people to recover the playback.
How long are your videos? I wonder why they won’t be fully buffered if the user watches it for 15 minutes.
Thanks,
MartinHello Juraj and Martin,
Thanks for a quick and detailed answer. I’ve requested the iOS version and Browser type from our user and I also asked them to play your test video.
The Amazon S3 Ajax (Pro) setting is enabled in my settings.
Our videos are 2.5 hours in average. We use the quality switching and use 1080p for hd (file size 2.5 Gb) and 360p for sd (file size 500mb). So it’s a long video and big file size, however with the 40mbps download speed it shouldn’t be an issue, and it isn’t for me on my Macbook Pro and Android Google Pixel even on the slower speeds.
We’ve created a test page for you and sent access details to your support email with the subject “Test access Kristin “
Hi again :)
I’ve just tried your test video on friends iPhone and the stalling issue also happened. Please see the video https://youtu.be/dVWb0g4OciQ
Hello Kristin,
thakn you for the video. It appears the video did recover once you hit that reload button. I understand that it’s far from ideal, but since iPhone won’t report any video error for an expired AWS S3 link, there is not much we can do.
What would really help would be if AWS S3 could be configured to return a HTTP 404 error for an expired link, rather than HTTP 403. That way iPhone would surely detect the issue. But I checked Cloudfront and BunnyCDN, both of which can work with S3 and they both return HTTP 403 when the signatue is expired.
—–
I have worked on fixing this – checking some of the less documented iOS Safari video events and putting together something that does:
1) reload the video path if the signature ran out of time while watching the video as it was progressing
2) relaod the video path if you seek into an unbuffered path and the signature is expiredAnd there is no user interaction required.
You can test that new version using iPhone on https://foliovision.com/player/demos/amazon-signed-urls#fvpexpirelow
You can also download the new plugin version with the fix here: https://github.com/foliovision/fv-wordpress-flowplayer/archive/294-ios-403-recovery.zip
Thanks,
MartinHi Martin, Thanks a lot
I’ve just tried your test video from same iPhone 11 pro, and it’s gotten much better that it continues playing, but before that it blinks black screen, showing “video not found” then starts playing again. So this is much better but still not ideal.
I will try the plugin update you posted as well.
I tried our long videos with the updated plugin, at the same 16 minutes point, it froze, and our iPhone went into sleep mode after a few minutes. I unlocked the phone, clicked play again, it reloaded the video, started playing from the start for a few seconds and then jumped to the 16 minutes and continued from there (it does the same when I change the quality, it plays few seconds from the start and then jumps, so I think this jump to the start should be fix as well, it looks like a bug)
This is better than before, but still this is impossible to watch like this and our users are unhappy.I used your product to build my website. Works great on my windows desktop and android phone, but when I shared it to my friends everyone with an iPhone was complaining about how the videos start glitching shortly after hitting play (no skipping ahead).
https://www.maxzahradnik.com/videos/lost-soul-skateboards/
The errors reported to me seem to be repeated text saying “html5: video file not found” and “video loading has stalled click to reload” with a bunch of refresh symbols.
These are shorter videos than Kristin’s, and I’m not using Amazon S3. I am hosting the videos on my website. They are mp4 files. The errors will happen within 15 seconds of playing a video from the beginning. I wish I had an iPhone on hand to tell you more, but it seems to be across the board with anyone using iOS.
Hello Max,
I see you are using FV Player 7.4.14.727. I was able to reproduce the issue, using Safari on iPhone with iOS 13.3.1.
When I load your page I can sometimes see errors like “The network connection has stalled” in the browser debug console, it sometimes causes even the video splash screens to not load. So perhaps your website host doesn’t like you to host large files on it and it triggers these errors.
But I was able to play the videos through without interruption, it would “only” popup that message about video stalling basically every second.
Please upgrade to FV Player 7.4.17.727, which was released yesterday. It uses a better way of detecting a video which stops loading half-way through for iOS.
Hello Kristin,
that fix will have to be in FV Player Pro, we will work on that.
Thanks,
MartinHelllo Max,
yes, it helped. Now I was able to enjoy the videos without any distractions or chaotic error messages.
If you are serious about your video, you should consider using a CDN for your videos – to make them fast to load across the globe. For example the In With The Out video was very slow to load. It took a minute to start. It appears it was a temporary issue due to some network conditions, but that’s what a CDN would avoid.
Thanks,
MartinHello Kristin,
weI have worked on fixing this – it no longer jumps to the start of the video for a second when recovering.
You can test here: https://foliovision.com/player/demos/amazon-signed-urls#fvpexpirelow Play the video for 5 seconds and then seek into unbuffered position and you will get a smoother behavior.
Although the error message still blinks for a fraction of second.
I see that “that start of video blinking for a second” issue should be improved for the Quality Switching too.
Thanks,
MartinHi Martin,
Thanks! I’ve just tested the short video and indeed it blinks an error but then continues playing. Will you implement this fix in the public update soon?
And if there is a chance to totally remove the blinking error and playback interruption that would be the best fix and we will be 100% satisfied with FV.
Hi again guys, our client just reported that playing longer videos after the update of FV player doesn’t show the stalling error, but the interruptions that are happening are super annoying. In addition to that sometimes it jumps to another video in the playlist in a way that it is even hard to realized it did. So it is very confusing and we are about to loose $200 because of refunding for a client.
So whatever was implemented so far with this Amazon S3 bug on iOS specifically, is not a fix but crutches. This is not worthy of being paid for. Fix this ASAP please. Given it does work on Desktop and and Android, there should be a way to fix this completely for iOS. The workarounds do not work.
Hello Kristin,
FV Player 7.4.19.727.beta is out. To get it please first switch the plugin to Beta and then you will be able see that upgrade available.
We have increased the AWS S3 link timeout to a safe value for your long videos. We can improve it to use the actual video length.
There are times when our crutch will still be used – such as if the user puts the iPhone to sleep and then wakes it up couple of hours later. Unfortunately the HTML5 video playback on iOS has it’s culprits, which is what has forced us to create this kind of crutch.
Thanks,
MartinHello Kristin,
what is the location of the S3 bucket and what is the user location? If the bucket is in one of the USA AWS datacenters and the user is in Europe or Asia, there is a bigger chance of issues like this.
Although it shouldn’t certainly go back to the first video. I’ll test that carefully now.
We had a bad week – one of the video membership websites which we worked on had a ton of similar issues with encrypted HLS streams. The CDN would fail to pull the video files from the origin server for user in Europe and Asia. We even deployed a secondary backup CDN for these visitors.
But then it turned out there was some issue with routing which was outside of reach of our CDN and VPS providers and once it got fixed, all the issues just disappeared.
What I’m saying is that if your are reaching global audience, you should by using CloudFront together with S3. It does come at a higher price though. A much cheaper option is BunnyCDN, which can pull from S3 buckets using signed URLs. It’s also easier to setup, although we don’t have a guide for such combination (AWS S3 as file storage and BunnyCDN for delivery).
Thanks,
MartinHello Kristin,
FV Player Pro 7.4.20.727.beta is out and it fixes the issue. Until now when the recovery routine had to fix video with error in playlist, it would always add a new copy of recovery routine. So if the first video had to be recovered and then 5th video had to be recovered too, it would recover both at the same time – thus sometimes going back to playing that first video.
Thanks,
MartinHello Kristin,
yes, if you decide to use BunnyCDN, that’s what you will have to do. It supports signed URLs too, here’s our guide for that: https://foliovision.com/player/video-hosting/using-bunnycdn-with-fvplayer-pro However instead of creating the Storage Zone you would have to only provide your S3 bucket URL along with the AWS access key. And I see the BunnyCDN interface has changed a bit too.
Thanks,
MartinHello, I’m getting reports the videos have started glitching again on iOS. I just updated the plugin to to Version 7.4.22.727 this morning after I got complaints and I was hoping you could have a look and confirm if the videos are working now on Apple devices. Specifically this page https://www.maxzahradnik.com/skateboarders/luke-koch/
Helllo Max,
I had a look and you are not using AWS or anything else that would use URL tokens for your videos. So it’s not the issue with Kristin was having.
So if the videos fail to play on iOS sometimes, I think the issue is with the way you host your videos – directly on your web server which is not a best fit for hosting of videos. As I said before:
If you are serious about your video, you should consider using a CDN for your videos – to make them fast to load across the globe. For example the In With The Out video was very slow to load. It took a minute to start. It appears it was a temporary issue due to some network conditions, but that’s what a CDN would avoid.
Thanks,
MartinHi Martin,
We had performed an in-depth test on iPhone with the most recent FV Player beta.
A quick note from our tester: The player is really good. I remember over the years that I would buy access to a series and then I’d give up watching because playback would stall so often, so this is a huge improvement! But still there are errors.
Here is the detailed report, what will you suggest? Thanks!
Page played. I Can provide access if needed. It has three 2.5 videos with quality switching enabled from S3 bucket.
https://kristinkirk.com/embodting-the-mystery-september-2019/First play through:
Session 1: 1st time played through with no problems.
Session 2: 1st time started playing at 6.20 and then jumped back to the start. 1:03:13 stalled playing. I pressed play but it didn’t reload. I reloaded the website & it started playing again at 1:03:13.
Session 3: Video stalled at 2:24:17 and the icon was spinning for about a minute, and then it kept playing correctly from the same time.
Second play through:
Session 1: 1st time played through with no problems.
Session 2: Played through with no problems.
Session 3: Stalled at 15:32 (pic attached). Screen went black and had to reload page to get it to play again. After I did this it started playing at the beginning.
Thanks Martin!
Another feedback from our tester it is a lesser priority but maybe it is valuable for you nevertheless.
“I can’t play the videos on my iPad, which is from 2011. I haven’t been able to update the firmware since 2016 because it’s too old. I am confident that the problem is not with the player, but with my ancient iPad. Just wanted to let you know.”
Hello Kristin,
is that still the issue with 2.5 hours long MP4 video files? Using BunnyCDN as the CDN for Amazon S3 should improve the video serving indeed.
I tested the video recovery routines and came up with something more effective for these MP4 files it will be part of the new FV Player release. You can get it right now if you reinstall FV Player from this link: https://github.com/foliovision/fv-wordpress-flowplayer/archive/master.zip (To do that you will have to first deactivate and delete the current FV Player plugin you are using. WordPress will warn you that you might loose settings and data, but it’s not the case with our plugin, no settings now videos will be lost. Or you can just replace the plugin files via FTP.)
The radical step would be to start using the HLS format with the encryption to protect the videos against downloading. HLS is the video streaming technology designed by Apple. FV Player Coconut makes encoding videos into HLS far easier than it used to be.
Thanks,
Martin