
Stuttering playback using HLS, CloudFront and Zencoder.
Hello.
I'm using JWPlayer to play a HLS stream that is adaptive, and when the client goes from one HLS segment to another (not switching bitrates) playback stutters. The version of JWPlayer I'm using is 6.8.4616.
You can see our example here:
http://tinyurl.com/ls84tua
To illustrate the problem more clearly I've switched to 5 seconds segments rather than the traditional 10.
I've checked the .ts files for starting with a keyframe with ffprobe and they all start with a proper keyframe.
For example here is are some .ts file that is produced as part of our 4564k stream:
http://blive-video.bproductions.com/000884-001837-zlq/file-4564k-00013.ts
http://blive-video.bproductions.com/000884-001837-zlq/file-4564k-00014.ts
http://blive-video.bproductions.com/000884-001837-zlq/file-4564k-00015.ts
All of the .ts files are consistent in size, around 3megs each. They are hosted on Amazon CloudFront.
For the benefit of other users here are the Zencoder settings I"m using to produce one of these adaptive streams:
{
"width" : 1920,
"live_stream" : "true",
"segment_seconds": 5,
"forced_keyframe_rate": "0.2",
"decoder_buffer_size" : 20538,
"video_bitrate" : 4500,
"decoder_bitrate_cap" : 6846,
"audio_bitrate" : 64,
"max_hls_protocol_version" : 4,
"audio_sample_rate" : 44100,
"h264_profile" : "main",
"tuning" : "film",
"format" : "ts",
"type" : "segmented"
}.
Do you have any different suggested Zencoder settings to use to prevent stuttering playback of HLS on flash based clients?
It also seems on some older hardware that Flash is falling back to software based H.264 decoding, is there a way to force hardware decoding so that functionality and performance is in parity with RTMP?
Thanks.