Dash-Industry-Forum / livesim2

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

Generate n periods per hour #36

Closed tobbee closed 1 year ago

Murmur commented 1 year ago

Do Livesim2 multiperiod supports a fractional segment durations?

We run vod2live multiperiod test content using this content encoding. main(llama)=3.84s segments, adverts=2s segments NoDrm https://refapp.hbbtv.org/videos/multiperiod_v8.php?drm=0&advert=1&emsg=0&video=v1,v2,v3&audiolang=eng,fin&sublang=eng,fin,swe&mup=2&spd=8

Playready https://refapp.hbbtv.org/videos/multiperiod_v8.php?drm=pr,cenc&advert=1&emsg=0&video=v1,v2,v3&audiolang=eng,fin&sublang=eng,fin,swe&mup=2&spd=8 laurl: https://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(kid:header,sl:2000,persist:false,contentkey:EjQSNBI0EjQSNBI0EjQSNg==)

ps: our php script does vod2live infinite loop using SegmentTemplate@startNumber, @presentationTimeOffset manipulation, we do not modify m4s atom sequenceNumber, presentationTime fields in a segment files.

tobbee commented 1 year ago

Livesim2 supports segment durations with millisecond accuracy, so 3.84s should be fine. There is currently a limit that audio and video must have the same duration in average. There is currently no test-asset with fractional duration, but I should add some.

Regarding multi-period, currently it is just one asset split into multiple periods. In a later phase, I'm thinking about adding possibility to switch between content. Whether that will be included in the DASH-IF sponsored interval up to October depends on DASH-IF priorities and voting done in the biweekly meetings. I think that encrypted test content will have higher priority, but once we have that, it is important to switch between encrypted and clear content. There is some HbbTV interest in livesim2 development, and especially in stand-alone testing, according to Jon Piesing, so if HbbTV wants to sponsor further development after October it would be great.

Your Vod2Live using only manifest manipulation is a more common way than what livesim is doing. I think that is good for most applications, but it will not look like the output from a live encoder, and will restart with zero-valued or other VoD timestamps after each ad break.

I've made the basis for an Agile Convent Vod2Live product that does produce a live stream with ads and other content using segment manipulation. It is configurable to make segments out of GoPs from different sources without re-encoding. Documentation is available at https://docs.agilecontent.com/docs/acp/esb3019/

Murmur commented 1 year ago

True we use manifest manipulation only approach, no need to invent yet-another-dashlivesim to manipulate segments as well :-) We also have test content using a DashLivesim1 but only for very limited scenarios (simple live 24h7d main content only, single period). We will soon switch to DashLivesim2 on those limited scenario test contents.

Multiperiod livesim2 streaming is something I follow closely. Our multiperiod script is using this kind of configuration, video+audio+subtitle tracks, drm specs and periods array to set main+advert sequence. https://refapp.hbbtv.org/videos/multiperiod_00llama_h264.json

Also we test <EventStream> mpd and inband emsg messages in a test content, content providers use it more and more for progress logging (start, 1/3, end) along with advert multiperiods.