N
O
D
E
M
E
D
I
A
Thinking
首页
产品
文档
博客
订单
文档
视频转码用例
2026年 5月 20日 下午3:36
## 简介 NMSv3.12及之后版本支持调用ffmpeg进行实时视频转码,应用场景为 - 1转高清转多路中低分辨率、码率 - h264、h265 互转 - 实时添加图片,文字等滤镜 ## 注意事项 - 转码模板目前只支持服务启动前预设好,服务启动后不能修改 - 转码必然消耗大量cpu性能,请合理设置转码任务,避免影响正常的视频直播功能 - 在各个系统上,ffmpeg支持硬件加速的编解码,可以的话尽量使用,但也需注意硬件加速的最大处理能力 - 添加文字,图片水印一样需要对原视频解码后再编码 ## 高清转多路低清 用于1路高清推流,如1080,转为多路低分辨率低码率,以帮助低带宽用户流畅播放 config.ini文件,打开注释 ``` ; ffmpeg路径 ffmpeg_binpath = /usr/local/bin/ffmpeg ; ffmpeg日志等级 ffmpeg_loglevel = 16 ; 实时多分辨率转码模板文件路径, json格式, 注释则关闭 fission_template = ./fission.json ``` 安装ffmpeg可执行程序到/usr/local/bin/ffmpeg或指定其他路径 编辑fission.json转码模板文件 ``` [ { "rule": "live/*", "###_rule": "匹配规则的流进行实时转码", "hwaccel": "", "###_hwaccel": "使用硬件加速解码,可选 videotoolbox, vaapi, dxva2, nvdec, vdpau等", "model": [ { "name": "720", "###_name": "name作为标识区分,加入到流的后缀,使用字母或数字. 如原流为/live/demo,则拼接上/live/demo_720", "video": { "filter": "", "code": "libx264", "###_code": "编码器可选,libx264,libx265,*_nvenc,*_amf,*_qsv,*_mf,*_vaapi,*_videotoolbox等.也可设置为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": { "filter": "", "code": "aac", "bitrate": 64000, "samplerate": 44100, "channels": 2 } }, { "name": "360", "video": { "filter": "", "code": "libx264", "profile": "baseline", "preset": "superfast", "tune": "zerolatency", "bitrate": 500000, "width": 640, "height": 360, "framerate": 20, "keyint": 2 }, "audio": { "filter": "", "code": "aac", "bitrate": 48000, "samplerate": 44100, "channels": 1 } } ] } ] ``` 默认配置就是对/live/* 的流进行转码,转出720和360两个分辨率,新的流名称在原流名称后添加_720和_360,码率更低。  ## h265 转 h264 这种场景用于h265监控摄像头推流后转为兼容性更高的 h264流 ``` [ { "rule": "live/*", "###_rule": "匹配规则的流进行实时转码", "hwaccel": "", "###_hwaccel": "使用硬件加速解码,可选 videotoolbox, vaapi, dxva2, nvdec, vdpau等", "model": [ { "name": "264", "###_name": "name作为标识区分,加入到流的后缀,使用字母或数字. 如原流为/live/demo,则拼接上/live/demo_264", "video": { "filter": "", "code": "libx264", "###_code": "编码器可选,libx264,libx265,*_nvenc,*_amf,*_qsv,*_mf,*_vaapi,*_videotoolbox等.也可设置为copy则不转码.也可设置为none.注意当进行265视频转码时,需要ffmpeg打flv_h265_id=12 的补丁", "profile": "main", "preset": "veryfast", "tune": "zerolatency", "bitrate": 1200000, "width": 1920, "height": 1080, "framerate": 25, "keyint": 3 }, "audio": { "filter": "", "code": "aac", "bitrate": 64000, "samplerate": 44100, "channels": 2 } } ] } ] ``` ## 实时添加文字滤镜 ``` [ { "rule": "live/*", "###_rule": "匹配规则的流进行实时转码", "hwaccel": "", "###_hwaccel": "使用硬件加速解码,可选 videotoolbox, vaapi, dxva2, nvdec, vdpau等", "model": [ { "name": "logo", "###_name": "name作为标识区分,加入到流的后缀,使用字母或数字. 如原流为/live/demo,则拼接上/live/demo_logo", "video": { "filter": "drawtext=fontfile=simhei.ttf:text=这是文字水印:x=20:y=20:fontsize=48:fontcolor=white:shadowy=2", "code": "libx264", "###_code": "编码器可选,libx264,libx265,*_nvenc,*_amf,*_qsv,*_mf,*_vaapi,*_videotoolbox等.也可设置为copy则不转码.也可设置为none.注意当进行265视频转码时,需要ffmpeg打flv_h265_id=12 的补丁", "profile": "main", "preset": "veryfast", "tune": "zerolatency", "bitrate": 800000, "width": 854, "height": 480, "framerate": 30, "keyint": 3 }, "audio": { "filter": "", "code": "aac", "bitrate": 64000, "samplerate": 44100, "channels": 2 } } ] } ] ``` 如果提示错误 [Parsed_drawtext_0 @ 0x7f8202a12c40] Could not load font "simhei.ttf": cannot open resource 是因为ffmpeg未找到字体文件,可指定字体的绝对路径或将simhei.ttf拷贝到nms目录下 字体不限  ## 实时添加图片滤镜 将logo.png文件拷贝到nms程序目录下 ``` [ { "rule": "live/*", "###_rule": "匹配规则的流进行实时转码", "hwaccel": "", "###_hwaccel": "使用硬件加速解码,可选 videotoolbox, vaapi, dxva2, nvdec, vdpau等", "model": [ { "name": "logo", "###_name": "name作为标识区分,加入到流的后缀,使用字母或数字. 如原流为/live/demo,则拼接上/live/demo_logo", "video": { "filter": "movie=logo.png[watermark];[in][watermark] overlay=main_w-overlay_w-10:10[out]", "code": "libx264", "###_code": "编码器可选,libx264,libx265,*_nvenc,*_amf,*_qsv,*_mf,*_vaapi,*_videotoolbox等.也可设置为copy则不转码.也可设置为none.注意当进行265视频转码时,需要ffmpeg打flv_h265_id=12 的补丁", "profile": "main", "preset": "veryfast", "tune": "zerolatency", "bitrate": 800000, "width": 854, "height": 480, "framerate": 30, "keyint": 3 }, "audio": { "filter": "", "code": "aac", "bitrate": 64000, "samplerate": 44100, "channels": 2 } } ] } ] ``` 则在视频右上角添加了一个透明图片水印  ### 左上 ``` overlay=10:10 ``` ### 右上 ``` overlay=main_w-overlay_w-10:10 ``` ### 左下 ``` overlay=10:main_h-overlay_h-10 ``` ### 右下 ``` overlay=main_w-overlay_w-10:main_h-overlay_h-10 ```
嘿,我是小R,需要帮助随时找我哦
QQ客服:281269007
邮件支持
扫码加微信
回到顶部