N
O
D
E
M
E
D
I
A
Thinking
首页
产品
文档
博客
订单
文档
实时转码
2026年 5月 20日 下午3:36
# NMSv3版实时音频转码 NMSv3内置实时音频转码,默认开启无需配置。 当推流到NMS或通过relay拉取监控视频,当音频编码不是aac时,即可立即进行实时音频转码。 转换为aac编码。 # NMSv3版实时视频转码 NMS v3.12.0 开始,支持基于ffmpeg进程调用的实时视频转码。预设一份转码规则的模板,则在推流时流名称匹配规则时,调用ffmpeg进行实时转码。实测延迟增大0.5-1秒。 ## 特性 * 全平台支持,只依赖ffmpeg程序 * 支持一个流多个分辨率的转码 * 支持h264 <------> h265的互相转换 * 支持硬件编码加速 * 支持音频转码 ## H265转码 ~~当进行h265转h264, h264转h265,h265大分辨率转小分辨率时,需要ffmpeg打上flv_h265_id=12的补丁。~~ 使用最新ffmpeg6.1,可使用官方版本进行265转码,无需打补丁 ## 开启方法 ### 1.如果是全新安装v3.12.0版,则默认config.ini 配置已包含,如需开启将以下配置解除注释 ``` ; 实时多分辨率转码模板文件路径, json格式 fission_template = ./fission.json ``` ### 2.如果是升级安装,则打开config.ini,在[av]项中添加如下配置 ``` ; ffmpeg路径 ffmpeg_binpath = /usr/local/bin/ffmpeg ; ffmpeg日志等级 ffmpeg_loglevel = 16 ; 实时多分辨率转码模板文件路径, json格式 fission_template = ./fission.json ``` ### 3.编辑转码模板 fission.json 文件 ``` [ { "rule": "live/*", "###_rule": "匹配规则的流进行实时转码", "model": [ { "name": "720", "###_name": "name作为标识区分,加入到流的后缀,使用字母或数字. 如原流为/live/demo,则拼接上/live/demo_720", "video": { "code": "libx264", "###_code": "编码器可选,libx264,libx265,h2645_nvenc,h2645_amf,h2645_qsv等.也可设置为copy则不转码.也可设置为none.注意当进行265视频转码时,需要ffmpeg打flv_h265_id=12 的补丁", "profile": "main", "preset": "veryfast", "tune": "zerolatency", "bitrate": 1200000, "width": 1280, "height": 720, "framerate": 24, "keyint": 2 }, "audio": { "code": "aac", "bitrate": 64000, "samplerate": 44100, "channels": 2 } }, { "name": "360", "video": { "code": "libx264", "profile": "baseline", "preset": "superfast", "tune": "zerolatency", "bitrate": 500000, "width": 640, "height": 360, "framerate": 20, "keyint": 2 }, "audio": { "code": "aac", "bitrate": 48000, "samplerate": 44100, "channels": 1 } } ] } ] ``` 以上模板,表示当有推流名称为 /live/demo 的流(demo可以是任意值)推流成功后,转码两路视频流 1280x720和640x360, 转码后的流名称是 /live/demo_720, /live/demo_360。 ### 4.准备ffmpeg程序 可下载预编译ffmpeg可执行程序,部署在配置项中设定的 /usr/local/bin/ffmpeg 也可以安装系统软件库的ffmpeg,路径一般为 /usr/bin/ffmpeg 或者自行编译ffmpeg,安装到/usr/local/bin/ffmpeg 请注意:centos7 等稳定版系统的ffmpeg程序版本较低,不适合,请下载预编译版本4.3以上。
嘿,我是小R,需要帮助随时找我哦
QQ客服:281269007
邮件支持
扫码加微信
回到顶部