肃革~ 2024-01-20 12:11 采纳率: 0%
浏览 6

摄像头与手机通信P2P技术讨论

大家好,我最近在做一个以嵌入式摄像头为核心的硬件产品,想问下将摄像头设备跟手机App进行通信数据传输该如何实现。

我目前有几个初步的方案,不知道大家有什么建议?

使用P2P技术,也就是设备和手机采用点对点连接。这样可以避免服务器,但是需要自己研究内网穿透等网络技术,实现起来较为复杂。
借助云服务器中转。让设备和App都连接云服务器,然后在服务器内部转发数据。这种方式最简单,但是会有一定的服务器成本。
在路由器上配置端口映射,映射设备内网端口到外网,然后App直接访问外网映射后的端口。这种方式可以避免服务器,但需要路由器支持端口映射,并且也有一定的网络配置工作量。
采用4G网络让设备直接连公网,App直接访问设备的公网IP。这种方式设备成本会高一些。
我目前更偏向使用P2P,不知道大家对这几种连接方式有什么建议或经验分享吗?

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-01-20 14:02
    关注

    【以下回答由 GPT 生成】

    寻求摄像头与手机通信P2P技术讨论

    P2P技术的选择

    根据您的需求,您可以考虑使用P2P技术来实现摄像头设备与手机App的通信。以下是几种可能的解决方案和建议:

    1. P2P连接
    2. P2P连接可以避免使用服务器,但需要解决内网穿透等网络技术的问题。您可以考虑使用STUN/TURN服务器来帮助解决NAT穿透的问题。下面是一个用于P2P连接的简单示例代码:

    ```javascript // 创建P2P连接 var configuration = { iceServers: [{urls: "stun:stun.example.org"}] }; var peerConnection = new RTCPeerConnection(configuration);

    // 添加视频流 navigator.mediaDevices.getUserMedia({ video: true, audio: true }) .then(stream => { var videoTrack = stream.getVideoTracks()[0]; peerConnection.addTrack(videoTrack, stream); }) ```

    1. 云服务器中转
    2. 如果您倾向于简单的实现方式,并愿意承担一定的服务器成本,可以考虑使用云服务器进行中转。以下是一个简单的服务器端转发数据的例子(使用Node.js和WebSocket):

    ```javascript // 服务器端 const WebSocket = require('ws'); const wss = new WebSocket.Server({ port: 8080 });

    wss.on('connection', function connection(ws) { ws.on('message', function incoming(message) { // 转发数据给摄像头设备 // ... }); }); ```

    1. 路由器端口映射
    2. 如果您希望避免服务器成本,可以考虑在路由器上配置端口映射,将设备内网端口映射到外网。以下是一个简单的端口映射配置示例:

    内网IP地址: 192.168.1.100 内网端口: 8080 外网端口: 8000

    1. 4G网络
    2. 如果您愿意承担设备成本,可以考虑使用4G网络直接连接公网。这将为设备提供直接访问的公网IP。

    以上是一些可能的解决方案和建议,具体选择取决于您的实际需求和可行性考量。希望这些信息能对您有所帮助!



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 1月20日

悬赏问题

  • ¥30 python密码表示
  • ¥15 Flask应用部署到阿里云服务器失败,无法访问网页,问题出在哪里?
  • ¥15 计算个体的IBS遗传距离
  • ¥15 有什么好的直流步进减速电机42的厂家推荐,保持力矩达到0.3N.M
  • ¥15 一道蓝桥杯的题,请问我错在哪里
  • ¥15 关于#android问题,xposed模块找不到so
  • ¥15 UE5.4.2创建C++项目成功,但是编译失败
  • ¥15 华为手机备份nas,airdisk,遇到的空间不足问题。求个详细的解决方案。
  • ¥20 Cknife无法使用
  • ¥15 这个结构体为什么会出错呢?