Under conventional circumstances, the streaming service selects dynamic content (e.g., video advertisements, etc.) for each DCIO and inserts the selected dynamic content into the video stream before playback at the user device begins. This process may be performed to satisfy the requirements of the streaming protocol utilized by the streaming service to deliver the video stream to the user device. For example, protocols such as HTTP live streaming (HLS) protocol, dynamic adaptive streaming over HTTP (DASH), Adobe flash streaming, smooth streaming and MP4 faststart may require that the program content and the dynamic content are known when the VOD stream starts. As a result, before playback of the VOD stream can begin at the user device, the streaming service may have to select and insert dynamic content in between the program content. The longer this process takes, the longer the duration between when the selection of the program occurs and when may playback begin (e.g., video stream startup). As mentioned above, an unreasonably long video stream startup creates a negative user experience.
The exemplary embodiments relate to a mechanism that ensures that the video stream startup time is kept to a minimum. Some embodiments will be described as satisfying the HLS protocol. However, the exemplary embodiments are not limited to the HLS protocol and may apply to other protocols such as, but not limited to, DASH, adobe flash streaming, smooth streaming, MP4 faststart, etc. Those skilled in the art will understand that the exemplary concepts described herein may be applicable to any scenario in which a server provides a video stream to a remote endpoint over one or more network connections. The exemplary embodiments may be used in conjunction with other currently implemented video streaming techniques, future implementations of video streaming techniques or independently from other video streaming techniques.