各位佬,想请教一个桌面软件的视频直传架构问题。做了一个 Windows 桌面软件会分析电影。客户端先把电影压缩成多个约2 FPS、480p片段,当前链路是:
客户端 → 自有 Business API → Redis → Worker → 第三方 API → AI模型
这样视频会先经过自有服务器,用户量增加后,服务器成本会很高。
我目前是自建了一个小中转站,有上游api中转站
请问各位佬如何才能让视频不走自己的中转站服务器?直接传给→ 第三方 API → AI模型。
困扰好久了,虚心请教一下各位佬
实不相瞒,完全没有看懂是要干嘛 ![]()
这个,可能必须有服务器中转(鉴权,用户登录,速率限制)然后转发到对应ai服务器或中转才可以吧
你总不能客户端写key吧
所以是必须的
如果直接写客户端里直接给你刷爆了
不经过自己中转站服务器,同时保留自有账号计费且不泄露上游密钥
?你在想什么,这可能吗,必须经过你的服务器才可以哈,这个成本省不了
那有点难搞了
,再请教一下佬,这种服务器一般需要什么配置?感觉对带宽的要求会很高,我的服务承接的全部都是压缩的视频,几十到几百m的视频这样
白话就是,我自建了一个api中转站,但是接的别人的上游,我的客户用途都是分析视频、上传视频,我不想让视频经过自己的服务器
主要是我的客户全部都是上传视频。这个带宽和流量我简直没法估算了
如果可以,客户端把视频转换为图片,比如1s一帧,压缩好传给服务器可能能节省一些算力。然后服务器透传给api?然后一步一步的总结?如果是这样就可以分步做,先总结15个图片(15s)把结果保存下来成为文本,然后再继续总结,最后把所有文本总结好。这样就不用存视频了
然后最后发给用户,这样应该没有问题吧
别的我想不到了
买个oss呢,客户端走oss直传,不知道ai能不能直接从oss下载
这也是个好办法 感谢佬 可以研究研究
理解了一些类似 302 重定向这种吧,openlist 这种项目挂网盘时候有类似方法,扒一下源码去找找灵感
cloudflare的R2了解一下
网页端也是可以对视频进行处理和抽帧和压缩的,但是如果移动端就可能性能不好,容易卡死,但是pc端没有问题
对,客户端性能足够的话,可以考虑(如果我说的那个抽帧发图片不行)就降低帧率和码率再发送?比如把60fps降低到15fps也能降低带宽
现在是压缩到 约2 FPS、480p 我是把整部电影丢进去分析。。。这样仍然压力很大
理论上,你想要让用户点对点传给第三方,需要第三方的api支持。
原理上就是你的控制平面跟第三方要一个临时key,然后把临时key下发给客户端,客户端拿着临时key去找第三方进行上传——某些第三方支持,但第三方不支持的话,这条路是肯定走不通的。
如果在第三方不支持的情况下,退而求其次,就是通过比较廉价的云对象存储服务做中转。
比如Cloudflare R2 / AWS S3 / 阿里云 OSS,用户上传到对此存储之后,触发你的处理逻辑,转发到第三方API。
或者,来点 Cloudflare Workers / 阿里云函数计算 为代表的轻量代理。
上游可以生成临时的key吗,客户端根据文件预估一个预算发给你的服务,然后你生成一个带限额的临时key下发,客户端使用这个临时的key执行调用,并把结果回报给你。问题在于一是暴露了上游接口,二是怎么对账,不能完全信任客户端,还是得上游支持
是的佬 第三方确实支持临时key 但是没给计费功能,用这个临时key用量详情和计费没法统计
楼上那个佬友讲的就是我想说的,要么给个用户个临时链接;要么用户直接上传oss,obs可以直接授信用户一个临时的上传链接,然后把下载链接作为url给模型
佬分析的太详细了。非常感谢。我按这个研究下
我们公司是,
- s3上传 url签名,
- 前端上传(分片上传也行),
- 前端发送上传完成的 API
- 服务端存储 s3 不签名的 link
- 将 get签名好的 link 发送给 AI
对生成一个对象存储预签名URL,返回给客户端然后直传到R2,提交任务时把URL扔过去