[{"data":1,"prerenderedAt":271},["ShallowReactive",2],{"project-22919845":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":42,"post_text":44,"what":45,"said":74,"maker_in_thread":152,"shape":162,"grid":165,"attempts":232,"same_week":233,"maker_shows":153,"maker_hidden":263,"reader_version":264,"card":265},"22919845","Pxy","A Go server that proxies websocket livestreams to RTMP servers","title","Show HN: Pxy – A Go server that proxies websocket livestreams to RTMP servers","https:\u002F\u002Fgithub.com\u002Fchuabingquan\u002Fpxy","github.com","chipneverdies",1587340723,2020,133,31,460,3028,16,"notable","infrastructure","streaming proxy server","cli",[24,25,26,27,28],"rtmp","websocket","live streaming","ffmpeg","go","curious",0.012,{"positive":32,"neutral":33,"mixed":34,"critical":35},4,7,0,3,14,{"idea":38,"execution":40,"docs":41},{"positive":35,"critical":39},1,{"positive":34,"critical":39},{"positive":34,"critical":39},[43,34,43,34,34,34,34,35,35,34,34,35,35,39,34,34,43,34,34,43,35,34,35,35,39,39,34],5,null,{"problem":46,"audience":44,"pricing":44,"motivation":44,"time_to_build":44,"stack":54,"openness":72,"stage":73,"team_size":73},{"value":47,"source":48,"evidence":49},"Getting live video from a browser to an RTMP streaming endpoint","commenter",[50],{"id":51,"by":52,"text":53},"22922015","mmcclure","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…",[55,61,68],{"value":56,"source":57,"evidence":58},"Go","maker",[59],{"id":60},"post",{"value":62,"source":48,"evidence":63},"FFmpeg",[64,65],{"id":51,"by":52,"text":53},{"id":66,"by":11,"text":67},"22922611","Hello, I'm the author here, thanks for liking the project! I'm not aware of Kurento prior to your post, it seems pretty nifty, good to explore for future projects! Getting the…",{"value":69,"source":48,"evidence":70},"WebSocket",[71],{"id":51,"by":52,"text":53},"open_source","unknown",{"praise":75,"objections":91,"requests":103,"questions":118,"alternatives":133},[76,84],{"value":77,"source":48,"evidence":78},"Simple, lightweight way to go from browser to RTMP",[79,80],{"id":51,"by":52,"text":53},{"id":81,"by":82,"text":83},"22920468","iameli","Cool project! I've done similar things with Kurento acting as a WebRTC peer to proxy WebRTC --> RTMP before but this is a lot more lightweight. One thing I'd love to see at some…",{"value":85,"source":48,"evidence":86},"Good name",[87],{"id":88,"by":89,"text":90},"22924825","amerine","When we first started replacing our Erlang router for Heroku Private Spaces with a go-based one, the name of the POC was ‘pxy’. Very big fan of the name. Yours seems fun too. \u003C3",[92,99],{"value":93,"source":48,"evidence":94},"Uses FFmpeg via shell, limiting stream monitoring and separate audio\u002Fvideo input",[95],{"id":96,"by":97,"text":98},"22922089","alufers","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…",{"value":100,"source":48,"evidence":101},"Browser MediaRecorder video quality varies across browsers",[102],{"id":51,"by":52,"text":53},[104,111],{"value":105,"source":48,"evidence":106},"Support SRT listener mode",[107],{"id":108,"by":109,"text":110},"22923363","ParadisoShlee","OP, could you support SRT? Listener mode would be really interesting.",{"value":112,"source":48,"evidence":113},"Reverse direction: RTMP to websockets",[114],{"id":115,"by":116,"text":117},"22920347","Linkd","I think the inverse of this (RTMP to Websockets) would be more interesting.",[119,126],{"value":120,"source":48,"evidence":121},"What video sources send websocket streams to this proxy",[122],{"id":123,"by":124,"text":125},"22920192","difosfor","What kind of video sources provide output via websockets to be proxied to RTMP? OBS and other streaming video tools usually support RTMP themselves and browsers only support…",{"value":127,"source":48,"evidence":128},"Can it serve a Raspberry Pi camera",[129],{"id":130,"by":131,"text":132},"22920399","taf2","Can this be used as a web front end for say a raspberry pi camera ?",[134,141,145],{"value":135,"source":48,"evidence":136},"RTSPtoWSMP4f and RTSPtoWebRTC",[137],{"id":138,"by":139,"text":140},"22921564","scottlamb","In the same genre of Go video streaming adapter servers. Here are a couple neat projects which stream from RTSP (as used by eg security cameras) to either fragmented .mp4 files…",{"value":142,"source":48,"evidence":143},"Kurento",[144],{"id":81,"by":82,"text":83},{"value":146,"source":48,"evidence":147},"Axis media-stream-player-js",[148],{"id":149,"by":150,"text":151},"22927408","SahAssar","A similar thing is used by Axis security cameras but with RTSP. The frontend bits are open source here: https:\u002F\u002Fgithub.com\u002FAxisCommunications\u002Fmedia-stream-player-js",{"comments":43,"answered":153,"key":154},2,[155,158,161],{"id":156,"text":157},"22922647","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…",{"id":159,"text":160},"22935516","Will do!",{"id":66,"text":67},{"commenters":163,"max_depth":32,"maker_replies":43,"first_comment_mins":35,"lifespan_hours":164},18,116,[166,168,170,173,175,177,180,183,185,186,189,192,195,197,199,203,206,207,209,210,212,215,217,220,222,225,230],[51,34,43,167,52,34],"project\u002Fpositive\u002Fidea",[156,34,34,169,11,39],"maker\u002Fpositive\u002Fdocs",[171,34,43,172,52,34],"22926421","maker\u002Fpositive\u002Fnone",[159,34,34,174,11,39],"maker\u002Fneutral\u002Fnone",[138,39,34,176,139,34],"other\u002Fneutral\u002Fnone",[178,39,34,176,179,34],"22922016","kingosticks",[181,39,34,176,182,34],"22922060","bluejekyll",[123,153,35,184,124,34],"project\u002Fneutral\u002Fidea",[115,153,35,184,116,34],[187,153,34,176,188,34],"22921239","mgamache",[190,153,34,176,191,34],"22921700","emmelaich",[193,153,35,194,82,34],"22920444","project\u002Fneutral\u002Fexecution",[196,153,35,194,188,34],"22921258",[96,35,39,198,97,34],"project\u002Fcritical\u002Fexecution",[200,35,34,201,202,34],"22922101","commenter\u002Fneutral\u002Fexecution","nightfly",[204,35,34,205,97,34],"22972483","other\u002Fneutral\u002Fperformance",[81,32,43,167,82,34],[66,32,34,208,11,39],"maker\u002Fpositive\u002Fidea",[149,43,34,176,150,34],[88,211,43,167,89,34],6,[213,33,35,194,214,34],"22921095","cosmotic",[216,33,34,194,11,39],"22922583",[108,218,35,219,109,34],8,"maker\u002Fneutral\u002Fidea",[130,221,35,184,131,34],9,[223,221,39,224,188,34],"22921251","project\u002Fcritical\u002Fidea",[226,227,39,228,229,34],"22919860",10,"project\u002Fcritical\u002Fdocs","detaro",[231,227,34,174,11,39],"22919930",[],[234,239,244,249,254,259],{"id":235,"name":236,"points":237,"category":238},"22898653","A basketball hoop to maximize shots that go in [video]",971,"creative",{"id":240,"name":241,"points":242,"category":243},"22936742","Intention",519,"productivity",{"id":245,"name":246,"points":247,"category":248},"22933697","Pattern.css",332,"dev_tools",{"id":250,"name":251,"points":252,"category":253},"22899654","ZoomerBackgrounds",327,"consumer_social",{"id":255,"name":256,"points":257,"category":258},"22907200","WikiWho",246,"data",{"id":260,"name":261,"points":262,"category":248},"22919843","Tip",242,false,"v2",{"id":266,"name":5,"line":6,"ai":263,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":267,"top":18,"kw":268,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":269,"url":9,"mix":270,"praise":77,"objection":93,"sub":21},22919845,0.01,[24,25,26,27,28],"505000033003310050053033110",[32,33,34,35],1794036589339]