如何检查 RTMP 直播流是打开还是关闭

How to Check RTMP Live stream is on or off

我想检查 RTMP 实时流是打开还是关闭麦克风。

我用过RTMP DUMP

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/

但我对结果并不满意,因为它并不总是有效,结果生成了一个随机字符串。

![所以有一段时间我遇到了这种类型的错误。有什么完美的解决方案吗?][1] [1]: http://i.stack.imgur.com/ZrTco.png

我正在寻找 ffmpeg 或其他解决方案。

您可以使用 ffprobe:

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

如果命令失败,您将获得一个 return 代码 1,或者 0 和一个 JSON 包含成功时检测到的流的字符串:

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

这是一个基本测试,如果你想更进一步,你可以下载几秒钟的流,用 ffprobe、运行 silencedetect 验证它等等