Streaming HLS and DASH with NGINX | Verizon
Vložit
- čas přidán 4. 10. 2016
- NGINX offers a number of streaming features through the RTMP module and NGINX Plus has additional modules. The RTMP module delivers streams over the RTMP protocol and can dynamically convert RTMP into HLS and MPEG-DASH in real time. NGINX Plus can stream HLS and HDS from .mp4 and .f4f files. However, a few missing features have kept streaming service providers from building their service on NGINX. For example, NGINX Plus can transmux to HLS and HDS but not VOD content to DASH. Also, in serving HLS segments NGINX Plus relies on URL query strings that include start= and end=, which makes the streams hard to scale to a larger audience through a CDN cache.
In this session, I'll show how to build a streaming server using open source NGINX with FFmpeg and GPAC's MP4Box, which can dynamically transmux .mp4 files to HLS and DASH. A FastCGI script and FFmpeg can dynamically generate a manifest file, and a FastCGI script with FFmpeg/GPAC can dynamically cut .mp4 files into smaller segments and repackage them for HLS and DASH upon request. - Věda a technologie
Thank you a million times for providing this tutorial,it gives a clear big picture and solution for VOD
If you're running ffmpeg / mp4box to generate your .ts chunks on an as-requested basis, how to you mitigate the impact on latency and buffering?
Also, if you're generating manifests based on the mp4 s locations how could you possibly follow standards from Apple around consistent segment length?
Very interesting video. Thanks for sharing.
I have a nginx +rtmp server running with hls and dash and even re-streaming. This all works great! I'm very happy with this setup.
FYI: In the latest release of ubuntu (18.04) you don't have to compile nginx yourself anymore. Only thing needed is to install the module is use "apt install libnginx-mod-rtmp". This can be done when the default nginx is already installed. But keep in mind that you dó have to edit some config files to actually use the rtmp module and set it up. Google is your friend here :-)
can we restream ts with rtmp module or should we need ts module ?
@Firez may i know your email address ?
very good presentation!
hello. can anyone help me. i cannot get the technique described in this talk to work. does anyone know if there is some source available, or did the commands change in the latest versions of ffmpeg? help would be greatly appreciated.
this is super informative, helped me understand so many things about the protocols. wish i have found this vide earlier.. absolutely incredible lecture !
Hello! I have a question regarding nginx rtmp - folders for hls & dash are created automatically, but If I start stream, no endpoints are created, why?
i have one question. if we are going to use preprackaging method for HLSVOD, then we can use any segment size to cut mp4 & create ts files. but when cutting mp4 files on request, we cant segmet by 10s segments due to i frame location. can someone explain this or i'm not getting this right ?
I am getting Connection to tcp refused error.
Will You Please help me out in this??
anyone had some success implementing this approach? just getting started on a new little music streaming app. nice talk sir.
hey, any luck on implementing this?
@@hoelefouk I have tried to implement some of the demo code and config as a Docker container.
-
There are some "technical" issues which the demo actually describes.
You can mount a "data" volume to the container and expirence/test diffrent formats issues.
I have seen this nice project: github.com/shimberger/gohls which has a more practical implementation.
@@ngtechil gohls also has many issues. Such as it uses so much CPU and voice is choppy. Do you know the best practice? Maybe all these are wrong the approach. What about this project? => github.com/kaltura/nginx-vod-module
I wonder what happens when you are having huge loads on your server(s). Seems like not very effective generating all segments on-the-fly.
What do you mean? This is what enterprise live streaming does. Get a CDN.
Thanks