mantou132 / nesbox

Online multiplayer games platform
https://nesbox.xianqiao.wang/
MIT License
387 stars 33 forks source link

使用 WebCodecs API 传输视频流 #198

Closed mantou132 closed 1 year ago

mantou132 commented 2 years ago

从 canvas 捕获视频流会有颜色失真的问题。 所以现在使用 DataChannel 逐帧传递 qoi 压缩数据,这似乎对网络要求比较高,不然会降低帧率或者有较大延时。

使用 WebCodec API 自行编码视频流是否可以解决最开始颜色失真的问题呢?

https://web.dev/webcodecs/ https://w3c.github.io/webcodecs/ https://web.dev/mediastreamtrack-insertable-media-processing/ https://w3c.github.io/mediacapture-transform/

maggch97 commented 1 year ago

传输视频流单路现在大概占用多大带宽?

mantou132 commented 1 year ago

@maggch97 不好意思,现在才看到

每帧大约有 20kb,不过现在传输有两种优化方案:

https://github.com/mantou132/nesbox/tree/feat/media-stream 试过 WebCodec,好像还是有颜色失真的问题,不过最主要的还是有音画不同步问题。