工具使用:利用SRS和FFmpeg搭建流媒体直播和点播系统
問題背景:
最近解決一些攝像頭上云問題,由于自研播放器有時存在一些播放問題,按照音視頻常見問題分析和解決:延時和抖動這篇文章說的定位問題思路,我決定搭建一些RTMP流媒體服務器,供測試用標準播放器如VLC交叉驗證。之所以存在這么多奇怪的問題,是因為接上來的攝像頭或者平臺總是存在一些私有碼流或者碼流格式不規范導致。下面簡單說下RTMP服務器搭建和測試方法,包括FMS和SRS在win和linux下的搭建方法。
說明問題前,看下業務大概的基本模塊的部署情況。其次工具和軟件已經上傳我的git,自行獲取即:
說明:
Linux搭建SRS:
SRS是國內著名的開源項目,提供了豐富的方案將媒體流接入到SRS服務器,同時支持各種協議和封裝格式的轉換,GIT地址:https://github.com/ossrs/srs,部署和使用起來很簡單:
**步驟:
1 . 安裝SRS服務器:**
實際我采用了編譯源碼的方式安裝,只需要下面幾條命令即可,其它很多功能沒有啟用,SRS現在性能功能還是比較強大的流媒體服務器,不過只支持linux部署。
A. git下載源碼命令是:
git clone https://github.com/ossrs/srs.git
B. 如果上傳了Zip包解壓即可,然后放到/usr/local/srs目錄下即可;
C. 進入trunk目錄,執行:
./configure && make
其中支持開啟的功能可以用./configure -h查詢
D. 編譯和安裝,有時需要一些依賴第三方也需要安裝:
make
make install
E. 拉起程序命令:
./objs/srs -c conf/srs.conf
F. 檢查程序和端口
ps -ef|grep srs 和netstat -ano|grep 1935
2. 攝像頭推流:
這里推流沒有利用FFMpeg進行推流,而用我們GB接入網關拉取了攝像頭的視頻流直接推上來的,本質就是攝像頭從局域網注冊上來,然后通過SIP請求視頻,攝像頭通過RTP協議推送視頻國標網關,對這部分內容感興趣的可以留言交流,比較熟悉。
3. VLC驗證和測試:
4. Video Player進行驗證播放:
Windows搭建FMS:
FMS其實是Adobe的RTMP流媒體服務器,我在本地Windosw搭建了一個,用FFmpeg推流到該服務器,然后用VLC和它們提供的Video Palyer打開進行驗證下:
步驟:
1. 安裝FMS:
直接一步步安裝即可,安裝過程注意好端口號1935的填寫和用戶名即可,如果和本地端口沖突要在安裝換個其它端口號,安裝成功示意圖即瀏覽器自動彈出播放視頻網頁說明安裝成功,有問題查看下進程和起的1935端口有沒有監聽即可:
貢獻幾個免費安裝序列號:
Flash Media Server 3.5(FMS) 序列號1374-5568-0192-3684-3402-70241374-5232-8277-3901-0946-6727
2. FFmpeg推流:
本地準備一段FLV或者MP4文件,用FFmpeg轉封裝然后直接向該FMS服務器1935端口推流即可:
A. 準備一段推流文件avier1_avc_aac.mp4,利用FFmpeg推流:
B. 推流命令就是:
ffmpeg.exe -re -stream_loop -1 -i avier1_avc_aac.mp4 -acodec aac -f flv rtmp://127.0.0.1:1935/live/1
其中這段命令就是把本文件轉封裝為FLV文件,再循環推流到本地的FMS1935端口上
3.用開源的標準播放器進行驗證:
A.用推流URL拉流驗證,其中用VLC進行了驗證
B.用推流URL拉流驗證,其中用Video Player都進行了驗證
總結:
通過在Win本地和公網Linux部署FMS和SRS就可以搭建一個點播&直播系統,對排查一些碼流或者播放問題非常有幫助,現在這種現成工具非常多,使用起來也方便,后面這個系列還會繼續介紹其它開源項目和工具。
參考項目和網址:
https://github.com/ty6815
https://github.com/ossrs/srs
https://www.jianshu.com/p/ce57f108fdaa
https://blog.csdn.net/u014359108/article/details/53114333
總結
以上是生活随笔為你收集整理的工具使用:利用SRS和FFmpeg搭建流媒体直播和点播系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8款免费企业邮箱
- 下一篇: 【STM32学习】(22)STM32实现