- Newest
- Most votes
- Most comments
Karan, 15-16 sec latency sound much larger than would be expected using Amazon IVS Low Latency.
Can you confirm that you are using the IVS Player SDK in your player app to receve the IVS stream? The lowest latencies are achieve through the IVS Player SDK. Other market available players will experience longer times. https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/player.html
Please confirm that you are playing the live version of the IVS stream, which would be detailed in the IVS channel, under Playback URL. If instead, the stream is being pulled from the S3 recording, then there would be a much longer latency, >10s.
Have you investigated if your IVS channel status is OK, publishing any errors, or registering other issues. Review the links below for better understanding of channel monitoring. https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/stream-health.html https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/eventbridge.html https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/cloudtrail.html
15-16 seconds - this is within expectation when you are using native ios player.
We're using a custom videojs player and used to use dolby millicast and never had more than 3-5 seconds of latency.
Read how to get better results for native playback on ios Safari here: https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/player.html#player-reducing-latency
iOS Safari
In iOS Safari, you can reduce latency to approximately 6-8 seconds by using the IVS player and configuring it to use a service worker. See Set Up Service Worker in the Player SDK: Web Guide for implementation details and a reference sample: https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/web-getting-started.html#web-service-worker
Note: Getting the lowest latency requires an IVS stream with the keyframe interval set to 2 seconds.
Hi Roman, the latency is the same on iOS Chrome, and my keyframe interval is already set to 2 seconds on OBS.
The latency you're experiencing on iOS is higher than expected for Amazon IVS low-latency streaming. While iOS Safari typically has higher latency compared to other platforms, it should be possible to achieve lower latency than what you're currently seeing.
For iOS Safari, using the IVS player with a properly configured service worker should reduce latency to approximately 6-8 seconds. This is significantly lower than the 15-16 seconds you're experiencing.
It's important to note that to achieve the lowest possible latency, you must use the Amazon IVS player. Third-party HLS video players, including Video.js, are not supported for low-latency streaming with IVS. The VideoJS plugin you mentioned may not be optimized for IVS low-latency streaming.
To reduce latency:
- Ensure you're using the official Amazon IVS player SDK, not a third-party player like Video.js.
- Properly set up and configure the service worker for iOS Safari.
- Set the IDR/Keyframe interval to 2 seconds (or 1 second for even lower latency) on your video encoder.
- Use the RTMPS ingest protocol.
- Configure your encoder for zero-latency tuning if available.
- Ensure your buffer size (VBV) doesn't exceed the average bitrate of the stream.
If you've correctly implemented all these steps and are still experiencing high latency, it may be worth reaching out to AWS support with your specific configuration and playback session identifier for further assistance.
Sources
IVS Player SDK - Amazon IVS
Amazon IVS Streaming Configuration - Amazon IVS
Getting Started with the IVS Web Player SDK - Amazon IVS
IoS is not allowed to use third party players for web. Even if you select anything else it routes to AV player. Native player will not give you latency that IVS SDK player can provide.
To improve latency you can use this instruction https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/web-getting-started.html#web-service-worker
But you still can't reach the same latency that IVS SDK player provides.
To reach 3-5 sec latency for IoS you need to create application and use IVS player SDK there. Here is some samples: https://github.com/aws-samples/amazon-ivs-feed-ios-demo
Relevant content
- asked 3 years ago
- asked 2 years ago
- asked 2 years ago
- AWS OFFICIALUpdated a year ago
- AWS OFFICIALUpdated 2 years ago
- AWS OFFICIALUpdated 3 years ago
- AWS OFFICIALUpdated 2 months ago
Hi Mike! I'm using the VideoJS Integration of the IVS Player SDK and the live version of the stream under playback!