Create a Live Stream with Nginx and FFmpeg using HLS RTMP and Docker Compose

Поделиться
HTML-код
  • Опубликовано: 14 дек 2024

Комментарии • 43

  • @mr_tpk
    @mr_tpk 6 месяцев назад +1

    Thank you for sharing this wonderful tutorial. With your guidance I was able to implement a live streaming app in Python. Thanks a lot dude. Keep up the good work.

  • @GMNNATBR
    @GMNNATBR 5 месяцев назад +1

    to change the video file to an RTMP camera input?

    • @WittCode
      @WittCode  4 месяца назад

      Sounds like a future video idea!

    • @hugo-abdou
      @hugo-abdou 3 месяца назад

      ​@@WittCode yes please wee nead to know how to stream directly from the webcam to server then to the viewers like Facebook lives or youtube

    • @xluzka
      @xluzka Месяц назад +1

      @@hugo-abdou Did u get it?

  • @mrmelo9510
    @mrmelo9510 22 дня назад

    How would you stream a "playlist" of MP4 files in a folder to play sequentially?

    • @WittCode
      @WittCode  20 дней назад

      There are a few ways! You could spin up an application server in Node, Python, etc. to handle the streams. Nginx also might have a library to play things sequentially

  • @shaun7611
    @shaun7611 Месяц назад

    Was this a re-upload? You mention flash, which doesn't work any more?

    • @WittCode
      @WittCode  Месяц назад

      No it wasn't. What did I say about flash? I can't remember

    • @shaun7611
      @shaun7611 Месяц назад

      @@WittCode hahaha ill watch again and time stamp it

    • @shaun7611
      @shaun7611 Месяц назад

      @@WittCode 7:38

    • @WittCode
      @WittCode  Месяц назад

      @@shaun7611 From what I recall flash is different from flash format. That flv is a format while you're thinking of Adobe flash?

  • @scratchguy5851
    @scratchguy5851 3 месяца назад +1

    Hello, I'm getting an error like this whenever I start. Is there any fix for this?
    ! ffmpeg Warning pull access denied for ffmpeg-i, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
    ! nginx Warning pull access denied for nginx-i, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

    • @WittCode
      @WittCode  3 месяца назад

      Looks like you're trying to pull an image called ffmpeg-i from an online repo. ffmpeg-i is what I called the image. The actual image is just called ffmpeg

    • @scratchguy5851
      @scratchguy5851 3 месяца назад

      @@WittCode Ok but I ran into another problem, it says The system cannot find the file specified.
      ffmpeg:
      image: ffmpeg
      container_name: ${FFMPEG_HOST}
      build:
      context: ./ffmpeg
      dockerfile: Dockerfile
      env_file: .env
      depends_on:
      - nginx

    • @WittCode
      @WittCode  3 месяца назад

      @@scratchguy5851 The issue is in the message. It can't find the file

    • @scratchguy5851
      @scratchguy5851 3 месяца назад

      @@WittCode Thank you sir, I reinstalled Docker and it fixed all the errors

    • @WittCode
      @WittCode  3 месяца назад +1

      @@scratchguy5851 Interesting! But hey if it works it works!

  • @shaun7611
    @shaun7611 Месяц назад

    is the nginx-proxy-manger in truenas scale the same on what you used?

    • @WittCode
      @WittCode  Месяц назад +1

      I'm not actually sure what truenas scale is? I just used the official docker nginx image

  • @matthewdraevich4214
    @matthewdraevich4214 3 месяца назад

    great tutorial.
    I do have a question if possible :)
    So, you stream the video file live. But how is it possible to stream live while allowing viewers to rewind? For example, RUclips offers the ability to watch a live stream from an earlier timestamp.
    As I can guess, it somehow related to your backend implementation rather than to NGINX configuration. So, an ingester will stream its video using RTMP, then our backend will assemble it to a video file and then forward the stream to NGINX/CDN over HLS/DASH?
    Hope the question is clear.

    • @WittCode
      @WittCode  3 месяца назад

      Yeah I think that could actually be implemented through the HTML Video element. You could use the currentTime attribute or something along those lines?

  • @terfy
    @terfy 2 месяца назад

    so.. this is a live stream.. what about if you just want to serve a youtube like service, on-demand videos ?.. and how many dockers should I create then ? one for each video ?

    • @WittCode
      @WittCode  2 месяца назад

      That's a fully loaded question! I wouldn't spin up a container per video though. You would just have multiple streams at once. You containerize each process not each video!

  • @danliciousxs4415
    @danliciousxs4415 3 месяца назад

    Hey, I wanted to ask how I can use an RTMP link as the input instead of a video file?

    • @WittCode
      @WittCode  3 месяца назад

      I don't know off the top of my head but I would suggest checking the ffmpeg docs. You probably just have to change the command to stream from a link as opposed to a file.

  • @vkeychaudhari
    @vkeychaudhari Месяц назад

    Can I stream a live screen share with sound?

  • @SunHouse-APTO61
    @SunHouse-APTO61 4 месяца назад

    Good video, do you have the repository with all the files you used?

    • @WittCode
      @WittCode  4 месяца назад

      hey there! yup my blog site in the description should contain everything!

  • @romeocaillon2506
    @romeocaillon2506 3 месяца назад

    Thank you for the video and the comprehensive blog. I've deployed this code on a vps server, but unfortunately I can't get it to work.
    I have
    The media could not be loaded, either because the server or network failed or because the format is not supported.
    Maybe someone else also had this error and managed to solve it.

    • @WittCode
      @WittCode  3 месяца назад

      Hey there thanks for watching! Are there any more logs than just that? Check the logs in each of the containers. Also what is the video format you are using?

  • @Ayoubz73
    @Ayoubz73 3 месяца назад

    now how can i host this live thats i want to stream the live in my host web site how can or is possible

    • @WittCode
      @WittCode  3 месяца назад

      That's the beauty of Docker! You can just get a cheap VPS, spin this up there, and change the locations to that server.

  • @thiagocosme242
    @thiagocosme242 6 месяцев назад

    Good job, i need code with python

  • @weekipi5813
    @weekipi5813 23 дня назад

    how is this a live streaming.. this is streaming a file, it's not a live streaming

    • @WittCode
      @WittCode  23 дня назад

      If you want to be that specific fair enough. If you want to real live streaming just change the input