SRS是一個挺好用的開源直播服務器,源碼位於https://github.com/ossrs/srs 文檔比較全,個人在實際使用中還是有一些小問題。在這記錄一下。
一、編譯
git clone https://github.com/ossrs/srs
cd srs/trunk
--jobs=16指示用16個進程進行make,加快速度,因爲我的服務器是32核的。
./configure --rtmp-hls --with-ffmpeg --with-http-api --jobs=16
在編譯過程中編譯ffmpeg出錯, trunk/auto/build_ffmpeg.sh文件是編譯ffmpeg時用的腳本,直接修改此腳本中./configure後面的參數,把enable_asm 刪除掉。
1.編譯 x264錯誤,報不支持asm
將x264的./configure 參數添加--disable-asm
2.編譯ffmpeg時找不到libspeex,明明有這個庫的,但是找不到
把ffmpeg的 ./configure 參數--enable-libspeex 刪除掉。
二、推流
官方給的腳本是這個:
意思是播放 ./doc/ljg-39.mp4文件, 推送到 rtmp://test.abc.com/live/livestream
#!/bin/bash
for((;;)); do \
./objs/ffmpeg/bin/ffmpeg -re -i ./doc/ljg-39.mp4 \
-vcodec copy -acodec copy \
-f flv -y rtmp://test.abc.com/live/livestream; \
sleep 1; \
done
如果使用OBS進行推流,則在推流配置中作如下配置:
流類型 選擇自定義
URL 填rtmp://test.abc.com/live 注意最後的live
流名稱(新版本稱爲密鑰) 填livestream
三、運行服務器
conf目錄下有許多配置文件
我選擇的是 http.flv.live.conf ,修改一下端口號,默認是8080,改成實際使用的端口號即可
./objs/srs -c conf/http.flv.live.conf
執行命令,服務器開始運行
四、播放
推薦用vlc進行播放,播放地址是:
hls: http://test.abc.com:8080/live/livestream.m3u8
rtmp: rtmp://test.abc.com/live/livestream
flv: http://test.abc.com:8080/live/livestream.flv