NodeJS-based code to run a web server for serving MPEG-DASH content, in particular generated by MP4Box or DashCast. The server is capable of achieving low-latency streaming. More details in this paper. If you want to cite this work in academic context, please cite:
Bouzakaria, N.; Concolato, C.; Le Feuvre, J. "Overhead and performance of low latency live streaming using MPEG-DASH," IISA 2014, pp.92,97, 7-9 July 2014 doi: 10.1109/IISA.2014.6878732
Simple DASH Web Server with on-demand content
MP4Box -dash 1000 -profile live counter.mp4
node gpac-dash.js
MP4Client http://127.0.0.1:8000/counter_dash.mpd (also works with DASH.js)
Simple DASH Server with on-demand content (different content generation)
MP4Box -dash 1000 -profile live counter.mp4 -segment-marker eods
node gpac-dash.js
MP4Client http://127.0.0.1:8000/counter_dash.mpd (does not work with DASH.js, MEDIA_DECODE_ERR)
DASH Server with on-demand content sent using HTTP chunked transfer encoding
MP4Box -dash 1000 -profile live counter.mp4 -segment-marker eods
node gpac-dash.js -segment-marker eods -chunk-media-segments
MP4Client http://127.0.0.1:8000/counter_dash.mpd (does not work with DASH.js)
Simple DASH Server with pseudo-live content
MP4Box -dash-live 1000 -frag 1000 -profile live -subdur 1000 -mpd-refresh 1000 -time-shift 3000 counter.mp4
node gpac-dash.js
MP4Client http://127.0.0.1:8000/counter_dash.mpd (does not work with DASH.js, wrong fetch time)
Low-latency DASH Server with live content
DashCast -vf dshow -vres 640x480 -vfr 30 -v video="Integrated Webcam" -live -low-delay -frag 200 -insert-utc -seg-marker eods -min-buffer 0.2 -ast-offset -800 -pixf yuv420p
node gpac-dash.js -segment-marker eods -chunk-media-segments
MP4Client http://127.0.0.1:8000/output/dashcast.mpd -opt Network:BufferLength=200 -opt DASH:LowLatency=chunk -opt DASH:UseServerUTC=no