Streaming HLS and DASH with NGINX | Verizon

Sdílet
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

Komentáře • 19

  • @ChengHeWu
    @ChengHeWu Před 3 lety +3

    Thank you a million times for providing this tutorial,it gives a clear big picture and solution for VOD

  • @MikeRudolph
    @MikeRudolph Před 7 lety +8

    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?

  • @ustoopia
    @ustoopia Před 6 lety +3

    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 :-)

    • @rjasim903
      @rjasim903 Před 5 lety +1

      can we restream ts with rtmp module or should we need ts module ?

    • @rjasim903
      @rjasim903 Před 5 lety +1

      @Firez may i know your email address ?

  • @marcusleandrorosasantos8366

    very good presentation!

  • @thet0ast3r
    @thet0ast3r Před rokem +1

    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.

  • @ovs_cosplay
    @ovs_cosplay Před rokem

    this is super informative, helped me understand so many things about the protocols. wish i have found this vide earlier.. absolutely incredible lecture !

  • @MattScottlyle
    @MattScottlyle Před 2 lety

    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?

  • @nirangashalutha4421
    @nirangashalutha4421 Před 3 lety

    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 ?

  • @talhakhan3
    @talhakhan3 Před 5 lety +1

    I am getting Connection to tcp refused error.
    Will You Please help me out in this??

  • @mothersmilk9019
    @mothersmilk9019 Před 6 lety +2

    anyone had some success implementing this approach? just getting started on a new little music streaming app. nice talk sir.

    • @hoelefouk
      @hoelefouk Před 5 lety

      hey, any luck on implementing this?

    • @ngtechil
      @ngtechil Před 4 lety +2

      ​@@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.

    • @omerufuk
      @omerufuk Před 4 lety

      @@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

  • @andraskovacs2451
    @andraskovacs2451 Před 2 lety

    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.

    • @decaturdev7127
      @decaturdev7127 Před 2 lety

      What do you mean? This is what enterprise live streaming does. Get a CDN.

  • @abdouspaindz5270
    @abdouspaindz5270 Před rokem

    Thanks