Как проверить, включена или выключена прямая трансляция RTMP


Я хочу проверить, включена или выключена прямая трансляция RTMP для микрофона.

Я использовал ДАМП RTMP

exec("/usr/bin/rtmpdump -V -v -r rtmp://www.exapmle.com/etc./13/mic1 -o /tmp/rtmp-checker.log 2>&1", $pp);

Я нашел этот трюк у http://blog.svnlabs.com/how-to-check-rtmp-source-stream-is-live-or-not/

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

So some time i am facing this type of error. any perfect solution for this.? ЕСЛИ у ВАС есть какое-либо другое решение, использующее FFMPEG ИЛИ ДРУГОЕ, то мы вам очень рады.

Author: ITit superpower, 2015-07-16

1 answers

Вы можете использовать ffprobe:

ffprobe -v quiet -print_format json -show_streams rtmp://example.com/stream

Вы получите код возврата 1 в случае сбоя команды или 0 и строку JSON, содержащую обнаруженные потоки при успешном выполнении:

{
    "index": 1,
    "codec_name": "aac",
    "codec_long_name": "AAC (Advanced Audio Coding)",
    "profile": "LC",
    "codec_type": "audio",
    ...
}

Это базовый тест, если вы хотите пойти дальше, вы можете загрузить несколько секунд потока, проверить его с помощью ffprobe, запустить silencedetect на нем и т.д.

 6
Author: aergistal, 2015-07-16 13:41:32