V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dielianxiang
V2EX  ›  程序员

端对端的图片实时传输预览

  •  
  •   dielianxiang · 2018-11-07 09:55:13 +08:00 · 2868 次点击
    这是一个创建于 2208 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各位:

    上午好。

    咨询一个技术问题,希望大家给点意见。

    需求:我们现在设备都是通过 4G 上网,设备会每秒约 10-15 生成机器和信号图片,然后运营和售后希望能在 pad 上面实时看到这些图片,就是图片生成后立刻实时查看。

    解决方案:

    1. 第一我想到的是利用 websocket 建立端对端的连接,一旦设备有图片,立即推送到 pad 端。目前还没有验证可行性,主要是传输数据量大的情况下是否可行。

    2. 第二是服务器端建立一个 rtmp 服务器,设备推流,pad 端观看。这个方案对设备端的要求较高,需要进行编解码以及包的封装和推流。我们的设备端是 TI 的低端 A8 芯片。可能性能会有所降低。

    不知道各位大佬有没有更成熟的方案?

    20 条回复    2018-11-07 15:54:47 +08:00
    NotNil1
        1
    NotNil1  
       2018-11-07 10:07:22 +08:00
    弄个 tg 机器人
    dielianxiang
        2
    dielianxiang  
    OP
       2018-11-07 10:20:28 +08:00
    @ljtletters tg 是什么?
    dielianxiang
        3
    dielianxiang  
    OP
       2018-11-07 10:21:28 +08:00
    @ljtletters telegram?
    dielianxiang
        4
    dielianxiang  
    OP
       2018-11-07 10:23:25 +08:00
    @ljtletters TG 需要翻墙才能使用,很明显不行。
    knightlhs
        5
    knightlhs  
       2018-11-07 10:26:55 +08:00
    第一种方案设备端 通过 cdn 网络上传图片 然后回传 图片地址给 服务器 服务器把图片地址通过 MQ 转发
    这样不需要太高的性能 在不考虑双向操作的情况下不需要 websocket 有 http 的 rest 接口 就能实现
    问题在于 cdn 流量及费用的评估 这个方案相对成本较低
    qiayue
        6
    qiayue  
       2018-11-07 10:47:44 +08:00
    我们设备也是 4G 上网,通过 socket 连接服务器,传图片的二进制数据,我们实测 1280*720 250KB 大小的照片(来自于设备摄像头拍照),网络好的时候,全部传输完成大约是 1500 毫秒。
    同时设备也支持实时视频,用 rtsp 协议,在微信内网页播放,好处是可以实时看到设备周围情况,缺点是时刻在传视频,很耗流量,大约每看 20 分钟左右,就消耗 1G 流量,虽然现在物联网卡的流量很便宜了,也不推荐这样败家。

    不过你们的场景,既然是机器生成的图片,那么是否可以设备上传纯数据,由服务端根据数据生成图片呢?
    Athrob
        7
    Athrob  
       2018-11-07 10:56:42 +08:00
    "设备会每秒约 10-15 生成机器和信号图片" 没看懂
    Athrob
        8
    Athrob  
       2018-11-07 10:57:44 +08:00
    机器生成的话, 参考 @qiayue #6 也可以啊.
    liuhuansir
        9
    liuhuansir  
       2018-11-07 11:12:05 +08:00
    设备会每秒约 10-15 生成机器和信号图片,如果是 1 秒生成 10-15 张图片的话,感觉跟实时视频没区别了吧,只能通过推流这种方案吧
    ericv
        10
    ericv  
       2018-11-07 11:19:19 +08:00
    rtc & webrtc 了解一下
    yujincheng08
        11
    yujincheng08  
       2018-11-07 12:24:36 +08:00
    websocket 可以的。用二进制传输,传输之前压缩一下图片,这样可以降低带宽压力。
    sanggao
        12
    sanggao  
       2018-11-07 12:33:38 +08:00
    websocket 推送消息就可以,为什么要推图片? 设备生成的图片可以实时上传 cdn,服务端接到 websocket 消息去 cdn 拉图片就可以了。
    dielianxiang
        13
    dielianxiang  
    OP
       2018-11-07 15:03:30 +08:00
    @knightlhs 这种方案先上传我不知道会不会慢。据我所知很多聊天图片应该是这么做的吧
    dielianxiang
        14
    dielianxiang  
    OP
       2018-11-07 15:08:45 +08:00
    @qiayue 我目前想的也是这样,既然有你你这个大佬实践,我先用 websocket 方案做。谢谢了哈
    dielianxiang
        15
    dielianxiang  
    OP
       2018-11-07 15:09:58 +08:00
    @yujincheng08 谢谢
    dielianxiang
        16
    dielianxiang  
    OP
       2018-11-07 15:10:50 +08:00
    @sanggao 我感觉直接推图片是不是快些。
    sarices
        17
    sarices  
       2018-11-07 15:12:02 +08:00
    我不是很理解“设备会每秒约 10-15 生成机器和信号图片”,究竟是什么图片?二进制数据?还是文本生成图片?
    dielianxiang
        18
    dielianxiang  
    OP
       2018-11-07 15:37:57 +08:00
    @sarices 设备会每秒 生成约 10-15 张 合成图片(根据摄像头和算法),
    qiayue
        19
    qiayue  
       2018-11-07 15:45:43 +08:00
    一秒生成十几张,销售能够全部看完吗?
    另外销售会时刻盯着平板看吗?
    dielianxiang
        20
    dielianxiang  
    OP
       2018-11-07 15:54:47 +08:00
    @qiayue 会的。这是调试机器性能用的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2869 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 03:34 · PVG 11:34 · LAX 19:34 · JFK 22:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.