SRS(Simple RTMP Server) 是國人寫的一款非常優秀的開源流媒體服務器軟件,可用於直播/錄播/視頻客服等多種場景,其定位是運營級的互聯網直播服務器集羣。
一、安裝
官網提供了3種安裝方式: 從源碼編譯安裝、利用docker(學習用) 、直接下載安裝包安裝
相信很多人主要目的是出於學習srs如何使用,對c++語言本身可能並不擅長,所以本文僅介紹"如何利用安裝包"安裝部署。
先從官網下載最新的穩定發佈版本(目前是2.0r6) http://ossrs.net/srs.release/releases/files/SRS-CentOS6-x86_64-2.0.263.zip
然後將其上傳到centos服務器, 並解壓到指定目錄 ,執行下面的命令安裝:
sudo ./INSTALL
安裝成功後,會出現類似上圖的提示。
如果出現No package lsb_release available. 的錯誤提示(centos 7上容易出現這個錯誤),可嘗試先安裝 yum install -y redhat-lsb
tips: 如果要卸載,可執行以下命令(前提是先停止srs)
sudo rm -rf /usr/local/srs sudo rm -rf /etc/init.d/srs
二、啓動/停止
2.1 啓動
sudo /etc/init.d/srs start
2.2 停止
sudo /etc/init.d/srs stop
類似的,除了start/stop,還有其它選項,比如:reload|status
1 [~]$ /etc/init.d/srs 2 Usage: /etc/init.d/srs {start|stop|status|restart|reload}
三、推流測試
推流:即向流媒體服務器發佈視頻(支持本地文件或攝像頭做爲視頻源)
3.1 用FFmpeg推流
FFmpeg是一套可以用來記錄、轉換數字音頻、視頻,並能將其轉化爲流的開源軟件,利用它可以將本機視頻文件推到SRS上。從FFmpeg官網下載後,直接解壓到本機即可運行。
tips: srs源碼自帶了一個示例flv, 路徑爲 ./trunk/doc/source.200kbps.768x320.flv
推流命令(mac環境):
./ffmpeg -re -i source.200kbps.768x320.flv -vcodec copy -acodec copy -f flv -y rtmp://srs_server_ip:1935/live/livestream
注: 上述命令中的flv完整路徑,以及srs server ip,大家根據情況自行替換爲實際值。 另外:默認情況下srs的rtmp採用1935端口,如果該端口被佔用或修改了srs.conf中的端口,注意根據情況調整;防火牆如果開了,也要檢測下1935是否允許訪問。
./ffmpeg -re -i /Users/jimmy/code/srs/trunk/doc/source.200kbps.768x320.flv -vcodec copy -acodec copy -f flv -y rtmp://*.*.*.*:1935/live/livestream ffmpeg version 4.1.3-tessus https://evermeet.cx/ffmpeg/ Copyright (c) 2000-2019 the FFmpeg developers built with Apple LLVM version 10.0.1 (clang-1001.0.46.3) configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay libavutil 56. 22.100 / 56. 22.100 libavcodec 58. 35.100 / 58. 35.100 libavformat 58. 20.100 / 58. 20.100 libavdevice 58. 5.100 / 58. 5.100 libavfilter 7. 40.101 / 7. 40.101 libswscale 5. 3.100 / 5. 3.100 libswresample 3. 3.100 / 3. 3.100 libpostproc 55. 3.100 / 55. 3.100 Input #0, flv, from '/Users/jimmy/code/srs/trunk/doc/source.200kbps.768x320.flv': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf54.63.104 Duration: 00:03:30.73, start: 0.034000, bitrate: 251 kb/s Stream #0:0: Video: h264 (High), yuv420p(progressive), 768x320 [SAR 1:1 DAR 12:5], 212 kb/s, 25 fps, 25 tbr, 1k tbn, 50 tbc Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp, 30 kb/s Output #0, flv, to 'rtmp://10.2.72.62:1935/live/livestream': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf58.20.100 Stream #0:0: Video: h264 (High) ([7][0][0][0] / 0x0007), yuv420p(progressive), 768x320 [SAR 1:1 DAR 12:5], q=2-31, 212 kb/s, 25 fps, 25 tbr, 1k tbn, 1k tbc Stream #0:1: Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, 30 kb/s Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #0:1 -> #0:1 (copy) Press [q] to stop, [?] for help frame= 508 fps= 25 q=-1.0 size= 693kB time=00:00:20.24 bitrate= 280.4kbits/s speed= 1x
順利的話,會看到類似上面的輸出,表示正在向srs推送視頻流。
3.2 用obs採集攝像頭推流
FFmpeg的命令行方式不太友好,推薦使用主流的OBS開源推流軟件,可從官網https://obsproject.com/ 下載最新版本,目前很多網絡主播都是用它做直播。該軟件支持本地視頻文件以及攝像頭推流。
3.2.1 文件推流
先添加一個:“媒體源”
然後新建一個名稱(隨便輸入)
選擇本機視頻文件
接下來是關鍵的部分,進入設置:
在串流->服務器這裏,輸入srs的地址:rtmp://srs_server_ip:1935/live (注意這裏不要帶livestream), 然後在串流密鑰這裏,纔是輸入livestream
設置好以後,就可以點擊“開始推流”了。如果順利,下面的狀態欄,會顯示一些實時數據:
3.2.2 攝像頭推流
跟上面的其實差不多,區別只是添加“視頻捕捉設備”
然後選擇本機檢測到的攝像頭設備(比如:下圖爲mac筆記本自帶的FaceTime HD Camera)
接下來的操作就一樣了:
四、拉流測試
拉流:即從流媒體服務器讀取視頻流(說白了:就是播放)
推薦使用開源的VLC播放器 (當然其它任何支持網絡媒體源播放的player其實都行),File -> Open Network,輸入地址 rtmp://srs_server_ip:1935/live/livestream
順利的話,就可正常播放。