Clone
36
v2_CN_SampleHTTP
winlin edited this page 2022-01-06 11:57:15 +08:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

HOME > CN > HTTP

SRS-HTTP服务部署实例

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

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

备注SRS只支持源站HTTP分发边缘还是需要用Web服务器比如NGINX、SQUID或ATS等。

假设服务器的IP是192.168.1.170

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

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

或者使用git更新已有代码

git pull

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

./configure && make

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

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

# conf/http.hls.conf
listen              1935;
max_connections     1000;
http_server {
    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已经启动可以访问nginx,若能看到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流地址为rtmp://192.168.1.170/live/livestream
  • HLS流地址为 http://192.168.1.170:8080/live/livestream.m3u8

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

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

可以使用VLC观看。

或者使用在线SRS播放器播放srs-player

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

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

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

可以使用VLC观看。

或者使用在线SRS播放器播放srs-player

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

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

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

Q&A

RTMP流能看HLS看不了

  • 确认srs-http-server启动并且可以访问nginx is ok页面能访问。
  • 确认m3u8文件能下载浏览器打开http://192.168.1.170:8080/live/livestream.m3u8ip地址换成你服务器的IP地址。
  • 若m3u8能下载可能是srs-player的问题使用vlc播放地址http://192.168.1.170:8080/live/livestream.m3u8ip地址换成你服务器的IP地址。
  • 若VLC不能播放将m3u8下载后用文本编辑器打开将m3u8文件内容发到群中或者贴到issue中。寻求帮助。
  • 还有可能是编码问题参考下面的“RTMP流和HLS流内容不一致”

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

  • 一般这种问题出现在使用上面的例子推流,然后换成别的编码器推流,或者换个文件推流。
  • 可能是流的编码不对推流时使用FMLEHLS需要h.264+aac需要转码参考只转码音频Transcode2HLS或者全转码[HLS+Transcode][HLS-And-Transcode]

Winlin 2014.4