60fps H265 video stuttering on Roku Streaming Stick+
Posted: Thu Apr 15, 2021 4:24 pm
Hi,
I'm having trouble with video encoded using Handbrake 1.3.3 (2020061300) stuttering when played back on a Roku Streaming Stick+ (Model 3810EU, software v9.4.0 - build 4210-50). The stutter is regular and continuous, making the content look like it's playing at about 5fps. Any help you can offer would be much appreciated.
The video is from a blu ray HD 29.97fps interlaced original, converted to 59.94fps progressive H265 using the Yadif deinterlacing filter set to 'bob'. I first noticed the problem in the PLEX app for Roku. It is possible this is a Roku problem, hence I've posted about this on the Roku forum here, and also the PLEX forum here. One very helpful user on the PLEX forum suggested the problem might be with Handbrake's output.
I've prepared some new samples. The ones referred to in the links above were 10-bit converted from 8-bit leading me to wonder if it was a problem with the specific combination of H265 + 10-bit + 60fps. More testing has shown the problem applies to 8-bit H265 videos also.
Link to samples & logs (dropbox folder)
The samples are numbered as follows with log.txt files as appropriate:
1. 1080p 59.94fps H265 sample from Handbrake (stutter)
2. 1080p 29.97fps H265 sample from Handbrake (no stutter)
3. 720p 59.94fps H265 sample from Handbrake (stutter)
4. 1080p 59.94fps H265 sample from VirtualDub2 (no stutter)*
5. 1080p 59.94fps H264 sample from Handbrake (no stutter)
6. 1080p 59.94fps H265 sample from Handbrake remuxed using MKVToolNix (stutter)
*Note VDub2's FFMPEG H265 encoder does not allow control over profile or level.
Apologies for all the singing
Summary of things I've tried so far:
1. Confirmed the video (sample 1) is streaming to the Roku direct without transcoding by the server. Used the Roku media player app connected to PLEX DLNA server. Forced dierct play by editing the RokuDLNA-4400X-7.x.xml profile in the Plex Server folder and double-checked via the Plex dashboard.
2. Checked that bandwidth is not an issue. The Roku client is connected to the network via Wifi (802.11n). Server is wired (1 GBe). Other videos with higher bitrates work fine.
3. Played sample 1 on my PC using VLC, Windows 10 'Films & TV' app, and MediaPortal - no stutter.
4. Played sample 1 on my phone using the Plex app for Android (original quality) - no stutter.
5. Played sample 1 on my phone direct over SMB using the MX player app for Android - no stutter.
6. Encoded the same source into H264 59.94fps with Handbrake using the same bob deinterlacing filter and tried that on the Roku stick - no stutter (sample 5).
7. Downsampled with Handbrake to 1280x720 59.94fps H265 and tried on the Roku stick - still stutters (sample 3).
8. Encoded the same source into H265 29.97fps progressive with Handbrake using the Yadif deinterlacing filter set to 'default' and tried on the Roku stick - no stutter (sample 2).
9. Encoded the same source into H265 59.94fps with VirtualDub2 using the Yadif bob deinterlacing filter and tried that on the Roku stick - no stutter (sample 4).
The problematic combination is therefore Roku playing content encoded using Handbrake into H265 at 59.94fps, irrespective of resolution.
One thing I've noticed is that when opening Handbrake-encoded 59.94fps files in VLC and checking the codec info, they are marked as 29.97fps. But they still play at the correct rate in VLC, Mediaportal, my phone apps etc., and the 59.94fps H264 sample plays fine on the Roku despite being similarly mis-tagged.
To double-check I remuxed sample 1 using MKVToolNix specifying 60000/1001p as the frame rate manually. Result: VLC now shows the correct frame rate, but it still stutters on the Roku - see sample 6.
HD 60fps HEVC (H265) is well within the compatibility matrix for the Rock Streaming Stick+, the question is whether the problem is with Handbrake's output or Roku's player/decoder.
Many thanks.
I'm having trouble with video encoded using Handbrake 1.3.3 (2020061300) stuttering when played back on a Roku Streaming Stick+ (Model 3810EU, software v9.4.0 - build 4210-50). The stutter is regular and continuous, making the content look like it's playing at about 5fps. Any help you can offer would be much appreciated.
The video is from a blu ray HD 29.97fps interlaced original, converted to 59.94fps progressive H265 using the Yadif deinterlacing filter set to 'bob'. I first noticed the problem in the PLEX app for Roku. It is possible this is a Roku problem, hence I've posted about this on the Roku forum here, and also the PLEX forum here. One very helpful user on the PLEX forum suggested the problem might be with Handbrake's output.
I've prepared some new samples. The ones referred to in the links above were 10-bit converted from 8-bit leading me to wonder if it was a problem with the specific combination of H265 + 10-bit + 60fps. More testing has shown the problem applies to 8-bit H265 videos also.
Link to samples & logs (dropbox folder)
The samples are numbered as follows with log.txt files as appropriate:
1. 1080p 59.94fps H265 sample from Handbrake (stutter)
2. 1080p 29.97fps H265 sample from Handbrake (no stutter)
3. 720p 59.94fps H265 sample from Handbrake (stutter)
4. 1080p 59.94fps H265 sample from VirtualDub2 (no stutter)*
5. 1080p 59.94fps H264 sample from Handbrake (no stutter)
6. 1080p 59.94fps H265 sample from Handbrake remuxed using MKVToolNix (stutter)
*Note VDub2's FFMPEG H265 encoder does not allow control over profile or level.
Apologies for all the singing
Summary of things I've tried so far:
1. Confirmed the video (sample 1) is streaming to the Roku direct without transcoding by the server. Used the Roku media player app connected to PLEX DLNA server. Forced dierct play by editing the RokuDLNA-4400X-7.x.xml profile in the Plex Server folder and double-checked via the Plex dashboard.
2. Checked that bandwidth is not an issue. The Roku client is connected to the network via Wifi (802.11n). Server is wired (1 GBe). Other videos with higher bitrates work fine.
3. Played sample 1 on my PC using VLC, Windows 10 'Films & TV' app, and MediaPortal - no stutter.
4. Played sample 1 on my phone using the Plex app for Android (original quality) - no stutter.
5. Played sample 1 on my phone direct over SMB using the MX player app for Android - no stutter.
6. Encoded the same source into H264 59.94fps with Handbrake using the same bob deinterlacing filter and tried that on the Roku stick - no stutter (sample 5).
7. Downsampled with Handbrake to 1280x720 59.94fps H265 and tried on the Roku stick - still stutters (sample 3).
8. Encoded the same source into H265 29.97fps progressive with Handbrake using the Yadif deinterlacing filter set to 'default' and tried on the Roku stick - no stutter (sample 2).
9. Encoded the same source into H265 59.94fps with VirtualDub2 using the Yadif bob deinterlacing filter and tried that on the Roku stick - no stutter (sample 4).
The problematic combination is therefore Roku playing content encoded using Handbrake into H265 at 59.94fps, irrespective of resolution.
One thing I've noticed is that when opening Handbrake-encoded 59.94fps files in VLC and checking the codec info, they are marked as 29.97fps. But they still play at the correct rate in VLC, Mediaportal, my phone apps etc., and the 59.94fps H264 sample plays fine on the Roku despite being similarly mis-tagged.
To double-check I remuxed sample 1 using MKVToolNix specifying 60000/1001p as the frame rate manually. Result: VLC now shows the correct frame rate, but it still stutters on the Roku - see sample 6.
HD 60fps HEVC (H265) is well within the compatibility matrix for the Rock Streaming Stick+, the question is whether the problem is with Handbrake's output or Roku's player/decoder.
Many thanks.