開源流媒體服務器SRS學習筆記(1) - 安裝、推流、拉流

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

 

順利的話,就可正常播放。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章