软件下载地址: http://www.qiyicc.com/download/rtmpd.zip
一分钟快速搭建 rtmpd 服务器: https://blog.csdn.net/freeabc/article/details/102880984
其实 smart_rtmpd 不仅支持强大的直播功能,而且还支持录像功能。开启录像功能其实很简单,就是把 url 中的 app 部分变成关键字 rec 即可,既 smart_rtmpd 支持两种类型的 app,一个是 live (直播),一个是 rec (录播),下面就其使用方法,以及对应的配置做一个简单的介绍,然后再介绍一下录像回放的一些方法。
1. 录像启用
录像模式支持 HLS 模式或 DASH 模式,两种模式只能选择其一,具体参看 config.xml 里 0 - dash 模式, 1 - hls 模式
<recmode>1</recmode>
录像启用的条件,HLS 和 DASH 必须开启,就是配置文件里的两项
<hlsenable>true</hlsenable>
<dashenable>true</dashenable>
我们知道,smart_rtmpd 直播推流的 url 大致这个样子 rtmp://media.qiyicc.com/live/stream,那么我想带有录像功能,怎么办,其实很简单,把对应的 url 改成 rtmp://media.qiyicc.com/rec/stream 然后推流到流服务器。这样,smart_rtmpd 就会自动开启边直播边录像的功能。而播放端的各个 url 无需更换 app 标签,既播放端还是可以用 rtmp://media.qiyicc.com/live/stream (rtmp), http://media.qiyicc.com/live/stream.flv (flv), http://media.qiyicc.com/live/stream.m3u8 (hls), http://media.qiyicc.com/live/stream.mpd(dash) 进行直播观看,smart_rtmpd 会自动产生对应的各路直播流,并同时进行录像存储。
2. 录像配置
打开配置文件 config.xml 找到 http 标签
<hlsenable>true</hlsenable>
<dashenable>true</dashenable>
这两项是开启 hls 和 dash ,如果录像模式选择 hls, 则 hlsenable 必须开启,如果录像模式选择 dash ,则 dashenable 必须开启
<ioshrink>512</ioshrink>
如果写入磁盘过慢,如果数据队列超过此值,则会出现丢包现象,这样导致录像可能不完整。
录像文件是按时间进行分割存储的,防止单个录像文件过大的问题,时间单位为分钟,参看配置项。
<recduration>10</recduration>
大家可以根据需要调整此值,此值太小,可能文件碎片太多,太大可能引起不稳定。
3. 录像回放
录像回放需要分两步,第一步录像查询,第二步录像回放
录像查询,具体查询如下,发送 HTTP GET 请求,下面是查询录像的天数
http://media.qiyicc.com/rec/stream?cmd=query&type=rec
就会查询到那天有录像,然后可以根据下面请求,查询具体的录像内容
http://media.qiyicc.com/rec/stream?cmd=query&type=rec&day=2019-12-03
就会返回具体到时分秒的文件,此文件录像的内容为 这个时分秒为结束时间,减去 <recduration>10</recduration> 为录像开始时间
录像回放
如果是 hls 模式的,一般是这种 http://media.qiyicc.com/rec/stream.m3u8?day=2019-12-03&time=09-44-56
如果是 dash 模式,一般是这种 http://media.qiyicc.com/rec/stream.mpd?day=2019-12-03&time=09-44-56