海康威视摄像头实时推流到阿里云公网服务器(Windows + FFmpeg + nginx-rtmp)

发布于:2025-08-10 ⋅ 阅读:(16) ⋅ 点赞:(0)

适用场景

  • 摄像头:海康威视 IPC/NVR(局域网)
  • 推流机:Windows 10/11(可 7×24 开机)
  • 服务器:阿里云 ECS(Ubuntu / CentOS)
  • 公网观看:VLC、网页、微信小程序均可

1. 步骤总览

阶段 任务 备注
① 服务器端 部署 nginx-rtmp,监听 1945 端口 一次性
② Windows 端 安装 FFmpeg,拉 RTSP 推 RTMP 一次性
③ 验证 VLC 公网播放 随时
④ 长期运行 注册 Windows 服务/nssm 可选

2. 阿里云 ECS(Linux)配置

2.1 开放端口

安全组 添加 2 条入方向规则

  • TCP 1945 → RTMP 推流
  • TCP 80/443 → 可选 HTTP-FLV/HLS

2.2 安装 nginx-rtmp

sudo apt update
sudo apt install nginx-full libnginx-mod-rtmp -y

sudo tee /etc/nginx/nginx.conf > /dev/null <<'EOF'
user www-data;
events { worker_connections 1024; }
http  { include /etc/nginx/sites-enabled/*; }

rtmp {
    server {
        listen 1945;
        chunk_size 4096;
        application live {
            live on;
            record off;
            gop_cache on;   # 低延迟
        }
    }
}
EOF

sudo systemctl restart nginx

3. Windows 电脑端配置

3.1 安装 FFmpeg

3.1.1 官网/镜像下载:
https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip
3.1.2 解压后将 bin 目录加入系统 Path

PowerShell 验证

ffmpeg -version

3.2 获取海康 RTSP 地址

类型 示例
主码流 rtsp://admin:密码@192.168.1.64:554/Streaming/Channels/101
子码流 rtsp://admin:密码@192.168.1.64:554/Streaming/Channels/102

3.3 一次性推流测试

ffmpeg -re -rtsp_transport tcp `
  -i "rtsp://admin:Sago0%402024@192.168.1.64:554/Streaming/Channels/101" `
  -vcodec libx264 -preset ultrafast -tune zerolatency -an `
  -s 1280x720 -b:v 1200k -f flv `
  rtmp://<ECS-公网IP>:1945/live/hik1

出现 fps ≈ 25 speed ≈ 1.0x 即成功。

4. 公网观看

4.1 VLC播放器

  • 菜单:媒体 → 打开网络串流

  • URL:

    rtmp://<ECS-公网IP>:1945/live/hik1
    

4.2 网页嵌入(可选)

<script src="https://cdn.jsdelivr.net/npm/flv.js/dist/flv.min.js"></script>
<video id="video" controls autoplay></video>
<script>
  if (flvjs.isSupported()) {
    const player = flvjs.createPlayer({
      type: 'flv',
      url: 'http://<域名或IP>:8080/live/hik1.flv'
    });
    player.attachMediaElement(document.getElementById('video'));
    player.load();
    player.play();
  }
</script>

5. 长期守护运行

5.1 注册成 Windows 服务(nssm)

5.1.1 下载 nssm
5.1.2 管理员 PowerShell:
nssm install HikPush
  • Application:C:\ffmpeg\bin\ffmpeg.exe
  • Arguments:
    -re -rtsp_transport tcp -i rtsp://admin:Sago0%402024@192.168.1.64/Streaming/Channels/101 -vcodec libx264 -preset ultrafast -tune zerolatency -an -s 1280x720 -b:v 1200k -f flv rtmp://:1945/live/hik1
  • Startup type:Automatic
5.1.3 启动服务 HikPush,开机即推流,崩溃自动重启。

6. 常见问题速查表

现象 原因 & 解决
VLC 无法连接 安全组未放行 1945 / 路径拼写错误
画面黑屏 摄像头未启用 RTSP / 路径 101/102 选错
花屏/卡顿 网络抖动:改用 -rtsp_transport tcp 并降码率
延迟高 降低分辨率或 GOP;使用 tune=zerolatency

7. 一键脚本(懒人版)

保存为 start_hik_push.bat,双击即可运行:

@echo off
title Hikvision → Aliyun RTMP
ffmpeg -re -rtsp_transport tcp ^
  -i "rtsp://admin:Sago0%402024@192.168.1.64:554/Streaming/Channels/101" ^
  -vcodec libx264 -preset ultrafast -tune zerolatency -an ^
  -s 1280x720 -b:v 1200k -f flv ^
  rtmp://<ECS-公网IP>:1945/live/hik1
pause

网站公告

今日签到

点亮在社区的每一天
去签到