Live data from Hacker News

Show HN: Overpass – a self-hosted video live streaming app

github.com

11–20 of 35 posts

Re: Show HN: Overpass – a self-hosted video live streaming app

#11
post #10

This looks badass. I have been thinking about building something just like this for similar reasons. One thing I was considering was using cloudflare workers and durable objects to build the important part. I.e. the fan out of raw video content from producers to consumers. I would also consider building an integrated and LDAP/SAML authentication option for the enterprise licensing tier...

Very interesting! Can you tell me about that Cloudflare Workers setup? Would you have some sort of worker process the ingress video?

Very new to the concept of serverless computing, so I would love to learn more.

Re: Show HN: Overpass – a self-hosted video live streaming app

#12
post #2

Hello HN! Overpass is an app I made for self-hosted video live streaming. I originally made the tool for a friend of mine's Patreon service, as he wished to have a private streaming service just for his subscribers. Unlisted YouTube streams were taken down for copyright issues when he did DJ sets, which became a hassle after a while. I originally started with barebones nginx-rtmp, but found it to be too tedious to as…

This looks great and I hope to deploy it and kick the tires soon, thanks for sharing.

Currently I've been using movienight[1] for this, but it sounds like your app is much more feature rich.

[1] https://github.com/zorchenhimer/MovieNight

Re: Show HN: Overpass – a self-hosted video live streaming app

#13
post #11
post #10

This looks badass. I have been thinking about building something just like this for similar reasons. One thing I was considering was using cloudflare workers and durable objects to build the important part. I.e. the fan out of raw video content from producers to consumers. I would also consider building an integrated and LDAP/SAML authentication option for the enterprise licensing tier...

Very interesting! Can you tell me about that Cloudflare Workers setup? Would you have some sort of worker process the ingress video? Very new to the concept of serverless computing, so I would love to learn more.

The workers would handle both ingress and egress. The ingress feed should already be encoded for distribution by whatever system is pushing it. The durable objects in the middle would hold a moderate buffer of content which would be referred to on the egress routes. Archival would be a separate system that listens to all egress sessions at the same time. A 3rd websocket CF worker route could be used to exclusively manage video player/streamer/editor events.

One low-latency system I had in mind would go: individual streamer frames (jpeg) -> PUT CF route -> route adds durable object per frame -> GET CF route w/ current frame counter returns newer frames -> Client web UI displays the jpeg frames with appropriate timing via a 2-3 frame buffer.

This has much higher bandwidth requirements due to the loss of interframe compression effects, but it is compatible with 100% of platforms and very fast. It also allows for very simple seeking.

If you are willing to leverage cloudflare and your target audience can handle a ~25 mbps download requirement, then this model could fit. You can get more mileage per bps if you reduce quality/resolution too.

You can also put some intelligence in the stream path. Distributed compositing pipelines and other fun ideas. It's infinitely easier when everything is natively "just an image". Maybe some server's only job is to draw the hud on top of a frame received from a datacenter across the street.

Re: Show HN: Overpass – a self-hosted video live streaming app

#14
post #13
post #11

Earlier quoted context omitted.

Very interesting! Can you tell me about that Cloudflare Workers setup? Would you have some sort of worker process the ingress video? Very new to the concept of serverless computing, so I would love to learn more.

The workers would handle both ingress and egress. The ingress feed should already be encoded for distribution by whatever system is pushing it. The durable objects in the middle would hold a moderate buffer of content which would be referred to on the egress routes. Archival would be a separate system that listens to all egress sessions at the same time. A 3rd websocket CF worker route could be used to exclusively ma…

so you're going to playback mjpeg to people? I don't think this is going to work very well. at the very least it needs to be a shipping video in the form of a remotely modern codec/container to people.

Re: Show HN: Overpass – a self-hosted video live streaming app

#15
post #13

Earlier quoted context omitted.

The workers would handle both ingress and egress. The ingress feed should already be encoded for distribution by whatever system is pushing it. The durable objects in the middle would hold a moderate buffer of content which would be referred to on the egress routes. Archival would be a separate system that listens to all egress sessions at the same time. A 3rd websocket CF worker route could be used to exclusively ma…

so you're going to playback mjpeg to people? I don't think this is going to work very well. at the very least it needs to be a shipping video in the form of a remotely modern codec/container to people.

> I don't think this is going to work very well.

I've built prototypes using libjpegturbo for encoding to web clients and it works out fantastically in my experience.

I don't see a requirement to ship anything remotely modern if the desired product experience is achieved regardless. No one said it always has to work on every class of device everywhere for every type of user. Maybe someone just wants something that functions in any reasonable web browser and isnt interested in directly competing with twitch.tv.

Re: Show HN: Overpass – a self-hosted video live streaming app

#16
post #15

Earlier quoted context omitted.

so you're going to playback mjpeg to people? I don't think this is going to work very well. at the very least it needs to be a shipping video in the form of a remotely modern codec/container to people.

> I don't think this is going to work very well. I've built prototypes using libjpegturbo for encoding to web clients and it works out fantastically in my experience. I don't see a requirement to ship anything remotely modern if the desired product experience is achieved regardless. No one said it always has to work on every class of device everywhere for every type of user. Maybe someone just wants something that fu…

I mean, I get what you're going for but there's a reason why nobody does this. mjpeg is just about the most inefficient thing you could possibly do. Maybe it would be fine if the desired product experience is "make it look like an animated gif and take 40 gigabytes to store an hour of video"

edit: not trying to discourage! Just saying this is a pretty well-trodden path and mjpeg is mostly abandoned despite ubiquitous support for it

Re: Show HN: Overpass – a self-hosted video live streaming app

#17
post #2

Hello HN! Overpass is an app I made for self-hosted video live streaming. I originally made the tool for a friend of mine's Patreon service, as he wished to have a private streaming service just for his subscribers. Unlisted YouTube streams were taken down for copyright issues when he did DJ sets, which became a hassle after a while. I originally started with barebones nginx-rtmp, but found it to be too tedious to as…

Why can't your friend use Discord streaming? Don't think there's copyright takedowns,

Re: Show HN: Overpass – a self-hosted video live streaming app

#18
post #2

Hello HN! Overpass is an app I made for self-hosted video live streaming. I originally made the tool for a friend of mine's Patreon service, as he wished to have a private streaming service just for his subscribers. Unlisted YouTube streams were taken down for copyright issues when he did DJ sets, which became a hassle after a while. I originally started with barebones nginx-rtmp, but found it to be too tedious to as…

Why can't your friend use Discord streaming? Don't think there's copyright takedowns,

The quality isn't good enough. We also wanted an archive of every stream we've done.
Post reply on HN