Резервное / автономное потоковое изображение с RTF-протоколом ffmpeg / nginx

1329
user419541

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

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

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

Благодарю.

0

1 ответ на вопрос

1
Dementei

Поместите это в свой <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(, 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 и автоматически переключается между введенным вами изображением и началом потока, и наоборот. Наслаждаться.

Похожие вопросы