N
O
D
E
M
E
D
I
A
Thinking
首页
产品
文档
博客
订单
文档
配置说明
40 次浏览
2026年 5月 25日 上午9:04
# NodeMediaServer 配置参数说明 配置文件:`config.ini` > 注释规则:`#` 为文本注释,`;` 为参数注释。密码中不要使用 `#` 和 `;`,否则会被配置解析器忽略。 --- ## [common] 通用设置 | 参数 | 默认值 | 说明 | |---|---|---| | `license` | *(空)* | 授权码。程序运行后,将 Machine ID 发送给客服获取授权。 | | `http_api` | `true` | 是否启用 HTTP API 功能。需要启用 HTTP 或 HTTPS 服务。 | | `admin_panel` | `true` | 是否启用管理面板。需要启用 `http_api`。 | | `notify_url` | *(空)* | 流创建和结束时的通知地址(POST)。通知创建时返回非 200 状态码将中断推流。例如:`http://192.168.0.6:8008/notify` | | `notify_method` | `post` | 通知方式,可选 `post` 或 `get`。`get` 方式时参数通过 URL 传递。 | | `gop_cache` | `true` | 是否启用 GOP 缓存。缓存最近一个关键帧开始的视频段,使客户端可以立即解码播放。内存占用计算公式:码率/8 × 关键帧间隔 × 并发流数。 | | `web_root` | `./html` | 静态文件访问根目录。 | | `ondemand_mode` | `false` | 按需模式。开启后 FLV、KMP、FMP4 协议仅在需要时才进行转换,提升大并发性能。如果仅使用 RTMP 协议或做转发服务也可以开启。仅影响该协议第一个客户端的首屏加载速度。 | --- ## [log] 日志设置 | 参数 | 默认值 | 说明 | |---|---|---| | `log_level` | `debug` | 日志级别,可选:`trace`、`debug`、`info`、`warn`、`error`。 | | `log_file` | `console` | 日志输出位置。`console` 输出到控制台,或设置实际日志文件路径如 `./log/debug.log`。Linux systemd 启动时设置为 `console` 可使用系统日志。 | | `log_maxday` | `7` | 日志最大保留天数。 | | `log_todb` | `false` | 是否将推拉流事件记录到数据库。可通过管理面板或 API 查询,最多保留 `log_maxday` 天的记录。 | --- ## [av] 音视频处理 ### 实时音频转码 | 参数 | 默认值 | 说明 | |---|---|---| | `transcode_audio` | `true` | 是否启用自动音频转码。自动将 RTMP/FLV/KMP/HLS 音频转换为目标编码格式。 | | `transcode_audio_codec` | `aac` | 音频编码格式,可选:`aac`、`g711`、`opus`。 | | `transcode_rule` | `*/*` | 音频自动转码匹配规则,仅匹配时才转码。多条规则用 | 分隔,`*/*` 表示转码所有。 | ### 推流音视频内容加密 | 参数 | 默认值 | 说明 | |---|---|---| | `crypto_key` | *(空)* | 加密密钥,16 字节任意字符串,例如 `qwerty1234567890`。加密后支持 rtmp/kmp/http-flv/websocket-flv/http-fmp4 协议,**不支持 HLS**。仅支持 H264+AAC 流,启用 `transcode_audio` 转码为 AAC 后的流也支持。 | | `crypto_rule` | `*/*` | 加密匹配规则。格式为 `app_name/stream_name`,支持 `*` 通配符,多条规则用 | 分隔。默认 `*/*` 加密所有推流,`live/*` 仅加密 app_name 为 live 的流。客户端需使用 NodeMediaClient-Android/iOS/Windows 或 NodePlayer.js 解密播放。 | ### 推流截图 | 参数 | 默认值 | 说明 | |---|---|---| | `screenshot_on` | `false` | 是否启用截图功能。需要设置 `screenshot_path`。 | | `screenshot_path` | `./screenshot` | 截图保存路径。 | | `screenshot_suffix` | *(空)* | 截图文件名类型。默认(不设置)可通过流名直接访问截图:`http://server_ip:8000/screenshot/live/stream.jpg`。设置 `time` 按时间保存所有截图,设置 `count` 按计数命名。`/screenshot/` 前缀为 HTTP 访问固定路径,非存储路径。 | | `screenshot_interval` | `1m` | 截图间隔时长。支持单位:`s`(秒)、`m`(分)、`h`(时)、`d`(天)。 | ### 推流录像 | 参数 | 默认值 | 说明 | |---|---|---| | `record_on` | `false` | 是否启用录像功能。需要设置 `record_path`。 | | `record_path` | `./record` | 录像保存路径。 | | `record_rule` | `*/*` | 录像匹配规则。默认 `*/*` 录制所有流,`live/*` 仅录制 live 下的流,多条规则用 | 分隔。 | | `record_maxtime` | *(空)* | 单次录像最大时长。支持单位:`m`(分)、`h`(时)、`d`(天)。不设置则不分段,持续录制直到流断开。当 `record_filetype` 为 `hls`(DVR 录像)时,默认值为 `1m`(每分钟生成一个 ts 文件)。 | | `record_filetype` | `ts` | 录像文件格式,可选:`mp4`、`fmp4`、`mkv`、`ts`、`flv`、`hls`。录像开始和结束时发送 notify(`postRecord`、`doneRecord`)。 | **录像 HTTP 访问路径示例:** | 格式 | 访问地址 | |---|---| | mp4 / mkv / ts / flv | `http://server_ip:8000/record/live/stream/2020-07-12/10-51-25.mp4` | | hls(DVR 全天录像) | `http://server_ip:8000/record/live/stream/2020-07-12/index.m3u8` | | hls(指定时段回看) | `http://server_ip:8000/record/live/stream/2020-07-12/vod.m3u8?start=0930&end=1140` | > `/record/` 前缀为 HTTP 访问固定路径,非存储路径。 | 参数 | 默认值 | 说明 | |---|---|---| | `record_quota` | *(空)* | 录像目录磁盘配额。超出阈值后自动删除最旧日期目录。支持容量值如 `500G`、`1T`(按存储目录大小计算)或百分比如 `90%`(按所在硬盘大小计算,Windows 为盘符大小)。不设置则不自动删除,需手动维护磁盘。 | ### 直播转码与点播切片 | 参数 | 默认值 | 说明 | |---|---|---| | `ffmpeg_loglevel` | `16` | FFmpeg 日志级别。 | | `ffmpeg_binpath` | *(空)* | FFmpeg 可执行文件路径,例如 `/usr/local/bin/ffmpeg`。设置后启用实时视频转码功能。 | | `ffprobe_binpath` | *(空)* | FFprobe 可执行文件路径,例如 `/usr/local/bin/ffprobe`。 | --- ## [auth] 鉴权设置 ### 基础鉴权 | 参数 | 默认值 | 说明 | |---|---|---| | `auth_key` | `authkey@2019` | 鉴权密钥,用于生成鉴权码。 | **鉴权码生成规则:** ``` 原地址:rtmp://192.168.0.8/live/stream 1. 获取过期时间戳(当前时间 + 30 秒过期):1574318274 2. MD5 计算:md5(/live/stream-1574318274-authkey@2019) 3. 最终地址:rtmp://192.168.0.8/live/stream?sign=1574318274-5a1ee174233631793a4091badf4ffec5 ``` > 对于 HTTP-FLV、HTTP-FMP4、HLS 等播放地址,只需传流名,不要加后缀(`.flv`、`.mp4`、`.m3u8`)。 | 参数 | 默认值 | 说明 | |---|---|---| | `auth_play` | `false` | 是否启用播放鉴权。 | | `auth_push` | `false` | 是否启用推流鉴权。 | | `auth_once` | `false` | 鉴权 token 是否仅允许使用一次。 | ### API 鉴权 | 参数 | 默认值 | 说明 | |---|---|---| | `auth_api` | `true` | 是否启用 API 鉴权。启用后所有 API 调用需设置 `header['authorization']` 为登录成功后返回的 token。 | | `auth_api_user` | `admin` | API 鉴权用户名。 | | `auth_api_pass` | `admin` | API 鉴权密码,登录时需传 MD5 后的值。默认密码为弱密码,请务必修改。 | **登录请求示例:** ```json { "username": "admin", "password": "21232f297a57a5a743894a0e4a801fc3" } ``` ### 域名与来源验证 | 参数 | 默认值 | 说明 | |---|---|---| | `auth_domain` | *(空)* | 域名验证。启用后仅允许使用该域名进行推拉流,多个域名用 | 分隔。 | | `auth_nme` | `123456` | 通过 NME 平台注册的密码验证。 | | `auth_allow_name_rule` | *(空)* | 允许推流的流名规则。设置后仅匹配规则的流名允许推流,多条规则用 | 分隔。例如:live/* | game/* | | `auth_allow_none_referer` | `true` | 是否允许空 Referer 访问 FLV、FMP4 流。WebSocket 无 Referer,FFmpeg 默认也无 Referer。 | | `auth_allow_referer` | *(空)* | Referer 验证规则,多条用 | 分隔。 | --- ## [rtmp] RTMP 协议 | 参数 | 默认值 | 说明 | |---|---|---| | `port` | `1935` | RTMP 协议端口(TCP)。 | --- ## [rtmps] RTMPS 协议 | 参数 | 默认值 | 说明 | |---|---|---| | `port` | `0` | RTMPS 协议端口(TCP),设置为 `0` 不启用。 | | `key_file` | `key.pem` | SSL 私钥文件路径。 | | `cert_file` | `cert.pem` | SSL 证书文件路径。 | > **注意:** OBS 推流 RTMPS 会验证 SSL 证书,请正确配置推流域名证书。FFmpeg/fplay/libav* 不验证 SSL 证书。 --- ## [http] HTTP 服务 | 参数 | 默认值 | 说明 | |---|---|---| | `port` | `8000` | HTTP 端口(TCP),用于 HTTP-FLV、WebSocket-FLV、HTTP-FMP4、HLS 协议。API 接口和管理面板复用此端口。 | --- ## [https] HTTPS 服务 | 参数 | 默认值 | 说明 | |---|---|---| | `port` | `8443` | HTTPS 端口(TCP),用于 HTTPS-FLV、WSS-FLV、HTTPS-FMP4、HLS 协议。同时也是 NME 设备注册端口和 WebRTC 信令端口。 | | `key_file` | `key.pem` | SSL 私钥文件路径。 | | `cert_file` | `cert.pem` | SSL 证书文件路径。 | > WebRTC RTP/RTCP 媒体传输复用端口为 UDP。 --- ## [hls] HLS 切片 | 参数 | 默认值 | 说明 | |---|---|---| | `hls_path` | *(空)* | HLS 切片临时存储路径,必须为有效且可写的路径。若不设置,则不启用 HLS 服务,不生成 HLS 切片。 | | `hls_time` | `2` | 切片时长(秒)。经过此时长后将在下一个关键帧处切割。实际切片时间受关键帧间隔影响,低切片可有效降低 HLS 延迟,但需要推流端使用固定的低关键帧间隔编码。 | | `hls_list` | `3` | 播放列表最大条目数。 | | `hls_allow_cache` | `false` | 是否显式设置允许客户端缓存媒体分段。 | --- ## [kmp] KMP 协议 | 参数 | 默认值 | 说明 | |---|---|---| | `port` | `6935` | KMP 协议端口(UDP)。 | --- ## [srt] SRT 协议 > 基于 UDP 的可靠低延迟传输协议,具有强抗弱网传输能力,支持 AES 传输加密。 > NMS-Windows 暂不支持 SRT 服务。用于无人机、编码器、OBS 推流。 | 参数 | 默认值 | 说明 | |---|---|---| | `port` | `9000` | SRT 监听端口(UDP)。 | | `latency` | `100` | 延迟(毫秒)。 | | `passphrase` | *(空)* | 传输加密密码,至少 10 个字符。 | **推流地址格式:** ``` srt://192.168.0.4:9000?streamid=h=192.168.0.4,r=/live/srt1,m=publish ``` **带鉴权地址:** ``` srt://192.168.0.4:9000?streamid=h=192.168.0.4,r=/live/srt1,m=publish,sign=1645847336-e6207f97b84246dd64c18b7cd6ae015e ``` **OBS 加密推流:** ``` srt://192.168.0.4:9000?streamid=h=192.168.0.4,r=/live/srt1,m=publish&passphrase=0123456789 ``` > 支持加密密码选项的编码器可直接输入相同密码,推流地址无需附加 `&passphrase=` 参数。 --- ## [jt808] JT808 信令服务 | 参数 | 默认值 | 说明 | |---|---|---| | `port` | *(空)* | JT808 服务端口,默认 6608。不设置则不启用。 | | `rtp_ip` | *(空)* | JT1078 媒体服务器 IP。发送 0x9101 命令时设置的 JT1078 直播流服务器 IP 地址。 | | `rtp_port` | `0` | JT1078 媒体服务器端口。发送 0x9101 命令时设置的 JT1078 直播流服务器端口。此为下方 jt1078 服务监听的端口,非网络嗅探端口。 | --- ## [jt1078] JT1078 流媒体服务 > 用户需自行实现 JT808。配置设备 IP 和端口后,此服务可接收音视频流。 | 参数 | 默认值 | 说明 | |---|---|---| | `live_port` | `0` | JT1078 默认直播端口,推流到此端口,流名为 `/live/sim_ch`。 | | `main_port` | `0` | JT1078 主码流端口,推流到此端口,流名为 `/main/sim_ch`。 | | `sub_port` | `0` | JT1078 子码流端口,推流到此端口,流名为 `/sub/sim_ch`。 | | `audio_port` | `0` | JT1078 单音频监听流端口,推流到此端口,流名为 `/audio/sim_ch`。 | --- ## [gb28181] GB28181 直播服务 > 填写服务器公网 IP,开启 `sip_port` 和 `rtp_port` 即可启用服务。 | 参数 | 默认值 | 说明 | |---|---|---| | `sip_id` | `34020000002000000001` | SIP 服务器 ID。 | | `sip_domain` | `3402000000` | SIP 服务器域。 | | `sip_pass` | `123456` | SIP 服务器认证密码。 | | `sip_ip` | *(空)* | SIP 服务器地址,填写服务器的公网/内网 IP。**此项为必填,不设置服务不会启动。** | | `sip_port` | `5060` | SIP 服务器端口(UDP)。 | | `rtp_port` | `5080` | RTP 服务器复用端口(UDP/TCP)。注意:服务会在该 UDP 端口号 +1 上监听部分设备媒体流的保活端口。 | | `alarm_notify` | *(空)* | 报警通知 URL。收到设备报警且通道报警通知开启时,向此地址发送 POST 通知。 | --- ## [rtsp] RTSP 协议 | 参数 | 默认值 | 说明 | |---|---|---| | `port` | `0` | RTSP 协议 TCP 端口。设置为 `0` 不启用。 | | `rtp_port` | `8002` | RTP 端口,RTP 通过 UDP 传输时复用此端口,必须为偶数。 | | `rtcp_port` | `8003` | RTCP 端口,RTCP 通过 UDP 传输时复用此端口,值为 RTP_PORT + 1。 | **传输模式说明:** - FFmpeg、VLC 等播放器默认使用 TCP 传输协议 - FFmpeg 使用 `-rtsp_transport tcp` 将 RTSP 协议和 RTP 数据通过单一 TCP 端口传输 - VLC 使用命令行参数设置:`/usr/bin/vlc --rtsp-tcp rtsp://localhost/live/2` - TCP 传输优势:① 仅开放单个端口 ② 公网传输无花屏 **支持编码:** H.264/H.265 + AAC/Opus/G.711 **地址示例:** ``` rtsp://localhost/live/stream rtsp://localhost/live/stream?sign=1671694080-64669b5d4b147ac09dc6ec42ef79815d ``` --- ## [stun] STUN 服务 | 参数 | 默认值 | 说明 | |---|---|---| | `port` | `0` | STUN 服务器监听端口,常用端口 `3478`。设置为 `0` 不启用。 | --- ## [webrtc] WebRTC > 基于 WHIP/WHEP 标准协议实现 WebRTC 直推和播放,信令通过 HTTP/HTTPS 端口通信。 > > - [WHIP 协议规范](https://www.ietf.org/archive/id/draft-ietf-wish-whip-09.html) > - [WHEP 协议规范](https://www.ietf.org/archive/id/draft-murillo-whep-02.html) | 参数 | 默认值 | 说明 | |---|---|---| | `ip` | *(空)* | 公网部署填公网 IP,内网填内网 IP,用于直连通信。不设置则使用 STUN 识别。 | | `port` | `0` | ICE 监听复用端口。设置后启用服务,此端口用于媒体数据传输(单端口 TCP/UDP),**注意开放防火墙**。 | | `ice_tcp` | `false` | ICE 是否通过 TCP 传输。Chrome 支持,OBS 不支持。 | | `stun` | `stun:stun.l.google.com:19302` | STUN 服务器地址,多个地址用 | 分隔。 | **请求地址格式:** | 操作 | 地址 | |---|---| | 推流 | `http://server_ip:8000/live/stream.whip` | | 拉流 | `http://server_ip:8000/live/stream.whep` | --- ## [vod] 点播切片服务 | 参数 | 默认值 | 说明 | |---|---|---| | `vod_on` | `false` | 是否启用点播切片服务。需要启用 HTTP 或 HTTPS 服务。 | | `vod_path` | `./vod` | 点播文件存储路径,所有 HLS 切片存储于此。 | | `vod_watch_path` | `./vod/watch` | 监控文件夹路径。上传到此目录的视频文件将被自动切片。 | | `vod_segment_time` | `10` | HLS 切片时长(秒)。 | | `vod_allow_cache` | `true` | 是否允许客户端缓存媒体分段。 | | `vod_max_concurrent` | `3` | 最大并发切片任务数。 | | `vod_auto_delete` | `false` | 切片成功后是否自动删除源文件。 | | `vod_screenshot_time` | `2` | 截图截取时间点(秒)。 | --- ## [cluster] 集群配置 | 参数 | 默认值 | 说明 | |---|---|---| | `type` | `pull` | 集群类型。`pull` 为边缘节点,按需从中心拉取;`push` 为中心节点,主动推送到边缘。 | | `node` | *(空)* | 远程节点地址,需设置协议头、IP 地址、端口号。例如:`kmp://192.168.0.4:6935` | | `args` | *(空)* | 附加参数。 |
嘿,我是小R,需要帮助随时找我哦
QQ客服:281269007
邮件支持
扫码加微信
回到顶部