1. 直播服務(wù)器搭建
網(wǎng)絡(luò)上較多的教程是關(guān)于nginx+rtmp的直播服務(wù)器,相關(guān)教程可以百度空入、谷歌。起初我也使用了該服務(wù)器族檬,但是發(fā)現(xiàn)是在是不穩(wěn)定歪赢,容易終端,并且有累計(jì)延時的情況单料÷窨可以參看GitHub上 latency increase when playing 問題。查看延時問題時扫尖,請關(guān)閉播放器的緩存白对,可以參考Stack Overflow這一 回答 . 因此最終選擇了使用 SRS 來搭建直播服務(wù)器。
搭建SRS直播服務(wù)器非常簡單换怖,
a). 下載源碼
git clone https://github.com/ossrs/srs && cd srs/trunk
b). 編譯安裝
./configure && make
c). 啟動服務(wù)
./objs/srs -c conf/srs.conf
2. 推流
可以使用OBS軟件甩恼、IP攝像頭、或者FFMPEG命令推流。
OBS:
IP攝像頭:
FFMPEG:(注:截圖中使用的192.168.1.66/myapp/live)
此外悦污,需要設(shè)置視頻和音頻格式,推薦使用H264+AAC
3. 拉流(觀看直播)
可以使用VLC钉蒲、在線srs-player切端、 或者ffplay命令播放。
ffplay:
ffplay -fflags nobuffer rtmp://192.168.1.66/myapp/live
總結(jié):
至此顷啼,一個簡單的直播服務(wù)已經(jīng)搭建完畢踏枣,本人親測在內(nèi)網(wǎng)或者外網(wǎng),使用flv或rtmp播放线梗,延時群在1S以內(nèi)椰于。SRS服務(wù)器也有延時累計(jì)的現(xiàn)象,但是不明顯仪搔,至于怎么破瘾婿,我還沒找到。希望哪位大神可以告知烤咧。
延伸:
開啟http_api 和 解決flv跨域問題偏陪。
修改源碼和配置文件, diff 信息如下:
編譯安裝:
./configure --with-http-api && make
訪問http://192.168.1.66:1985/api/v2/streams煮嫌,可以查看json相應(yīng)
可以使用flv.js 播放http://192.168.1.66:8080/myapp/live.flv
附:Dockerfile:
FROM ubuntu:16.04
RUN apt-get update
RUN apt-get -y install git unzip autoconf automake libtool make g++ net-tools build-essential
RUN git clone https://github.com/ossrs/srs.git
RUN cd /srs && git checkout v2.0-r2
WORKDIR "/srs/trunk"
# CORS setting
RUN sed -i '/"video\/x-flv"/a\\t\/\/Add Access-Control-Allow-Origin for flv stream\n\tw->header\(\)->set\("Access-Control-Allow-Origin", "\*"\);' src/app/srs_app_http_stream.cpp
RUN unzip 3rdparty/CherryPy-3.2.4.zip -d objs/
RUN ./configure --with-http-api && make
# http_api support
ADD http.flv.live.conf conf/srs.conf
OSX下面用ffmpeg抓取桌面以及攝像頭推流進(jìn)行直播
OSX下面用ffmpeg抓取桌面以及攝像頭推流進(jìn)行直播