前面章节讲述了HLS播放原理,也演示了demo程序,并在最后提出了服务的概念。这一节先把架构、设计等放一边,奔着实用主义的目的先把服务程序跑起来,这样也方便一些爱吃快餐的童鞋们能够立刻拿到一套开源的服务软件,通过感性体验来判断它是否适合在自己的项目使用。
下面就按常见的下载、安装、配置、启动、运行步骤来一一展现。
下载
打开网站 https://gitee.com/dyf029/module-proxy/releases/v0.2
1) 下载服务程序 mod_paroxy_0.2.zip 和 rtsp2hls_win_202111.zip
rtsp2hls是封装了ffmpeg的服务程序,mod_proxy是http服务程序。
2)下载Web前端程序
地址 https://gitee.com/dyf029/module-proxy/tree/master/example/hls_html
下载这些web前端文件:
安装
安装比较简单,解压即可。为了后面描述方便,我们这里把安装目录定义如下:
- mod_proxy --> d:\hls\mod_proxy\
- rtsp2hls --> d:\hls\rtsp2hls\
- web前端文件 --> d:\hls\video\
配置
编辑 d:\hls\rtsp2hls\conf.toml , 定义out_path,这里配置的'd:\hls\out'表示HLS的输出路径。
name = "rtsp to hls"
version = "0.1"
[server]
# socket 侦听端口
port = 21231
# HLS输出路径
out_path = "d:/hls/out"
[transcoding]
# ffmpeg转码命令行, {1}rtsp地址 {2}输出文件
ffmpeg_params = "-rtsp_transport tcp -i {1} -fflags flush_packets -max_delay 2 -flags -global_header -hls_init_time 0.5 -hls_time 1 -hls_wrap 5 -acodec copy -vcodec copy -y {2}"
[log]
# 日志级别: error warn info
level = "info"
编辑 d:\hls\mod_proxy\conf\default (后缀名toml,请原谅我这么写,因为把 .toml 直接跟在 default后面就违反了oschina博客网站的敏感词检查)。
在module_html中,添加video和videoplay两个映射;在module_socket中,添加hls映射,后面章节会详细说明这些配置的含义。
name = "module proxy"
version = "0.1"
[server]
# http 侦听端口
port = 80
# 网站根路径
# 示例:
# html - Module Proxy 安装路径下的html目录
# D:/TMP/root_path - windows目录,注意路径符不能用'\'
# /opt/my_root_path/ - Unix/Linux目录
root_path = "html"
# chunked方式最小字节
chunked_size = 10240000
# 默认访问路径下的文件
index = "index.html index.htm"
[log]
# 日志级别,可定义 error warn info
level = "info"
[module]
# 本地html模块
module_html = [
{module = "video", path = "d:/hls/video/" },
{module = "videoplay", path = "d:/hls/out" },
]
# http反向代理模块
module_http = [
# {module = "examples", proxy_pass = "http://127.0.0.1:8080" },
]
# socket反向代理模块
module_socket = [
{module = "hls", ip = "127.0.0.1", port = 21231 },
]
启动
启动mod_proxy,双击d:\hls\mod_proxy\start.bat
启动rtsp2hls,双击d:\tmp\rtsp2hls\start.bat
运行
浏览器访问 http://127.0.0.1/video/video.html
在rtsp地址框中输入一个可访问的摄像头URL,点击play按钮,稍等片刻web即开始播放视频。
查看d:\hls\out目录,发现已经按视频编码创建了目录1,在目录1中有ffmpeg生成的.m3u8和.ts文件。
刷新网页,重新输入另外一个摄像头url地址,视频编码框输入002,播放后在d:\hls\out目录会生成002目录及其相关.m3u8和.ts文件。
下个章节将详细说明核心服务rtsp2hls的细节,以及mod_proxy的作用。