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

如何在Flutter应用中接入海康威视IP摄像头并显示实时画面?

解决Flutter接入海康威视IP摄像头实时画面的方案

方案1:通过RTSP流+flutter_vlc_player实现(推荐)

海康威视IP摄像头原生支持RTSP协议,你可以直接拼接RTSP地址拉取实时流,用flutter_vlc_player组件渲染到Container中——这个库支持空安全,适配最新Flutter版本,没有旧组件兼容问题。

步骤1:添加依赖

在pubspec.yaml中加入以下依赖,执行flutter pub get完成安装:

dependencies:
  flutter_vlc_player: ^7.0.0 # 建议使用当前最新版本

步骤2:构造海康威视RTSP地址

根据你的摄像头参数拼接固定格式的地址:

  • 主码流(清晰度高,占用带宽大):rtsp://[用户名]:[密码]@[IP地址]:[端口]/Streaming/Channels/101
  • 子码流(适合移动端,带宽占用小):rtsp://[用户名]:[密码]@[IP地址]:[端口]/Streaming/Channels/102
    示例:若用户名admin、密码12345、IP192.168.1.100、端口554,子码流地址为rtsp://admin:12345@192.168.1.100:554/Streaming/Channels/102

步骤3:在Container中渲染实时画面

将VlcPlayer组件嵌套进目标Container,示例代码:

import 'package:flutter/material.dart';
import 'package:flutter_vlc_player/flutter_vlc_player.dart';

class CameraView extends StatefulWidget {
  const CameraView({super.key});

  @override
  State<CameraView> createState() => _CameraViewState();
}

class _CameraViewState extends State<CameraView> {
  late VlcPlayerController _cameraController;

  @override
  void initState() {
    super.initState();
    // 初始化控制器,替换为你的RTSP地址
    _cameraController = VlcPlayerController.network(
      'rtsp://admin:12345@192.168.1.100:554/Streaming/Channels/102',
      hwAcc: HwAcc.full,
      autoPlay: true,
      options: VlcPlayerOptions(),
    );
  }

  @override
  void dispose() {
    _cameraController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        width: 300, // 自定义容器宽度
        height: 200, // 自定义容器高度
        child: VlcPlayer(
          controller: _cameraController,
          aspectRatio: 16 / 9, // 匹配摄像头画面比例,可按需调整
          placeholder: const Center(child: CircularProgressIndicator()),
        ),
      ),
    );
  }
}

注意事项

  • 确保设备与摄像头处于同一办公楼内网
  • 若摄像头端口非默认554,替换为实际端口
  • 若RTSP验证失败,检查用户名密码是否正确,或登录摄像头Web后台确认RTSP协议已开启

方案2:海康威视开放SDK原生桥接(进阶)

如果需要云台控制、录像回放等高级功能,可使用海康官方原生SDK,通过Flutter平台通道(Method Channel)实现跨端调用:

  • 安卓端集成海康Android SDK
  • iOS端集成海康iOS SDK
    此方案需编写原生桥接代码,适合有原生开发经验的场景。

备选库

若flutter_vlc_player存在兼容性问题,可尝试better_player,它同样支持RTSP流播放,且兼容空安全。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 00:10:33