I asked for some help in r/nginx, but I haven’t received any responses in 3 months, so I don’t think asking a new related question will help… (Related, but not: https://www.reddit.com/r/nginx/comments/15ri9cy/rtmp_server_push_to_application_vlc_fails_to_load/?rdt=40507)

I’ve tried using something like this to switch inputs for my stream, but it failed (https://github.com/nxtreaming/nginx-rtmp-switch/blob/master/nginx_example.conf) Could this be related to above, since I only tested with VLC?

Now that I went a little off in different directions, let me explain what I really envision. I built and self-host a streaming service for our church out of need during the pandemic. The board did not want to use YouTube or any other public service. Building it was a learning curve, and we continue to use it since it’s proven to be very useful for remote members and costs us nothing to run now that it exists. However, I’d like to expand it.

This is what we currently have:

  • OBS
  • nginx RTMP Server
  • Owncast
  • nginx Web server
  • Custom PHP

We have viewers using VLC and Owncast, but some older links use a custom made site that uses HLS. This can be changed, NP. Nginx records the broadcast to .flv and I have scripts that auto-edit silence out of the file, and convert to MP4 for later viewing from archive, with a little front-end calendar, etc.

What we want to add on is this:

  • Schedule re-broadcasting of services for people in different time zones or those who missed the first one.
    • Some viewers cannot figure out how to browse recordings and play it on their own. They’re 90+ y/o, so we need to accommodate, not educate.
  • The re-broadcast should not be recorded again, so using a switch input like the link above would likely be needed.
  • It would be nice to have SOMETHING on the stream viewable 24/7, like:
    • Play music, shuffled in random
    • Show the schedule of when we’ll be live (with a countdown)
    • Re-broadcasted services
  • Having something always broadcasted would help eliminate the “I can’t connect” phone calls as well as the “Are you broadcasting tonight?” questions.
  • VLC RTMP viewing offers the lowest latency, so we’d like to continue offering this, especially for local people.
  • I’d like to consider using r/kodi as a front end for viewing live and VOD of pre-recorded content. I have this for myself, but it seems clumsier than it should be for the average age of our viewer.

Essentially, I want it to act a bit like a mini TV station, following a schedule for programs, advertise the next broadcast, etc. It will be 100% our own content as it is now. I will script the scheduling, picking of pre-recorded content to play, etc (unless someone knows of open source software that does this)… I believe I only need help with the nginx configuration but I’m open to comments on the overall design.

Any thoughts on this? Thank you!

  • kmisterk@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    I would like to help, but I’m largely unfamiliar with the media components of nginx, but I commend your efforts. It’s very cool to come to an understanding with what you’ve already created on this. Super cool.

    Good luck on your expansion needs!

  • ProfessionalAd3026@alien.topB
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 year ago

    I had a similar setup initially due to the same reasons. I only used HLS-based playback. I would chop the files locally and upload them to our web server. I learned the hard way that Android mobile devices are a nightmare to support. Some had simply no sound. Significantly, older people would not care if a device is still supported. Some simply wouldn’t load the sound. Eventually, we moved to YouTube.

    The solution we kept, though, is something you might want to consider. We have our lifestream on an internal web page. If it’s close to the actual service, we have a countdown and lifestream. Once the lifestream is done, the same page switches to VOD. If you didn’t make it to the real lifestream, why do you need to be on time for the re-stream?