[{"data":1,"prerenderedAt":348},["ShallowReactive",2],{"project-18129892":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":28,"sentiment":29,"stance_mix":30,"scored_comments":33,"aspects":34,"strip":42,"post_text":44,"what":45,"said":88,"maker_in_thread":194,"shape":203,"grid":207,"attempts":311,"same_week":312,"maker_shows":205,"maker_hidden":341,"reader_version":342,"card":343},"18129892","IPFS HLS Converter","A website that converts any IPFS file to HLS and reups it to IPFS","title","Show HN: A website that converts any IPFS file to HLS and reups it to IPFS","https:\u002F\u002Fipfs-converter.com\u002F","ipfs-converter.com","timdaub",1538572884,2018,126,45,333,2155,16,"notable","infrastructure","video transcoding service","web_app",[24,25,26,27],"ipfs","hls","video transcoding","streaming","curious",0,{"positive":31,"neutral":32,"mixed":29,"critical":31},3,17,23,{"performance":35,"execution":36,"idea":38,"docs":40,"design":41},{"positive":29,"critical":29},{"positive":29,"critical":37},1,{"positive":39,"critical":37},2,{"positive":29,"critical":37},{"positive":29,"critical":29},[29,31,31,29,31,31,29,31,31,29,31,29,31,29,29,37,29,29,31,29,43,31,29,37,29,29,29,29,29,43,31,31,31,31,29,31,29,31,29,31],5,null,{"problem":46,"audience":54,"pricing":44,"motivation":61,"time_to_build":44,"stack":65,"openness":85,"stage":86,"team_size":87},{"value":47,"source":48,"evidence":49},"Browser video streaming of IPFS files needs a stream-friendly format like HLS.","commenter",[50],{"id":51,"by":52,"text":53},"18131298","toyg","IPFS is a distributed p2p filesystem. The idea, I believe, is that you can put your big media files on it, to share bandwidth and (iiuc) reduce censorship risks; but it's better…",{"value":55,"source":56,"evidence":57},"Developers building IPFS-based sites that let users upload and stream video.","maker",[58],{"id":59,"by":11,"text":60},"18133749","I built this mainly because I was feeling the pain while implementing a website for a customer that is allowing their users to upload and stream files in the browser. As the file…",{"value":62,"source":56,"evidence":63},"Felt the pain of streaming user uploads in the browser for a customer project; saw it as a possible SaaS.",[64],{"id":59,"by":11,"text":60},[66,73,79],{"value":67,"source":68,"evidence":69},"Node.js \u002F JavaScript","inferred",[70],{"id":71,"by":11,"text":72},"18130672","Fantastic question. I'm not even doing that yet. How embarrassing! Right now I'm just spawning sub processes like crazy and hope they don't overwhelm my machine. In the future, I…",{"value":74,"source":56,"evidence":75},"FFmpeg",[76],{"id":77,"by":11,"text":78},"18134817","Yes, it requires resources. I currently run FFMPEG for every video I get. Currently nothing is stopping you from uploading a 10TB video except that maybe my DigitalOcean droplet…",{"value":80,"source":56,"evidence":81},"DigitalOcean droplet",[82],{"id":83,"by":11,"text":84},"18129958","Hi this is Tim. I made this website. It's currently running on a $5 droplet on DigitalOcean so conversions will take a while. I'm testing out the waters here on HN to see if…","open_source","prototype","solo",{"praise":89,"objections":104,"requests":127,"questions":153,"alternatives":175},[90,97],{"value":91,"source":48,"evidence":92},"Interesting use of IPFS as an API.",[93],{"id":94,"by":95,"text":96},"18132394","shazow","Is this one of the first examples of an IPFS-based API? This is very cool. I like that you can take something that is effectively on your disk, ping some endpoint, and it will…",{"value":98,"source":48,"evidence":99},"Cool project, good to see IPFS used.",[100],{"id":101,"by":102,"text":103},"18130593","asdkhadsj","Cool project! Love IPFS usage :)",[105,112,119],{"value":106,"source":48,"evidence":107},"Unclear what the utility is.",[108],{"id":109,"by":110,"text":111},"18131172","fabricexpert","What's the utility of this? The site is down and github doesn't really explain why you would do this.",{"value":113,"source":48,"evidence":114},"No limit on upload size, so it could be abused for resources.",[115],{"id":116,"by":117,"text":118},"18133886","vortico","Does this require resources on your server? (Apologies because I don't understand what this is.) What's to stop me from uploading 10TB of video files and using all your resources?",{"value":120,"source":48,"evidence":121},"Site was down and the page is blank without JavaScript.",[122,123],{"id":109,"by":110,"text":111},{"id":124,"by":125,"text":126},"18135288","carapace","Blank page with JS disabled.",[128,139,146],{"value":129,"source":48,"evidence":130},"Use a job queue instead of spawning subprocesses.",[131,135],{"id":132,"by":133,"text":134},"18130648","haywirez","What did you end up using for queueing conversion jobs?",{"id":136,"by":137,"text":138},"18131223","tyingq","Haven't used it, but \"bull\" shows transcoding as their example, so I assume they've run through your use case: https:\u002F\u002Fgithub.com\u002FOptimalBits\u002Fbull",{"value":140,"source":48,"evidence":141},"Skip transcoding when the video is already H.264\u002FAAC.",[142],{"id":143,"by":144,"text":145},"18130944","jgh","Why are you transcoding all the time? You could probably save your little droplet a bit of heartache by using ffprobe to check if the video is already h264 (or h265)+aac and just…",{"value":147,"source":48,"evidence":148},"Do client-side transcoding with ffmpeg.js.",[149],{"id":150,"by":151,"text":152},"18133866","anderspitman","Did you look into using something like ffmpeg.js to do the heavy lifting client-side? Note I have no idea if ffmpeg.js supports all the features you need (ie HLS).",[154,161,168],{"value":155,"source":48,"evidence":156},"Why HLS rather than DASH?",[157],{"id":158,"by":159,"text":160},"18136635","AgentME","Why HLS rather than DASH? Is there some way that HLS is a better fit for IPFS? Or is HLS easier to use, or more well supported? (Doesn't YouTube use DASH?)",{"value":162,"source":48,"evidence":163},"What is HLS?",[164],{"id":165,"by":166,"text":167},"18132239","ilaksh","The thing that doesn't make sense to me is that you say any file but then seem to be doing video-specific stuff to it. So did you mean to say any _video_ file? Also, what is HLS?",{"value":169,"source":48,"evidence":170},"How does the browser load IPFS data over websockets?",[171],{"id":172,"by":173,"text":174},"18135037","xg15","Question from an IPFS noob: When I run the demo, the video plays as expected. However, I wanted to check the network tab to see what it's doing under the hood. Based on the…",[176,183,190],{"value":177,"source":48,"evidence":178},"Eternum (IPFS pinning API)",[179],{"id":180,"by":181,"text":182},"18132429","diggan","No, I don't think it's the first example. https:\u002F\u002Fwww.eternum.io\u002F was one that was before, but I'm sure there are others. We keep a list of some applications and other things…",{"value":184,"source":48,"evidence":185},"IPFessay",[186],{"id":187,"by":188,"text":189},"18135914","StavrosK","I would agree with this, Eternum isn't so much an IPFS-based API as an API for helping with IPFS pinning. I'd say IPFessay (https:\u002F\u002Fgitlab.com\u002Fstavros\u002FIPFessay) is much closer to…",{"value":191,"source":48,"evidence":192},"Bull job queue",[193],{"id":136,"by":137,"text":138},{"comments":195,"answered":196,"key":197},10,8,[198,199,200],{"id":83,"text":84},{"id":71,"text":72},{"id":201,"text":202},"18131359","That's a great suggestion. I'll add that to my list of todos!",{"commenters":204,"max_depth":205,"maker_replies":195,"first_comment_mins":206,"lifespan_hours":33},28,6,9,[208,210,214,216,218,219,221,224,227,230,231,233,234,236,238,241,243,245,247,251,253,256,259,261,262,264,265,268,272,276,278,280,283,284,287,289,290,292,295,296,298,300,302,304,308],[83,29,29,209,11,37],"maker\u002Fneutral\u002Fnone",[211,29,31,212,213,29],"18130563","project\u002Fneutral\u002Fperformance","donaltroddyn",[132,29,31,215,133,29],"maker\u002Fneutral\u002Fexecution",[71,29,29,217,11,37],"project\u002Fneutral\u002Fexecution",[136,29,31,215,137,29],[220,29,31,215,133,29],"18131435",[222,29,29,223,137,29],"18131515","commenter\u002Fneutral\u002Fnone",[225,29,29,223,226,29],"18132791","dvlsg",[228,29,31,215,229,29],"18132784","vorticalbox",[143,29,31,212,144,29],[201,29,29,232,11,37],"maker\u002Fneutral\u002Fperformance",[150,29,31,212,151,29],[235,29,29,209,11,37],"18134809",[172,37,31,237,173,29],"project\u002Fneutral\u002Fnone",[239,37,29,223,240,29],"18136155","odensc",[242,37,29,223,173,29],"18137776",[109,39,37,244,110,29],"project\u002Fcritical\u002Fidea",[51,39,31,246,52,29],"project\u002Fneutral\u002Fidea",[248,39,29,249,250,29],"18131489","other\u002Fneutral\u002Fnone","solarkraft",[252,39,29,209,11,37],"18131346",[254,39,31,237,255,29],"18132721","joshpearson",[257,39,29,223,258,29],"18133144","humblebee",[94,31,43,260,95,29],"project\u002Fpositive\u002Fidea",[180,31,31,246,181,29],[263,31,29,223,95,29],"18132459",[187,31,29,249,188,29],[165,266,37,267,166,29],4,"project\u002Fcritical\u002Fdocs",[269,266,29,270,271,29],"18132277","other\u002Fneutral\u002Fdocs","cobbzilla",[273,266,29,274,275,29],"18132338","commenter\u002Fneutral\u002Fdocs","mnr",[277,266,29,274,258,29],"18132364",[279,266,29,223,275,29],"18139160",[281,266,29,282,11,37],"18132701","maker\u002Fneutral\u002Fdocs",[101,43,43,260,102,29],[285,205,31,212,286,29],"18130741","stiangrindvoll",[116,288,31,212,117,29],7,[77,288,29,212,11,37],[158,196,31,291,159,29],"project\u002Fneutral\u002Fdesign",[293,206,31,246,294,29],"18133684","fiatjaf",[59,206,29,246,11,37],[297,206,31,209,294,29],"18134559",[299,206,29,209,11,37],"18134803",[301,206,31,209,294,29],"18134995",[303,206,29,209,11,37],"18138211",[305,195,43,306,307,29],"18130714","project\u002Fpositive\u002Fnone","bpg_92",[124,309,37,310,125,29],11,"project\u002Fcritical\u002Fexecution",[],[313,318,322,327,332,336],{"id":314,"name":315,"points":316,"category":317},"18123058","Shipstreams",202,"consumer_social",{"id":319,"name":320,"points":321,"category":20},"18115256","MicroMDM",146,{"id":323,"name":324,"points":325,"category":326},"18111721","Kabas",138,"languages",{"id":328,"name":329,"points":330,"category":331},"18113779","Hyperfiddle",121,"dev_tools",{"id":333,"name":334,"points":335,"category":331},"18125789","ekill",107,{"id":337,"name":338,"points":339,"category":340},"18130562","Should I Send It?",91,"productivity",false,"v2",{"id":344,"name":5,"line":6,"ai":341,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":345,"maker":11,"domain":10,"tier":19,"attempts":29,"strip":346,"url":9,"mix":347,"praise":91,"objection":106,"sub":21},18129892,[24,25,26,27],"0330330330303001003053010000053333030303",[31,32,29,31],1794036570167]