I've just made some log files that may help... at least they show how the segments are coming in...
I started a video stream, waited until it had actually started playing video, then cancelled playback. I then immediately started the same video again.
This is the first time:
16:32:31 VideoPlayer::Show(): Showing VideoPlayer screen.
16:32:34 VideoPlayer::EventHandler(): Stream started.
16:32:40 VideoPlayer::EventHandler(): Download segment info
16:32:43 VideoPlayer::EventHandler(): Download segment info
16:32:47 VideoPlayer::EventHandler(): Download segment info
16:32:52 VideoPlayer::EventHandler(): Download segment info
16:32:56 VideoPlayer::EventHandler(): Download segment info
16:33:01 VideoPlayer::EventHandler(): Download segment info
16:33:03 VideoPlayer::EventHandler(): Download segment info
16:33:07 VideoPlayer::EventHandler(): Download segment info
16:33:12 VideoPlayer::EventHandler(): Download segment info
16:33:16 VideoPlayer::EventHandler(): Download segment info
16:33:21 VideoPlayer::EventHandler(): Download segment info
16:33:22 VideoPlayer::EventHandler(): HLS segment info
16:33:25 VideoPlayer::EventHandler(): Download segment info
16:33:26 VideoPlayer::EventHandler(): HLS segment info
16:33:28 VideoPlayer::EventHandler(): Playback interrupted by user.
And this is the same video, started immediately after stopping:
16:33:40 VideoPlayer::Show(): Showing VideoPlayer screen.
16:33:41 VideoPlayer::EventHandler(): Stream started.
16:33:51 VideoPlayer::EventHandler(): Download segment info
16:33:52 VideoPlayer::EventHandler(): Download segment info
16:33:57 VideoPlayer::EventHandler(): Download segment info
16:34:01 VideoPlayer::EventHandler(): Download segment info
16:34:06 VideoPlayer::EventHandler(): Download segment info
16:34:09 VideoPlayer::EventHandler(): Download segment info
16:34:12 VideoPlayer::EventHandler(): Download segment info
16:34:16 VideoPlayer::EventHandler(): Download segment info
16:34:21 VideoPlayer::EventHandler(): Download segment info
16:34:26 VideoPlayer::EventHandler(): Download segment info
16:34:31 VideoPlayer::EventHandler(): Download segment info
16:34:34 VideoPlayer::EventHandler(): Download segment info
16:34:39 VideoPlayer::EventHandler(): Download segment info
16:34:44 VideoPlayer::EventHandler(): Download segment info
16:34:47 VideoPlayer::EventHandler(): Download segment info
16:34:51 VideoPlayer::EventHandler(): Download segment info
16:34:56 VideoPlayer::EventHandler(): Download segment info
16:35:01 VideoPlayer::EventHandler(): Download segment info
16:35:05 VideoPlayer::EventHandler(): Download segment info
16:35:11 VideoPlayer::EventHandler(): Download segment info
16:35:15 VideoPlayer::EventHandler(): Download segment info
16:35:21 VideoPlayer::EventHandler(): Download segment info
16:35:24 VideoPlayer::EventHandler(): Download segment info
16:35:29 VideoPlayer::EventHandler(): Download segment info
16:35:36 VideoPlayer::EventHandler(): Download segment info
16:35:41 VideoPlayer::EventHandler(): Download segment info
16:35:45 VideoPlayer::EventHandler(): Download segment info
16:35:50 VideoPlayer::EventHandler(): Download segment info
16:35:55 VideoPlayer::EventHandler(): Download segment info
16:36:00 VideoPlayer::EventHandler(): Download segment info
16:36:05 VideoPlayer::EventHandler(): Download segment info
16:36:09 VideoPlayer::EventHandler(): Download segment info
16:36:13 VideoPlayer::EventHandler(): Download segment info
16:36:18 VideoPlayer::EventHandler(): Download segment info
16:36:21 VideoPlayer::EventHandler(): Download segment info
16:36:26 VideoPlayer::EventHandler(): Download segment info
16:36:31 VideoPlayer::EventHandler(): Download segment info
16:36:36 VideoPlayer::EventHandler(): Download segment info
16:36:41 VideoPlayer::EventHandler(): Download segment info
16:36:45 VideoPlayer::EventHandler(): Download segment info
16:36:50 VideoPlayer::EventHandler(): Download segment info
16:36:54 VideoPlayer::EventHandler(): Download segment info
16:37:00 VideoPlayer::EventHandler(): Download segment info
16:37:05 VideoPlayer::EventHandler(): Download segment info
16:37:11 VideoPlayer::EventHandler(): HLS segment info
16:37:14 VideoPlayer::EventHandler(): HLS segment info
16:37:17 VideoPlayer::EventHandler(): HLS segment info
16:37:22 VideoPlayer::EventHandler(): HLS segment info
16:37:27 VideoPlayer::EventHandler(): HLS segment info
16:37:32 VideoPlayer::EventHandler(): HLS segment info
16:37:37 VideoPlayer::EventHandler(): HLS segment info
16:37:42 VideoPlayer::EventHandler(): HLS segment info
16:37:43 VideoPlayer::EventHandler(): Playback interrupted by user.
In both cases, playback doesn't begin until the first "HLS segment info" message -- however, it's quite clear that the second time took MUCH longer. In fact, the second stream took 4
minutes to start!
I have tested my server against other HLS players, and this appears to be a Roku-specific issue. Why is it requesting so many segments before starting? Does anyone have any thoughts?