Dash-Industry-Forum / livesim2

DASH Live Source Simulator v2 in Go
Other
34 stars 4 forks source link

Is "init.mp4: MOOV/MVEX/MEHD" table mandatory in a source file? #156

Closed Murmur closed 4 months ago

Murmur commented 5 months ago

Do Livesim2 need MOOV/MVEX/MEHD (total duration) atom be present in a vod init file? It does not drop it from the live output as it's may not really needed or expected in a live content?

If I use an init file without MEHD atom then Livesim2 randomly gives liveMPD: convertToLive: unknown mpd name error reply, reloading an url it returns a manifest only to fail on next few requests. It also randomly fails on segment files.

Using an init file with MEHD atom then requests work fine.

Yes MEHD table in a source init file https://refapp.hbbtv.org/livesim2/tsbd_240/mup_4/spd_8/utc_keep/00_llama_h264_v9_1frag/manifest_1080p.mpd https://refapp.hbbtv.org/livesim2/tsbd_240/mup_4/spd_8/utc_keep/00_llama_h264_v9_1frag/v1/i.mp4 *this works much better

No MEHD table in a source init file https://refapp.hbbtv.org/livesim2/tsbd_240/mup_4/spd_8/utc_keep/00_llama_h264_v9_1frag/manifest_1080p_livesim.mpd https://refapp.hbbtv.org/livesim2/tsbd_240/mup_4/spd_8/utc_keep/00_llama_h264_v9_1frag/v1/i_livesim.mp4 *this gives mostly 505 error reply

Livesim2 does not write any meaninfull logging on random errors.

tobbee commented 5 months ago

Currently, you should remove the mehd box yourself, but I will add an automatic removal of it. It shouldn't be there in the output for a "live" source. It shouldn't have any influence on the actual segment generation, though.

In general, livesim2 has been tested with a limited set of inputs, and does not have a detailed log of problems arising. That may be an area where sponsoring further work would help.

There some starting discussions about a maintenance contract from DASH-IF, but it will be quite limited.

Murmur commented 5 months ago

you should remove the mehd box yourself. It shouldn't have any influence on the actual segment generation, though.

For some reason No MEHD table in a source init file never return an init segment and mpd 3/5 returns "convertToLive: unknown mpd name" error, see this url. https://refapp.hbbtv.org/livesim2/tsbd_240/mup_4/spd_8/utc_keep/00_llama_h264_v9_1frag/v1/i_livesim.mp4 https://refapp.hbbtv.org/livesim2/tsbd_240/mup_4/spd_8/utc_keep/00_llama_h264_v9_1frag/manifest_1080p_livesim.mpd

Same test Yes MEHD table in a source init file response is fine most of the time. Manifest works 2/5 requests. https://refapp.hbbtv.org/livesim2/tsbd_240/mup_4/spd_8/utc_keep/00_llama_h264_v9_1frag/v1/i.mp4 https://refapp.hbbtv.org/livesim2/tsbd_240/mup_4/spd_8/utc_keep/00_llama_h264_v9_1frag/manifest_1080p.mpd

Same error direct to an internal livesim2 port 2024-02-09 10:47:27 ERROR 500: Internal Server Error. Strange behaviour maybe some cornercase with the input segment files. wget "http://localhost:8889/livesim2/tsbd_240/mup_4/spd_8/utc_keep/00_llama_h264_v9_1frag/manifest_1080p_livesim.mpd" --save-headers -O -

This is a reason I raised a question about the MEHD atom as Livesim2 is not working as expected, only change is init file and m4s segments are the same. We run Dash-If-Livesim2: v1.1.1-7-ga6fba5f, date: 2024-01-30 the latest master branch.

Zipped folders from the livesim2 assets: https://refapp.hbbtv.org/videos/livesim2-00_llama_h264_v9.zip https://refapp.hbbtv.org/videos/livesim2-00_llama_h264_v9_1frag.zip

FYI, default assets also have MEHD table in an init segment. https://refapp.hbbtv.org/livesim2/tsbd_240/mup_4/spd_8/testpic_8s/V300/init.mp4

tobbee commented 4 months ago

It is probably some other issue in your case, since some of the livesim2 sources at https://livesim2.dashif.org have an "mehd" box and some not. testpic_2s/V300/init.mp4 does not have one, while testpic4_8s/V300/init.mp4 has.

I'll change the behaviour to always remove "mehd" boxes since that is the correct behavior for a live source.

tobbee commented 4 months ago

PR #158 removes the mehd box from the init segments published for live streams from livesim2.

tobbee commented 4 months ago

@Murmur

I tried to run your content and the the strange behavior is triggered by one your assets have a name that is just an extension of the other.

xxxx_v9/
xxxx_v9_1frag/

I couldn't play the other, but when I changed name of it to xxxx_v10/ it played nicely. Another way to make it to play is to remove the first one.

This looks like bug so I'll make a ticket, but until it is fixed you can change the name of the asset.

tobbee commented 4 months ago

@Murmur Now it is fixed and pushed to main branch.