• Stars
    star
    125
  • Rank 286,335 (Top 6 %)
  • Language
    JavaScript
  • License
    GNU Affero Genera...
  • Created over 9 years ago
  • Updated over 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

NodeJS module for DASH streaming using GPAC

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