matrix-org / matrix-spec

The Matrix protocol specification
Apache License 2.0
188 stars 94 forks source link

Streaming file transfers #432

Open ara4n opened 5 years ago

ara4n commented 5 years ago

Once upon a time, before Matrix, we had a glorious feature of streaming file transfers - where one client would HTTP POST the file using Range headers as the other would HTTP GET it with Range headers also. It worked surprisingly well; good enough to livestream video and do low-latency push-to-talk whilst leaving copies of files on the media repo.

It'd be nice one day to have this in Matrix too. This would mean ensuring that we can send events before the media has finished up loading.

ara4n commented 5 years ago

related (but not the same): matrix-org/matrix-spec#189

ShadowJonathan commented 2 years ago

Related https://github.com/matrix-org/synapse/issues/4780

ShadowJonathan commented 1 year ago

Also related, given that MSC4016 has been proposed; MSC3469 aims to solve this problem in current Matrix, by giving the assurance to clients that they can send HTTP Range: requests to media endpoints, and get chunked responses.

ara4n commented 8 months ago

MSC3469 doesn't solve the problem of streamed uploads (or E2EE streaming), which MSC4016 addresses.

I've done an initial implementation at https://github.com/matrix-org/matrix-encrypt-attachment/pull/26