Есть ли способ сценария NGINX RTMP для отображения автономного / резервного видео или статического изображения, когда нет входящих потоков для повторной трансляции?

Идея заключается в том, что, когда нет входящих потоков RTMP (ffmpeg, открытого программного обеспечения для трансляции, другого программного обеспечения для потоковой передачи), активно транслирующих контент, я бы хотел, чтобы NGINX показывал резервное / автономное видео или изображение для подключенных представлений. И затем, когда пользователь начинает потоковую передачу, NGINX удалит резервное видео / изображение и начнет ретрансляцию потокового мультимедиа на подключенные клиенты.

Есть ли встроенная поддержка в модуле RTMP? Если нет, то возможно ли как-то использовать систему событий для запуска / остановки локального экземпляра ffmpeg для потоковой передачи в режиме ожидания и для его уничтожения при запуске реального потока?

Благодарю.

1 ответ1

1

Поместите это в раздел <head> где вы размещаете свой плеер:

<script type="text/javascript" src="http://cdn.clappr.io/latest/clappr.min.js"></script> 

Затем поместите это в свой <body>

<div id="player" style="float: left; width: 75%; height: 85vh;">
<script>

var targetPlayerElement = "#player"; //player element that it spawns on
var offlineImage = "INSERT IMG URL HERE"; //offline image
var streamURL = "http://YOUR IP HERE/live/";
checkLive();
var isLive = false;
function checkLive() {
    var player;
    console.log("Checking stream status...");
    $.ajax({

      url: streamURL, //stream url
      success: function(data){
        if(!isLive)
        {
            $(targetPlayerElement).empty();
            isLive = true;
            player = new Clappr.Player({source: streamURL, parentId: targetPlayerElement, autoPlay: "true", width: "100%", height: "100%", maxBufferLength: 3, mediacontrol: {seekbar: "#7a17ff", buttons: "#ff1a68"}, actualLiveTime: true, playbackNotSupportedMessage: 'Please try on a different browser', useHardwareVideoDecoder: false,});
            console.log("Stream is running; creating player");

        }
      },
      error: function(data){
        if(isLive)
        {
            isLive = false;
            $(targetPlayerElement).empty();
            $(targetPlayerElement).html("<img src='"+ offlineImage + "'alt='offline' width='100%' height='100%'/>");
        }
        if(!isLive)
            $(targetPlayerElement).html("<img src='"+ offlineImage + "'alt='offline' width='100%' height='100%'/>");
      },
    })
    setTimeout(checkLive, 5000);
}
</script>
</div>

Это мой личный сценарий для моей трансляции, созданный для меня другом. Он использует проигрыватель Clappr и автоматически переключается между введенным вами изображением и началом потока, и наоборот. Наслаждаться.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .