Wowza Community

Invalid SampleDelta -20 in STTS, at 560 st:1

Hello All,

I have a mobile app which does live streaming using wowza streaming engine. The live streams are recorded and later uploaded to AWS S3 bucket for VOD.

I am using goole Exo player to play the Vod’d from AWS S3 bucket. Unfortunately Exo player is not able to play the Vod’s. When I see the metadata info of the recorded vod files. I see the following error “Invalid sampleDelta in STTS”, I am new to this streaming media domain and do not have any clue what is this error about. I saw some other post in this forum regarding the same issue, but there was no solution provided for this issue. Now I am stuck, please help.

I am using Wowza streaming engine version 4.6.0 in AWS Ec2 instance.

Blow is the ffmpeg log

[mov,mp4,m4a,3gp,3g2,mj2 @ 000000000043a760] Invalid SampleDelta -20 in STTS, at 560 st:1 [mov,mp4,m4a,3gp,3g2,mj2 @ 000000000043a760] Invalid SampleDelta -20 in STTS, at 698 st:1 [mov,mp4,m4a,3gp,3g2,mj2 @ 000000000043a760] Invalid SampleDelta -110 in STTS, at 1169 st:1 [mov,mp4,m4a,3gp,3g2,mj2 @ 000000000043a760] Invalid SampleDelta -18 in STTS, at 1711 st:1

Exo player error:

E/LoadTask: Unexpected exception loading stream

java.lang.IllegalStateException: Top bit not zero: -20

at com.google.android.exoplayer2.util.ParsableByteArray.readUnsignedIntToInt(ParsableByteArray.java:378)

at com.google.android.exoplayer2.extractor.mp4.AtomParsers.parseStbl(AtomParsers.java:242)

at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.processMoovAtom(Mp4Extractor.java:341)

at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.processAtomEnded(Mp4Extractor.java:276)

at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.readAtomPayload(Mp4Extractor.java:267)

at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.read(Mp4Extractor.java:147)

at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:704)

at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:315)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)

at java.lang.Thread.run(Thread.java:761)

E/ExoPlayerImplInternal: Source error.

com.google.android.exoplayer2.upstream.HttpDataSource$InvalidResponseCodeException: Response code: 416

at com.google.android.exoplayer2.ext.okhttp.OkHttpDataSource.open(OkHttpDataSource.java:175)

at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:692)

at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:315)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)

at java.lang.Thread.run(Thread.java:761)

Caused by: com.google.android.exoplayer2.upstream.DataSourceException

at com.google.android.exoplayer2.ext.okhttp.OkHttpDataSource.open(OkHttpDataSource.java:178)

at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:692)

at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:315)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)

at java.lang.Thread.run(Thread.java:761)

com.google.android.exoplayer2.ExoPlaybackException

at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:389)

at android.os.Handler.dispatchMessage(Handler.java:98)

at android.os.Looper.loop(Looper.java:154)

at android.os.HandlerThread.run(HandlerThread.java:61)

Caused by: com.google.android.exoplayer2.upstream.HttpDataSource$InvalidResponseCodeException: Response code: 416

at com.google.android.exoplayer2.ext.okhttp.OkHttpDataSource.open(OkHttpDataSource.java:175)

at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:692)

at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:315)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)

at java.lang.Thread.run(Thread.java:761)

Caused by: com.google.android.exoplayer2.upstream.DataSourceException

at com.google.android.exoplayer2.ext.okhttp.OkHttpDataSource.open(OkHttpDataSource.java:178)

at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:692)

at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:315)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)

at java.lang.Thread.run(Thread.java:761)