Live data from Hacker News

Scalable Live Video Streaming Using NGINX and MPEG-DASH/HLS

nginx.com

21–30 of 58 posts

Re: Scalable Live Video Streaming Using NGINX and MPEG-DASH/HLS

#21
post #19

The one thing I've always wanted from nginx-rtmp was the ability to pull from a source input instead of running a separate process with ffmpeg to push the stream over. If they could get that working my life would become less complicated quickly.

yeah I use nginx-rtmp for local video capturing (basically the functionality of a mirror) and the lag that needing to re-encode + chunk + starting off at the beginning of the chunks in the playlist introduces is meh. I think I'm going to transition my project over to WebRTC though, since the mobile device I'm using to display the video can handle that now.

Re: Scalable Live Video Streaming Using NGINX and MPEG-DASH/HLS

#24
post #3

The setup seems rather similar to https://github.com/arut/nginx-rtmp-module which I've used in the past. Perhaps they've bundled it with Nginx Plus without crediting the original authors? The project has a bit too permissive license for my taste.

Roman Arutyunyan is (or was previously) an engineer at nginx when he developed nginx-rtmp. https://www.youtube.com/watch?v=1boJWioxsWc

I work at Nginx, although not on the core development team, and to the best of my knowledge Roman Arutyunyan is still an engineer with us.

Re: Scalable Live Video Streaming Using NGINX and MPEG-DASH/HLS

#25
post #14

I wish there was a decent HTML5 low latency (< 2s) solution. Nothing comes close to RTMP + Flash still.

The scalability of DASH/HLS comes from the fact that the video segments are just static files sitting on a http server so they can be cached and distributed with the many techniques for serving static files over http. If you don't need the scalability of DASH/HLS you can use the WebRTC apis for low latency streaming, usually [1] https://janus.conf.meetecho.com/

Yer I've looked into WebRTC before but the browser support isn't good enough yet :(

Re: Scalable Live Video Streaming Using NGINX and MPEG-DASH/HLS

#26
Using Representations[1] in MPEG-DASH is a more native way within the manifest to scale the quality / bandwidth requirements. There is some preliminary work and an issue open on one of the module forks which seems to get a little more tlc (imho) - https://github.com/sergey-dryabzhinsky/nginx-rtmp-module/iss...

[1] https://www.brendanlong.com/the-structure-of-an-mpeg-dash-mp...

Re: Scalable Live Video Streaming Using NGINX and MPEG-DASH/HLS

#27
post #12

Is there a way to mux subtitles written on the fly? For example, I want to mux a subtitle stream, with the real time clock in it, into a video stream.

ffmpeg can do that fairly easily. To adjust the command in the example, you need to to take the srt file and pass it as a second -i input file. There's some helpful guides on how to do that if you search around. e.g. https://en.wikibooks.org/wiki/FFMPEG_An_Intermediate_Guide/s...

But I don't have a subtitles file. I would need it to read from a stream, not a static file.

Re: Scalable Live Video Streaming Using NGINX and MPEG-DASH/HLS

#28
post #3

The setup seems rather similar to https://github.com/arut/nginx-rtmp-module which I've used in the past. Perhaps they've bundled it with Nginx Plus without crediting the original authors? The project has a bit too permissive license for my taste.

But the nginx-rtmp-module does not support DASH with ABR to the best of my knowledge. Seems to be still an open issue https://github.com/arut/nginx-rtmp-module/issues/480

Re: Scalable Live Video Streaming Using NGINX and MPEG-DASH/HLS

#30
post #19

The one thing I've always wanted from nginx-rtmp was the ability to pull from a source input instead of running a separate process with ffmpeg to push the stream over. If they could get that working my life would become less complicated quickly.

> [I'd prefer] the ability to pull from a source input instead of running a separate process with ffmpeg to push the stream over.

Could you elaborate on this? I don't understand what you mean by 'push' and 'pull' in this context.

Post reply on HN