nginx-rtmp-module 总结
一些参数及其含义
参数名称 | 说明 |
---|---|
app | 指明应用名称 |
name | 绑定监听的本地流名字,为空则监听所有的流 |
tcUrl | 自动构建如果为空 |
pageUrl | |
swfUrl | |
flashVer | |
playPath | 远程播放地址 |
live | 合并指定的行为,为直播流 |
start | |
stop | |
static | 静态化,会在nginx 启动的时候创建 |
中继(relay)
Syntax: pull url [key=value]*
Context: application
创建pull中继,拉取远程的流放到本地使用,当有播放器连接的时候命令才会生效
Url 语法: [rtmp://]host[:port][/app[/playpath]]
.
如果app没有指定,则使用本地请求中的app名字
Example
pull rtmp://192.168.1.129/live/test name=ted;
hls
hls_type
播放列表中的多个播放片段 event 从第一开始播放
live 从当前片段开始播放
|
hls_keys
对所有的hls片段启用aes-128加密,默认不使用加密。同时nginx编译的时候需要配置
--with-http_ssl_module
对https的支持。
密钥的位置可以在本地hls_key_path,也可以是网络文件hls_key_url。
也可以用 hls_fragments_per_key 指定一个密钥可以加密多少hls片段
- hls_path
- 设置playlist和视频片段存放位置
- hls_fragment
- 视频片段长度 默认是5s
- hls_playlist_length
- 播放列表长度,默认是30s视频长度
- hls_syn
- 时间戳同步阈值默认是2ms,当从低分辨率向高分辨路转换的的时候可以去噪,low-resolution RTMP (1KHz) to high-resolution MPEG-TS (90KHz|
- hls_continuous:
- 序列号连续模式上次停止的时候序列号开始
- hls_nested
- 嵌套模式 是否为每一个流创建一个子目录
- hls_base_url
- 指定播放列表url,默认为空
- hls_cleanup
- 清理播放列表和视频片段缓存
- hls_fragment_naming
- 视频片段命名 1.流时间戳,2.自增整数 3.系统时间戳
- hls_fragment_naming_granularity
- 设置视频片段ids间隔,默认是0
- hls_fragment_slicing
- 分片模式 1.plain 2.align
Notify相关指令
主要用于回调通知 ### on_connect
nginx 块: rtmp, server
当客户端发起一个连接的时候,同时将会发起一个异步的http请求,客户端连接将会被挂起等待http请求的结果。根据不同的结果做出不同的响应。
返回结果 - 2xx -- 刚才发起的RTMP会话请求继续 - 3xx
-- 重定向到另外一个应用,应用名在Location
响应头中 -
其他连接将会被丢弃
应用不能放在application
块,连接阶段的时候还不知道具体是请求的哪一个应用。
HTTP请求默认使用POST方法。
on_play
与on_connect 类似,只是返回结果为
3xx
的时候需要指定新的流名称
##参考资料 - https://github.com/arut/nginx-rtmp-module/wiki/Directives#live - http://blog.waterlin.org/articles/using-nginx-rtmp-module-to-build-broadcast-system.html?utm_source=tuicool