Live data from Hacker News

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

nginx.com

31–40 of 58 posts

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

#31

Lots of people in here commenting about nginx plus, but can anyone recommend a free alternative to BITMOVIN?

video.js with the HLS plugin is fine if you don't need dash (there may be flash) but obviously that's very bare bones. It seems like there's things like ad support among other features you get with the suggested player.

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

#33
post #27

Earlier quoted context omitted.

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.

Try having it read from a fifo instead.

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

#34

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

Abusing WebRTC can be a viable option in latency-critical applications, but it brings a bunch of other concerns with it (browser support, no way to leverage a CDN, etc).

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

#35
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.

Currently to get the stream from ffmpeg into nginx you have to do the following: ffmpeg -re -i input_file -c copy -f flv rtmp://nginx_server_url:1935/app

It would be nice to have the ability to set up an app block that looked kind of like this

application source1 { exec fffmpeg -f decklink -i 'DeckLink Quad (1)@8' -f flv rtmp://localhost/app/$name }

ffmpeg is still pushing the stream to nginx, but nginx is in charge of starting that process.

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

#36

Lots of people in here commenting about nginx plus, but can anyone recommend a free alternative to BITMOVIN?

I had the same wonder and through some digging found videojs-contrib-dash[1] which uses dash.js, referenced on the bitmovin site[2]. I'm going to give this a go and see what does and doesn't work.

[1] https://github.com/videojs/videojs-contrib-dash

[2] https://bitmovin.com/mpeg-dash-open-source-player-tools/

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

#38
post #35

Earlier quoted context omitted.

> [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.

Currently to get the stream from ffmpeg into nginx you have to do the following: ffmpeg -re -i input_file -c copy -f flv rtmp://nginx_server_url:1935/app It would be nice to have the ability to set up an app block that looked kind of like this application source1 { exec fffmpeg -f decklink -i 'DeckLink Quad (1)@8' -f flv rtmp://localhost/app/$name } ffmpeg is still pushing the stream to nginx, but nginx is in charge…

I think you might be looking for the exec_pull (or exex_static) directive

https://github.com/arut/nginx-rtmp-module/wiki/Directives#ex...

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

#39
post #35

Earlier quoted context omitted.

> [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.

Currently to get the stream from ffmpeg into nginx you have to do the following: ffmpeg -re -i input_file -c copy -f flv rtmp://nginx_server_url:1935/app It would be nice to have the ability to set up an app block that looked kind of like this application source1 { exec fffmpeg -f decklink -i 'DeckLink Quad (1)@8' -f flv rtmp://localhost/app/$name } ffmpeg is still pushing the stream to nginx, but nginx is in charge…

Is there an advantage that an nginx process like that has over streaming servers like liquidsoap?

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

#40
post #35

Earlier quoted context omitted.

Currently to get the stream from ffmpeg into nginx you have to do the following: ffmpeg -re -i input_file -c copy -f flv rtmp://nginx_server_url:1935/app It would be nice to have the ability to set up an app block that looked kind of like this application source1 { exec fffmpeg -f decklink -i 'DeckLink Quad (1)@8' -f flv rtmp://localhost/app/$name } ffmpeg is still pushing the stream to nginx, but nginx is in charge…

I think you might be looking for the exec_pull (or exex_static) directive https://github.com/arut/nginx-rtmp-module/wiki/Directives#ex...

I've tried, and it doesn't work so well. I don't think it works for every OS either.
Post reply on HN