WebRTC 还能实现文件传输? 看看这个 webrtc应用场景。

26 阅读1分钟

最近在工作中发现,同事之间传输文件非常麻烦,特别是稍微大的视频文件。微信还不支持,虽然 localsend 可以解决局域网发送问题,但是 localsend 不支持批量发送给多个用户,并且如果在不同网络下就抓瞎了。

所以我就在想能不能实现不需要服务器就能快速预览,发送文件的功能。

找来找去也就 WebRTC 基于 NAT 打洞,可以时间 p2p 直连,并且浏览器支持的较好,是个事实意义上的标准。

先列下问题:

  1. 如何发送文件数据?因为 WebRTC 主要是做音视频的。
  2. 如何实现视频预览?
  3. 如何时间 PDF,TXT,图片的预览?

首先说下 WebRTC 的 DataChannel 可以发送二进制数据然后在本地合并成文件并下载。 这样传输问题就解决了。

视频预览问题,思路是这样的,在发送端先将视频读取成流然后切成一块块的数据通过,转码为标准的 mp4 + h264 视频发送到浏览器端,浏览器使用 MSE 动态接收,就能实现直接播放。

图片,PDF 这些就好办了一般都不会很多直接一次性传输,浏览器接收创建一个临时 blob地址直接展示。

对了忘记介绍这款产品 EteDrop (etedrop.com) 近期有开源计划

image.png