Dash-Industry-Forum / livesim2

DASH Live Source Simulator v2 in Go
Other
36 stars 6 forks source link

content playback failure when segment is less than 2 seconds. #144

Closed paulojmcneto closed 9 months ago

paulojmcneto commented 9 months ago

Hi Tobbee,

First of all thank you for your great work on this tool. I already used livesim1 and now i'm using livesim2 to run some lab tests.

I found an weird behaviour when using an asset with 1 second segments. I understand that in the real world it would be more correct to avoid decreasing below the 2 sec and use an low latency 2 sec segments with 500ms chunks for example, but in lab i want to observe the behaviour of having 1sec segments without low latency.

When running the tests on the 1sec segment assets, dash.js player started crashing with "*.m4s is not available" after playing a few segments, and then, when doing the troubleshooting, i observed some incoherence's between the vod manifest segmentTemplate -> "duration" between the vod manifest and the manifest after livesim2. at the vod asset the segmentTemplate -> duration and the timescale are "equal" for 1 second, after livesim2 output the segmentTemplate -> duration is the double of the timescale, as if the livesim2 could not do less than 2se segments.

I only want to understand if this is a voluntary behavior or an limitation.

Thanks you for your time, Paulo

Some complementary infos: A1 -> asset with 2 sec segment work fine, A1-new -> asset with 1 sec segment fail

livesim2 loading messages: image

image

Dash.js error: image

Comparison between the A1-new vod manifest and after livesim2 manifest: image

tobbee commented 9 months ago

Hi @paulojmcneto, glad that you like livesim2.

There should be no difference between 1s segments and 2s segments, so this is probably due to some bug, possibly triggered by different time scales in the media files and the manifest or between different video variants. What are the time scales in the various video tracks?

tobbee commented 9 months ago

Also be sure to not mix representations with different segment durations in the same asset (directory), since representations are not mapped to manifests but are considered to be useful in all manifests.

paulojmcneto commented 9 months ago

Hi Tobbee,

Thanks you for your quick answer with these clues. I need to run more tests, but this time i'll attempt to do the encoding / packaging my self instead to then compare with the VoD asset i'm using that was not prepared by me to see if i observe the same behavior or not. I'll keep you posted once i've more information.

Kind Regards, Paulo

paulojmcneto commented 9 months ago

Hi Tobbee,

After running the tests with an asset prepared by me, i confirm you that livesim2 works with 1s segments. The other asset i used, probably has some parameters in the encoding / packaging part that are not true in the original Manifest, and then, since i use as reference to create the livesim2 adapted manifest (where the segment template must be on adaptation set level and not on Representation Level, among other small modification) the problem appear.

below you can see the system working using 1s segment asset i prepared: image

Thanks for your support, and thank you for your patience. Kind Regards, Paulo

tobbee commented 9 months ago

OK. Good that you got it sorted out. Happy holidays!