livesim-content

February 16, 2024 ยท View on GitHub

This repo contains test content used by the DASH-IF online service livesim2.

For easy download, a mixed storage format is used where each representation directory with hundreds of files is made into an archive (in zip format) while top-level files are kept separated.

This allows for simple changes to the MPDs, while making the downloads more efficient. Since github has a file size limit of 100MB, git-lfs is used.

There are also metadata files for each representation to allow for boosted startup of livesim2, like testpic_2s/V300_data.json.gz. By reading these files, livesim2 has the knowledge about the duration of each segment and does not need to scan all the segments at startup. These reduces the startup time for livesim2 when run with all the content of this repo substantially goint from minutes to seconds.

The repdata files are generated by running livesim2 with the option --writerepdata.

Download assets

To download the assets, you need git-lfs installed.

On Linux, use your package manager to install it like:

> apt install git-lfs

On Mac, you can analogously run

> brew install git-lfs

After that, it should be fine to run

> git clone VoD source for DASH-IF livesim2.git

Unpacking the content

You finally need to unpack the content.

ALl content can be unzipped using the top-level command

> unpack_all.sh

that iterates through the directories and unzips all zip files.

You can also unpack a single asset like testpic_2s using

> cd testpic_2s
> ../tools/unpack.sh

to unpack all the zip-files. If you want to remove the .zip files, run tools/unpack_and_clean.sh instead.

You can remove the zip-files, but it may be good to keep them so that an update via git only downloads new assets. After a git update, check if any zip-file has been updated and run the unpack tool on that specific directory.

The asset should now be in a format that can be read and processed by livesim2, provided that it is in a subdirectory under --vodroot.

Assets

The assets available are:

testpic_2s

A 1-hour long asset with 2s segments with 30fps video and many subtitle options.

The MPDs that can be played live are:

NameSpecificslivesim2 status
Manifest.mpdbase simple MPD using SegmentTemplate with $Number$OK
Manifest_avc3.mpdsame as Manifest.mpd but with avc3 codec signalingBad (init_avc3.mp4 missing)
Manifest_dvb.mpdsame as Manifest.mpd, but adding DVB profilesOK
Manifest_stpp.mpdManifest.mpd extended with stpp subtitlesOK
Manifest_thumbs.mpdManifest.mpd extended with DASH-IF image subtitle trackOK
Manifest_trickmode.mpdManifest.mpd extended with DASH trick mode trackOK
audio.mpdaudio onlyOK
cea608.mpdvideo includes two CEA-608 caption tracksOK
cea608_and_segs.mpdsame as cea608.mpd extended with stpp subtitle trackOK
multi_subs.mpdManifest.mpd extended with 5 subtitle and caption tracks in stpp formatOK
stpp_one_region.mpdManifest.mpd extended with S1_one_region stpp subtitlesOK
stpp_two_regions.mpdManifest.mpd extended with S1_two_regions stpp subtitlesOK
stpp_two_regions_multi_color.mpdManifest.mpd extended with S1_two_regions_multi_colors stpp subtitlesOK

In addition, there is a couple of MPDs that can only be played as VoD because of side-loaded subtitle files or too short subtitle track.

NameSpecificslivesim2 status
img_subs.mpdManifest.mpd extended with image subtitles in side-loaded TTML format (not supported by livesim)N/A
ttml_subs.mpdManifest.mpd extended with side-loaded TTML files (1h) (not supported by livesim)N/A
imsc1_img.mpdManifest.mpd with properly signaled IMSC-1 stpp image subtitles. Only one minuteDoes not play

testpic_6s

A 1-hour long asset with 6s segments with 30fps video and two audio tracks.

The MPDs are:

NameSpecificslivesim2 status
Manifest.mpdbase simple MPD using SegmentTemplate with $Number$OK
multiaudio.mpdsame as Manifest.mpd but with two audio tracks (the second is a copy of the first via a symbolic link)OK
mixeddur.mpdcombination of 6s audio segments with 2s video segments (the latter from testpic_2s)OK

testpic4_8s

A 1-hour long asset with 8s segments with 30fps video at three bitrates (300kbps, 600kbps, and 1200kbps) and MPDs that contain different subsets.

The MPDs are:

NameSpecificslivesim2 status
Manifest.mpdbase simple MPD using SegmentTemplate with $Number$ and all bitratesOK
Manifest_300.mpdsame as Manifest.mpd but limited to 300kbps videoOK
Manifest_600.mpdsame as Manifest.mpd but limited to 300kbps and 600kbs videoOK