今天我打算跟大家聊一点硬技巧,比如怎么使用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
当正在直播时:该命令会把直播视频流分段下载值本地并合并保存
当直播关闭或者中断:该命令会中断执行,输出视频out.mp4至你的当前用户的文件夹(/Users/bingmax/out.mp4),并提示HTTP error 404 Not Found
这样ffmpeg 监测系统就完成并且奏效了。当然将视频流推送到我们的流媒体服务器,也是可以直接观测视频流的状态,并且可以做实时的监控和调整。