今天我打算跟大家聊一點硬技巧,比如怎么使用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 監測系統就完成並且奏效了。當然將視頻流推送到我們的流媒體服務器,也是可以直接觀測視頻流的狀態,並且可以做實時的監控和調整。