直播服务搭建教程

1. 直播服务器搭建

直播服务搭建教程_第1张图片
常见直播服务器注:此图来源于网络,由于本人疏忽,忘记了图片的来源,如有不妥,请告知!

网络上较多的教程是关于nginx+rtmp的直播服务器,相关教程可以百度、谷歌。起初我也使用了该服务器,但是发现是在是不稳定,容易终端,并且有累计延时的情况。可以参看GitHub上 latency increase when playing 问题。查看延时问题时,请关闭播放器的缓存,可以参考Stack Overflow这一 回答 . 因此最终选择了使用 SRS 来搭建直播服务器。

搭建SRS直播服务器非常简单,

a). 下载源码
git clone https://github.com/ossrs/srs && cd srs/trunk
b). 编译安装
./configure && make
c). 启动服务
./objs/srs -c conf/srs.conf

2. 推流

可以使用OBS软件、IP摄像头、或者FFMPEG命令推流。

OBS:


直播服务搭建教程_第2张图片
OBS推流设置推流地址

IP摄像头:


直播服务搭建教程_第3张图片
IP摄像头设置推流地址(不同厂家、不同型号摄像头可能不同)

FFMPEG:(注:截图中使用的192.168.1.66/myapp/live)


直播服务搭建教程_第4张图片
FFMPEG推流(截图来自https://github.com/ossrs/srs/wiki/v1_CN_SampleRTMP)

此外,需要设置视频和音频格式,推荐使用H264+AAC

3. 拉流(观看直播)

可以使用VLC、在线srs-player、 或者ffplay命令播放。
ffplay:
ffplay -fflags nobuffer rtmp://192.168.1.66/myapp/live

总结:

至此,一个简单的直播服务已经搭建完毕,本人亲测在内网或者外网,使用flv或rtmp播放,延时群在1S以内。SRS服务器也有延时累计的现象,但是不明显,至于怎么破,我还没找到。希望哪位大神可以告知。

延伸:
开启http_api 和 解决flv跨域问题。

修改源码和配置文件, diff 信息如下:

直播服务搭建教程_第5张图片
开启http_api 和 添加 Access-Control-Allow-Origin

编译安装:

./configure --with-http-api && make

访问http://192.168.1.66:1985/api/v2/streams,可以查看json相应
可以使用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抓取桌面以及摄像头推流进行直播
OSX下面用ffmpeg抓取桌面以及摄像头推流进行直播

你可能感兴趣的