Description
Have you read the FAQ and checked for duplicate open issues?
Yes, there is nothing similar to it.
If the problem is related to FairPlay, have you read the tutorial?
It is not.
What version of Shaka Player are you using?
4.12.6 but all version >=v3.0.0 are affected.
NOTE: All versions prior to v3.0.0 work as expected in timeshift
Can you reproduce the issue with our latest release version?
Yes.
Can you reproduce the issue with the latest code from main
?
Yes.
Are you using the demo app or your own custom app?
Custom app.
If custom app, can you reproduce the issue using our demo app?
Yes.
What browser and OS are you using?
Latest Chrome / Windows & Tizen / WebOS.
For embedded devices (smart TVs, etc.), what model and firmware version are you using?
Any model year reproduces this issue.
What are the manifest and license server URIs?
<?xml version="1.0" encoding="UTF-8"?> <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:cenc="urn:mpeg:cenc:2013" xmlns:mspr="urn:microsoft:playready" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="dynamic" availabilityStartTime="2025-01-16T09:52:02Z" minimumUpdatePeriod="PT24H" minBufferTime="PT4.0S" maxSegmentDuration="PT4.0S" publishTime="2025-02-03T08:46:24Z" timeShiftBufferDepth="PT7200S" suggestedPresentationDelay="PT4.0S" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd"> <Period start="PT0S" id="1"> <AdaptationSet mimeType="video/mp4" startWithSAP="1" segmentAlignment="true" par="16:9" templateParsed="true"> <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/> <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95"><cenc:pssh xmlns:cenc="urn:mpeg:cenc:2013">AAADBHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAuTkAgAAAQABANoCPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgAxADIAcgBkAEIALwBMAFoANgBrAGkAUwBzAHYATwBSAGkAVQBSAHMAZQBBAD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+AFMATQBjAG0AeABiAHQAYgBEAGsAVQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGMAeQB0AGEALgBsAGkAdgBlAC4AbwB0AHQALgBpAHIAZABlAHQAbwAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQBTAGUAcgB2AGUAcgAvAHAAbABhAHkAcgBlAGEAZAB5AC8AdgAxAC8AYwB5AHQAYQAvAGEAYwBxAHUAaQByAGUATABpAGMAZQBuAHMAZQA/AGMAbwBuAHQAZQBuAHQASQBkAD0AMQAxADgANAA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh></ContentProtection> <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"><cenc:pssh xmlns:cenc="urn:mpeg:cenc:2013">AAAAPXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAB0IARIQB91q19nySOqSsvORiURseCIEMTE4NDiIDg==</cenc:pssh></ContentProtection> <SegmentTemplate timescale="10000000" presentationTimeOffset="0" duration="40000000" startNumber="1" media="$RepresentationID$_Segment-$Number$.m4v?playseek=20250203064630-&timezone=UTC&hw_dash=1&servicetype=2&accountinfo=Ax7J5sDyidhcdJtbkaCYH4ajbjFXeV7r0rrIUUrQGrbUuSqMtwanSeJ%2Fgzi6UkMkhQV0Vh9iYNvieHQ2utfGvf6iZQQz9to7WVweEsLf40pbKu7O3MZBNTxe71cqNihlf3ead484de5497225df7d0b04eaf8264%3A20250203084626%3AUTC%2C10001000582195%2C79.166.153.38%2C20250203084626%2Curn%3AHuawei%3AliveTV%3AXTV216459%2C10001000582195%2C-1%2C0%2C1%2C%2C%2C7%2C600101%2C%2C%2C4%2C10000092801556%2C0%2C10000017284556%2C10001000581569%2C%2C%2C2%2C1%2C55644397%2CEND&GuardEncType=2&rrsip=195.14.144.114&zoneoffset=0&limitflux=-1&limitdur=-1&tenantId=35701&online=1738572386" initialization="20250116095150_$RepresentationID$_init.m4i?playseek=20250203064630-&timezone=UTC&hw_dash=1&servicetype=2&accountinfo=Ax7J5sDyidhcdJtbkaCYH4ajbjFXeV7r0rrIUUrQGrbUuSqMtwanSeJ%2Fgzi6UkMkhQV0Vh9iYNvieHQ2utfGvf6iZQQz9to7WVweEsLf40pbKu7O3MZBNTxe71cqNihlf3ead484de5497225df7d0b04eaf8264%3A20250203084626%3AUTC%2C10001000582195%2C79.166.153.38%2C20250203084626%2Curn%3AHuawei%3AliveTV%3AXTV216459%2C10001000582195%2C-1%2C0%2C1%2C%2C%2C7%2C600101%2C%2C%2C4%2C10000092801556%2C0%2C10000017284556%2C10001000581569%2C%2C%2C2%2C1%2C55644397%2CEND&GuardEncType=2&rrsip=195.14.144.114&zoneoffset=0&limitflux=-1&limitdur=-1&tenantId=35701&online=1738572386"/> <Representation width="960" height="540" frameRate="25" codecs="avc1.640029" scanType="progressive" sar="1:1" id="01item" bandwidth="2000000"/> <Representation width="1280" height="720" frameRate="25" codecs="avc1.640029" scanType="progressive" sar="1:1" id="02item" bandwidth="3000000"/> <Representation width="1920" height="1080" frameRate="25" codecs="avc1.640029" scanType="progressive" sar="1:1" id="03item" bandwidth="4000000"/> </AdaptationSet> <AdaptationSet mimeType="audio/mp4" startWithSAP="1" lang="eng" segmentAlignment="true" templateParsed="true"> <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/> <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95"><cenc:pssh xmlns:cenc="urn:mpeg:cenc:2013">AAADBHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAuTkAgAAAQABANoCPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgAxADIAcgBkAEIALwBMAFoANgBrAGkAUwBzAHYATwBSAGkAVQBSAHMAZQBBAD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+AFMATQBjAG0AeABiAHQAYgBEAGsAVQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGMAeQB0AGEALgBsAGkAdgBlAC4AbwB0AHQALgBpAHIAZABlAHQAbwAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQBTAGUAcgB2AGUAcgAvAHAAbABhAHkAcgBlAGEAZAB5AC8AdgAxAC8AYwB5AHQAYQAvAGEAYwBxAHUAaQByAGUATABpAGMAZQBuAHMAZQA/AGMAbwBuAHQAZQBuAHQASQBkAD0AMQAxADgANAA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh></ContentProtection> <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"><cenc:pssh xmlns:cenc="urn:mpeg:cenc:2013">AAAAPXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAB0IARIQB91q19nySOqSsvORiURseCIEMTE4NDiIDg==</cenc:pssh></ContentProtection> <SegmentTemplate timescale="10000000" presentationTimeOffset="0" duration="40000000" startNumber="1" media="$RepresentationID$_Segment-$Number$.m4a?playseek=20250203064630-&timezone=UTC&hw_dash=1&servicetype=2&accountinfo=Ax7J5sDyidhcdJtbkaCYH4ajbjFXeV7r0rrIUUrQGrbUuSqMtwanSeJ%2Fgzi6UkMkhQV0Vh9iYNvieHQ2utfGvf6iZQQz9to7WVweEsLf40pbKu7O3MZBNTxe71cqNihlf3ead484de5497225df7d0b04eaf8264%3A20250203084626%3AUTC%2C10001000582195%2C79.166.153.38%2C20250203084626%2Curn%3AHuawei%3AliveTV%3AXTV216459%2C10001000582195%2C-1%2C0%2C1%2C%2C%2C7%2C600101%2C%2C%2C4%2C10000092801556%2C0%2C10000017284556%2C10001000581569%2C%2C%2C2%2C1%2C55644397%2CEND&GuardEncType=2&rrsip=195.14.144.114&zoneoffset=0&limitflux=-1&limitdur=-1&tenantId=35701&online=1738572386" initialization="20250116095150_$RepresentationID$_init.m4i?playseek=20250203064630-&timezone=UTC&hw_dash=1&servicetype=2&accountinfo=Ax7J5sDyidhcdJtbkaCYH4ajbjFXeV7r0rrIUUrQGrbUuSqMtwanSeJ%2Fgzi6UkMkhQV0Vh9iYNvieHQ2utfGvf6iZQQz9to7WVweEsLf40pbKu7O3MZBNTxe71cqNihlf3ead484de5497225df7d0b04eaf8264%3A20250203084626%3AUTC%2C10001000582195%2C79.166.153.38%2C20250203084626%2Curn%3AHuawei%3AliveTV%3AXTV216459%2C10001000582195%2C-1%2C0%2C1%2C%2C%2C7%2C600101%2C%2C%2C4%2C10000092801556%2C0%2C10000017284556%2C10001000581569%2C%2C%2C2%2C1%2C55644397%2CEND&GuardEncType=2&rrsip=195.14.144.114&zoneoffset=0&limitflux=-1&limitdur=-1&tenantId=35701&online=1738572386"/> <Representation audioSamplingRate="48000" codecs="mp4a.40.2" id="04item" bandwidth="95000"/> </AdaptationSet> </Period> </MPD>
What configuration are you using? What is the output of player.getNonDefaultConfiguration()
?
{
"drm": {
"retryParameters": {
"baseDelay": 300,
"fuzzFactor": 0.2,
"connectionTimeout": 20000
},
"servers": {
"com.widevine.alpha": "our license server"
},
"advanced": {
"com.widevine.alpha": {
"distinctiveIdentifierRequired": false,
"persistentStateRequired": false,
"videoRobustness": "SW_SECURE_CRYPTO",
"audioRobustness": "SW_SECURE_CRYPTO",
"sessionType": "",
"serverCertificateUri": "",
"individualizationServer": ""
}
}
},
"manifest": {
"dash": {
"clockSyncUri": "https://time.akamai.com?iso&ms"
}
},
"abr": {
"switchInterval": 2
},
"preferredAudioLanguage": "en",
"preferredTextLanguage": "el"
}
What did you do?
- Live content is playing
- Seek backwards into timeshift buffered depth
What did you expect to happen?
- To be able to seek and properly play the full timeshift window (in this case 7200s)
What actually happened?
- It seeks backwards to a max of ~70mins. If you go backwards from there, it always starts playing from the 70min frame. It jumps there because it thinks there is a gap.
- It seems like Shaka cannot buffer the full timeshift window and keep around 70mins from live
- By using debug version i get this error every time i seek backwards of ~70min:
Jumping forward 852.2477959999815 seconds because of gap before start time of 616777.679337
Steps we tried
- Checked manifest file and everything seems OK to us
- Shaka seems to understand the timeshift window as the output of
seekRange()
seems correct - Tried playing with
streaming
parameters to no difference at all
NOTE: All versions prior to v3.0.0 work as expected in timeshift
Some breaking changes seem to have taken place from v3.0.0.
Can you help us better understand the issue?
Is it manifest related?
Thank you!