Как проверить, включена или выключена прямая трансляция 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/
Но я не удовлетворен результатом, потому что некоторое время он не работает и генерирует случайную строку в качестве результата.
ЕСЛИ у ВАС есть какое-либо другое решение, использующее FFMPEG ИЛИ ДРУГОЕ, то мы вам очень рады.
3
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