I am trying to create a video sharing app for only one country (India). My bucket is in the India region. The size of videos will be of approximately 18MB each.
The video download takes too much time (~4mins) to download even via CloudFront. How can I accelerate my S3 download speed?
Apps that play streaming video do not download an entire video file before playing. Rather, they use a video protocol that only downloads a few seconds at a time. Amazon CloudFront can support these protocols, such Adobe's Real-Time Message Protocols and Microsoft Smooth Streaming.
See: How RTMP Distributions Work
Therefore, the time for the actual file to download is not important. Rather, the time to serve the first portion of the video is most important, followed by the ability to continue serving content as fast as the viewer consumes the content.
Connections speeds will, of course, vary depending upon each user's own Internet connection -- therefore, it is best to test the speed of your application's video playing ability from many different ISPs and types of Internet connections.