Skip to content

dima1034/node-gpac-dash

 
 

Repository files navigation

DASH Low Latency Web Server

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

The server has been also used in the following publication: J. Le Feuvre, C. Concolato, N. Bouzakaria and V. T. Nguyen, "MPEG-DASH for Low Latency and Hybrid Streaming Services", ACM MM, Brisbane, Australia, October 2015 PDF [DOI 10.1145/2733373.2807977 ]. Usages

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

About

NodeJS module for DASH streaming using GPAC

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 96.5%
  • Shell 3.5%