srs搭建直播服務器

1.安裝srs

git clone https://github.com/ossrs/srs.git
cd srs/trunk
./configure && make

2.開啓srs服務

./objs/srs -c conf/srs.conf

3.安裝ffmpeg

官網:http://ffmpeg.org/download.html
windows:下載解壓後即可用(可根據需要配置環境變量)
linux:下載源碼編譯安裝

4.ffmpeg推流

  • 查看設備:
ffmpeg -list_devices true -f dshow -i dummy 
  • 推本地視頻文件:
ffmpeg  -re  -i F:/project/liu_zi_qi/liu_zi_qi.mp4 -c copy -f flv rtmp://39.106.207.193/live/cc
  • 推攝像頭捕獲的視頻流:
ffmpeg  -f dshow -i video="Integrated Webcam" -q 4 -s 640*480 -aspect 4:3 -r 10 -vcodec flv -ar 22050 -ab 64k -ac 1 -acodec libmp3lame -threads 4 -f flv rtmp://39.106.207.193/live/cc
  • 參數:
    (1).-f fmt (input/output)
    強制指定輸入或輸出的文件格式。輸入文件的格式通常是自動檢測的,輸出文件的格式由該文件的擴展名猜測,所以在大多數情況下不需要此選項。

    (2).-c[:stream_specifier] codec (input/output,per-stream)
    -codec[:stream_specifier] codec (input/output,per-stream)
    用於對一個或多個數據流指定一個編碼器(一個輸出文件之前使用時)或一個解碼器(一個輸入文件之前使用時)。 codec是一個解碼器/編碼器的名稱或特殊值copy (僅輸出),copy表示該流不是被重新編碼。

    (3).-r[:stream_specifier] fps (input/output,per-stream)
    設置幀速率(Hz值,分數或縮寫)。
    作爲輸入選項,忽略存儲在文件中的任何時間戳,而是產生時間戳假設恆定的幀速率fps這與一些輸入格式,諸如image2或者v4l2,中的-framerate選項是不同的(在老版本的ffmpeg中是一樣的)。如有疑問,使用的輸入選項-framerate代替-r。
    作爲輸出選項,複製或刪除輸入幀以達到恆定的輸出幀速率fps。

    (4).-s[:stream_specifier] size (input/output,per-stream)
    設置幀尺寸。
    作爲輸入的選項,這是私有選項video_size的快捷方式,部分分流器可以識別該參數,這時幀大小或者未存儲在文件中或不可配置,例如原始視頻或視頻採集卡。
    作爲輸出的選擇,這將插入scale視頻濾鏡到相應濾鏡組的末端 。如需改變濾鏡位置,請將scale濾鏡直接插入到開頭或其他地方。
    格式是wxh(默認值是使用與源相同的尺寸)。

    (5).-aspect[:stream_specifier] aspect (output,per-stream)
    設置指定視頻顯示的寬高比aspect。
    aspect可以是一個浮點數,或使用形如 num: den 的形式,其中num是分子,den是分母。例如,“4:3”,“16:9”,“1.3333”,和“1.7777”都是有效的參數值。
    如果與-vcodec copy一起使用,這會影響儲存在容器級別的寬高比,而不是存儲在編碼幀的寬高比,如果有的話。

    (6).-q[:stream_specifier] q (output,per-stream) -qscale[:stream_specifier] q (output,per-stream)
    使用固定編碼率(VBR)。q/qscale的意思與編解碼器定義相關。如果qscale不與stream_specifier聯用,那麼它僅適用於視頻流,這是爲了保持兼容性。另外將相同的編碼器參數賦給兩個不同的編解碼器通常並不是用戶想要的,因此若需要這樣的功能,可以使用流標識符(stream_specifier)來指定。

    (7).-i filename (input)
    輸入的文件名

    (8).-ar[:stream_specifier] freq (input/output,per-stream)
    設置音頻採樣頻率。對於輸出流,將默認設置爲相應的輸入流的採樣頻率。對於輸入流該選項僅對音頻抓取設備和raw格式分流器和映射到相應分流器上的選項有效。

    (9).-ac[:stream_specifier] channels (input/output,per-stream)
    設置音頻通道的數目。輸出流默認將設置爲輸入音頻信道的數目。對於輸入流該選項僅對音頻抓取設備和raw格式分流器和映射到相應分流器上的選項有效。

5.安裝vlc(取流)

官網:https://www.videolan.org/vlc/
支持:windows,MacOS,Android,IOS,Linux

下載安裝打開:媒體->打開網絡串流->輸入:rtmp://39.106.207.193/live/cc(推流地址)

6.測試

使用PC向srs服務器推流(ffmpeg)
用手機從srs服務器取流(vlc播放器)

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