Clone
25
v2_CN_SampleHLS
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 > HLS

HLS部署实例

SRS支持HLS的详细步骤本文介绍的是使用NGINX作为HTTP服务器可以使用SRS作为HTTP服务器参考v2_CN_SampleHTTP

假设服务器的IP是192.168.1.170

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

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

或者使用git更新已有代码

git pull

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

./configure --with-nginx && make

第三步启动分发hlsm3u8/ts的nginx。详细参考HLS分发

sudo ./objs/nginx/sbin/nginx

备注为了突出HLS的配置我们在HLS的实例中没有使用SRS内置的HTTP Server可以配置几行就可以不用nginx。参考Usage: HTTP

备注请确定nginx已经启动可以访问nginx,若能看到nginx is ok则没有问题。

第四步编写SRS配置文件。详细参考HLS分发

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

# conf/hls.conf
listen              1935;
max_connections     1000;
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分发

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

第六步,启动推流编码器。详细参考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/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/live/livestream.m3u8

可以使用VLC观看。

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

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

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

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

Q&A

RTMP流能看HLS看不了

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

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

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

Winlin 2014.3