You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用FFmpeg向node-media-server推送固定H.264视频?

用FFmpeg推送本地H.264视频到node-media-server

FFmpeg的作用

node-media-server只识别RTMP、HTTP-FLV这类流媒体协议的实时流,而本地H.264视频是静态封装文件(比如.mp4),没法直接推送到服务器。FFmpeg的核心作用就是把静态视频转换成符合流媒体协议要求的实时流,模拟成直播源推送给node-media-server。

操作步骤

  • 先确认本地已安装FFmpeg:终端输入ffmpeg -version能正常输出版本信息即可,未安装的话对应系统部署:Windows下载编译好的安装包,Linux用apt/yum,Mac用brew。
  • 确保node-media-server已正常启动,默认推流地址为rtmp://localhost:1935/live,若修改过配置则用自定义地址。
  • 执行下面的FFmpeg推流命令

核心推流命令

推送封装好的H.264视频(如.mp4)

ffmpeg -re -i 你的视频路径.mp4 -c:v copy -c:a copy -f flv rtmp://localhost:1935/live/你的流名称

参数说明:

  • -re:按视频实际帧率读取文件,避免推流速度过快(不加的话FFmpeg会快速推完整个视频,不符合直播逻辑)
  • -i:指定要推送的本地视频文件路径
  • -c:v copy:直接复用原视频的H.264编码,无需重新转码,节省系统资源
  • -c:a copy:直接复用原视频的音频编码,无音频的话可删除此参数
  • -f flv:指定输出格式为FLV(node-media-server对该格式支持最优)
  • 末尾地址为node-media-server的推流地址,你的流名称可自定义,比如test_live

推送纯H.264裸流文件(.h264后缀)

如果是未封装的H.264裸流文件,需指定输入格式:

ffmpeg -re -f h264 -i 你的裸流路径.h264 -c:v copy -f flv rtmp://localhost:1935/live/你的流名称
  • -f h264:告知FFmpeg输入文件为H.264裸流格式

验证推流成功

用播放器打开node-media-server的播放地址即可:

  • RTMP播放:rtmp://localhost:1935/live/你的流名称
  • HTTP-FLV播放:http://localhost:8000/live/你的流名称.flv
    能正常播放则说明推流成功

内容的提问来源于stack exchange,提问作者seriously

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 12:15:43