v1_CN_SampleHTTP (original) (raw)

HOME > CN > HTTP

SRS-HTTP服务部署实例

SRS内嵌了http服务器,支持分发hls流和文件。

注意:SRS内嵌的HTTP服务器是实验性的,不推荐使用。

以分发HLS为例,使用SRS分发RTMP和HLS流,不依赖于外部服务器。

假设服务器的IP是:192.168.1.170

第一步,获取SRS。详细参考GIT获取代码

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

或者使用git更新已有代码:

第二步,编译SRS。详细参考Build

./configure --disable-all --with-hls --with-ssl --with-http-server && make

第三步,编写SRS配置文件。详细参考HLS分发HTTP服务器

将以下内容保存为文件,譬如conf/http.hls.conf,服务器启动时指定该配置文件(srs的conf文件夹有该文件)。

conf/http.hls.conf

listen 1935; max_connections 1000; http_stream { enabled on; listen 8080; dir ./objs/nginx/html; } vhost defaultVhost { hls { enabled on; hls_path ./objs/nginx/html; hls_fragment 10; hls_window 60; } }

备注:hls_path必须存在,srs只会自动创建${hls_path}下的app的目录。参考:HLS分发: HLS流程

第四步,启动SRS。详细参考HLS分发HTTP服务器

./objs/srs -c conf/http.hls.conf

备注:请确定srs-http-server已经启动,可以访问http://192.168.1.170:8080/nginx.html,若能看到nginx is ok则没有问题。

备注:实际上提供服务的是SRS,可以看到响应头是Server: SRS/0.9.51之类。

第五步,启动推流编码器。详细参考HLS分发

使用FFMPEG命令推流:

for((;;)); do \
    ./objs/ffmpeg/bin/ffmpeg -re -i ./doc/source.200kbps.768x320.flv \
    -vcodec copy -acodec copy \
    -f flv -y rtmp://192.168.1.170/live/livestream; \
    sleep 1; \
done

或使用支持h.264+aac的FMLE推流(若不支持h.264+aac,则可以使用srs转码,参考Transcode2HLS):

FMS URL: rtmp://192.168.1.170/live Stream: livestream

生成的流地址为:

第六步,观看RTMP流。详细参考HLS分发

RTMP流地址为:rtmp://192.168.1.170/live/livestream

可以使用VLC观看。

或者使用在线SRS播放器播放:http://ossrs.net/srs.release/trunk/research/players/srs_player.html?vhost=defaultVhost&autostart=true&server=192.168.1.170&app=live&stream=livestream

备注:请将所有实例的IP地址192.168.1.170都换成部署的服务器IP地址。

第七步,观看HLS流。详细参考HLS分发

HLS流地址为: http://192.168.1.170:8080/live/livestream.m3u8

可以使用VLC观看。

或者使用在线SRS播放器播放:http://ossrs.net/srs.release/trunk/research/players/srs_player.html?app=live&stream=livestream.m3u8&server=192.168.1.170&port=8080&autostart=true&vhost=192.168.1.170&schema=http&hls_autostart=true&hls_port=8080

备注:请将所有实例的IP地址192.168.1.170都换成部署的服务器IP地址。

注意:VLC无法观看纯音频流,jwplayer可以观看。

分发纯音频流参考:HLS audio only

Q&A

RTMP流能看,HLS看不了

RTMP流内容和HLS流内容不一致

Winlin 2014.4