今天我打算跟大家聊一点硬技巧,比如怎么使用ffmpeg监测.m3u8直播视频流的状态。现在就来举个例子,已知一个http://xxxxxx.m3u8的直播视频流,需要通过使用ffmpeg监测该直播视频流现在的状态,我们该如何实现呢?

1.安装ffmpeg

这里拿IOS的系统举例子,在mac上安装ffmpeg使用Homebrew,打开终端输入命令:brew install ffmpeg,安装的是最新版本v3.3.2。(在Linux上可以使用yum或者apt-get进行安装)

2.使用ffmpeg命令监测当前直播视频流的状态

通过使用ffmpeg命令将直播视频流实时保存至本地,从而可以监测到当前直播视频流的状态。在终端运行

ffmpeg -i http://xxxxxx.m3u8 -c copy out.mp4

-i 设定输入流

-c 设置编码器。当为copy指复制当前视频的编码流

当没有直播视频流时,检测系统会显示HTTP error 404 Not Found

310.jpg

当正在直播时:该命令会把直播视频流分段下载值本地并合并保存

311.jpg

当直播关闭或者中断:该命令会中断执行,输出视频out.mp4至你的当前用户的文件夹(/Users/bingmax/out.mp4),并提示HTTP error 404 Not Found

312.jpg

这样ffmpeg 监测系统就完成并且奏效了。当然将视频流推送到我们的流媒体服务器,也是可以直接观测视频流的状态,并且可以做实时的监控和调整。

NVR9.png


EasyNVR
151 声望12 粉丝

EasyNVR实现无插件跨平台web监控,支持PC端/安卓/IOS等主流终端。打开网页就可观看,支持手机扫码观看。