Live data from Hacker News

Show HN: Pxy – A Go server that proxies websocket livestreams to RTMP servers

github.com

31–34 of 34 posts

Re: Show HN: Pxy – A Go server that proxies websocket livestreams to RTMP servers

#31

Awesome to see this on the front page! I’ve been chatting with the OP for a few days and this is based on a Node.js PoC I wrote for a blog post on the state of broadcasting live from a browser[1]. This is, IMO, the simplest way to be able to go from a modern browser to an RTMP endpoint. You could try and do server-side WebRTC using a project like Pions[2], or use headless Chrome and be a peer, but both of those come…

Hey Matthew, thanks for the insights you've been providing to me thus far, I've added [1] to the references in the project's README! Meanwhile, there's another well-explained tutorial that complements [1] along with a code walkthrough to implement something similar in Node.js. https://github.com/fbsamples/Canvas-Streaming-Example/blob/m...

Thank you! Really appreciate the link.

I'm really interested to see where this project goes, please keep me in the loop!

Re: Show HN: Pxy – A Go server that proxies websocket livestreams to RTMP servers

#33

Earlier quoted context omitted.

Hey Matthew, thanks for the insights you've been providing to me thus far, I've added [1] to the references in the project's README! Meanwhile, there's another well-explained tutorial that complements [1] along with a code walkthrough to implement something similar in Node.js. https://github.com/fbsamples/Canvas-Streaming-Example/blob/m...

Thank you! Really appreciate the link. I'm really interested to see where this project goes, please keep me in the loop!

Will do!

Re: Show HN: Pxy – A Go server that proxies websocket livestreams to RTMP servers

#34
post #23

I see you are invoking Ffmpeg via the shell. I also tried steaming to Youtube from Go and had to resort to the same solution. It's a shame there isn't a usable library for implementing a RTMP client in Go. Using Ffmpeg from the shell is very limiting because there is no way to monitor the status of the stream or to provide audio and video separately using stdin.

Couldn't you use named pipes for passing separate streams of input?

I tried doing that, but I ran into some performance problems due to streaming raw video. Instead I streamed the audio via stdin and created a HTTP MJPEG server listening on localhost and pointed ffmpeg there. I was limited to maybe 10 FPS top and the JPEG encoding overhead was also getting noticeable, but I limited the framerate to 1 per second because it was mostly static (song name and current/remaining time of the track).
Post reply on HN