Imagem de fluxo em espera / offline com ffmpeg / nginx RTMP

0

Existe uma maneira de rotear o NGINX RTMP para mostrar um vídeo off-line / standby ou imagem estática quando não houver fluxos de entrada para retransmitir?

A idéia é que quando não houver fluxos RTMP de entrada (ffmpeg, software de transmissão aberto, outro software de streaming) ativamente streaming de conteúdo, eu gostaria que o NGINX mostrasse uma imagem ou vídeo standby / offline para as visualizações conectadas. E quando um usuário iniciar o streaming, o NGINX removerá o vídeo / imagem em espera e iniciará a retransmissão da mídia em fluxo para os clientes conectados.

O módulo RTMP tem esse suporte embutido? Se não é possível para alguns como usar o sistema de eventos para iniciar / parar uma instância ffmpeg local para transmitir o standby e matá-lo quando um fluxo real for iniciado?

Obrigado.

    
por user419541 03.01.2016 / 23:44

1 resposta

1

Coloque isso na sua seção <head> de onde você está hospedando seu player:

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

Emseguida,coloqueissonoseu<body>

<divid="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>

Este é o meu roteiro pessoal para o meu fluxo que um amigo fez para mim. Isso usa o reprodutor Clappr e alternará automaticamente entre a imagem que você digita e o início do fluxo e vice-versa. Aproveite.

    
por 05.02.2016 / 09:58