[{"data":1,"prerenderedAt":575},["ShallowReactive",2],{"project-19248723":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":45,"post_text":47,"what":48,"said":82,"maker_in_thread":195,"shape":206,"grid":211,"attempts":538,"same_week":539,"maker_shows":44,"maker_hidden":567,"reader_version":568,"card":569},"19248723","subsync","Automatically synchronize subtitles with video","title","Show HN: Automatically synchronize subtitles with video","https:\u002F\u002Fgithub.com\u002Fsmacke\u002Fsubsync","github.com","smacke",1551123976,2019,583,124,23,2195,2,"legend","dev_tools","subtitle alignment tool","cli",[24,25,26,27,28],"subtitle sync","subtitle alignment","srt offset","voice activity detection","fft","curious",0.034,{"positive":32,"neutral":33,"mixed":34,"critical":35},9,35,0,6,50,{"execution":38,"idea":40,"performance":42,"docs":43},{"positive":18,"critical":39},4,{"positive":41,"critical":34},5,{"positive":34,"critical":18},{"positive":44,"critical":34},1,[41,46,34,34,34,34,46,34,34,34,34,34,34,34,46,18,34,46,34,46,46,46,46,46,44,46,46,44,46,41,41,41,44,46,46,41,46,41,46,41],3,null,{"problem":49,"audience":47,"pricing":47,"motivation":47,"time_to_build":47,"stack":60,"openness":79,"stage":80,"team_size":81},{"value":50,"source":51,"evidence":52},"Subtitles that are offset or drift relative to the audio\u002Fvideo","commenter",[53,57],{"id":54,"by":55,"text":56},"19251446","kumarharsh","This blows my mind (like everyone else's here)! While playing digital copies of somewhat older movies (before BluRay rips came into vogue), a problem which surfaces frequently is…",{"id":58,"by":11,"text":59},"19250368","Precisely. If I could more easily get at the raw classifier output of webrtcvad, it should be possible to be even smarter (we could have square waves with any amplitude between…",[61,68,75],{"value":62,"source":51,"evidence":63},"Python",[64],{"id":65,"by":66,"text":67},"19251803","sidcool","This is quite amazing. The code quality overall looks pretty good too. Pleasantly surprised to see it in Python. Was dreading complex C++ code. Thanks for sharing. The code will…",{"value":69,"source":70,"evidence":71},"ffmpeg","maker",[72],{"id":73,"by":11,"text":74},"19249596","Yes! it should work for this too, as long as ffmpeg recognizes the audio format :)",{"value":76,"source":70,"evidence":77},"webrtcvad",[78],{"id":58,"by":11,"text":59},"open_source","launched","unknown",{"praise":83,"objections":98,"requests":129,"questions":160,"alternatives":166},[84,92],{"value":85,"source":51,"evidence":86},"Clever use of FFT to make alignment O(n log n)",[87,91],{"id":88,"by":89,"text":90},"19249974","anyfoo","From the README: \"[...] the naive O(n^2) strategy for scoring all alignments is unacceptable. Instead, we use the fact that \"scoring all alignments\" is a convolution operation…",{"id":65,"by":66,"text":67},{"value":93,"source":70,"evidence":94},"Works well and is fast for long videos",[95],{"id":96,"by":11,"text":97},"19250446","It's actually fairly annoying for subtitles, but it's useful for getting videos in unfamiliar languages to the right ballpark. Afterwards, my go-to so far has been to just…",[99,111,122],{"value":100,"source":70,"evidence":101},"Only corrects constant drift, not varying drift",[102,105,108],{"id":103,"by":11,"text":104},"19250473","Actually, it unfortunately doesn't work if the drift gets worse over time -- so far, it only works with constant drift. Maybe fixing constant 1st derivative drift is the next step!",{"id":106,"by":11,"text":107},"19251979","My guess is that your subtitles don't have a \"fixed drift\". Unfortunately, this project only works for constant drift at the moment -- dynamic subtitle drift is a harder problem…",{"id":109,"by":11,"text":110},"19254224","You are most welcome, although unfortunately it looks like this project doesn't support your use case yet. Right now it can only correct \"constant drift\", although I'll…",{"value":112,"source":51,"evidence":113},"Errors of around 1 second are noticeable",[114,118],{"id":115,"by":116,"text":117},"19250238","loeg","> I have yet to find a case where the automatic synchronization has been off by more than ~1 second That's actually quite bad synchronization error for A-V; maybe it's less…",{"id":119,"by":120,"text":121},"19252723","kowdermeister","> I have yet to find a case where the automatic synchronization has been off by more than ~1 second. 1 second is in the 0 - 1000ms which is still a lot of room for manual…",{"value":123,"source":51,"evidence":124},"Would not pass broadcaster QC tolerances",[125],{"id":126,"by":127,"text":128},"19250550","draz","This is an area I am actively looking into at the moment for my employer. It's an interesting project, and I am excited to see work in this domain. Note that this will not pass…",[130,142,149],{"value":131,"source":51,"evidence":132},"Handle varying drift and frame-rate differences",[133,137,138],{"id":134,"by":135,"text":136},"19250537","ummonk","I'm still waiting for the day there is an automatic synchronizer for the video and audio tracks in VLC. It's so frustrating trying to find the right offset when they get out of…",{"id":54,"by":55,"text":56},{"id":139,"by":140,"text":141},"19249532","dearrifling","Awesome! According to the description of the internals this only works with offsets and doesn't adjust the subtitle's playback speed. I think playback speed variations are not…",{"value":143,"source":51,"evidence":144},"Support for detecting extra scenes in director's cuts",[145],{"id":146,"by":147,"text":148},"19249554","kozikow","An even harder and cooler problem to solve would be finding extra scenes. Sometimes subtitle or movie have slightly different \"cut\" (e.g. directors cut) and there are some extra…",{"value":150,"source":51,"evidence":151},"Clearer README on the reference.srt usage",[152,156],{"id":153,"by":154,"text":155},"19249716","acqq","\"Although it can usually work if all you have is the video file, it will be faster (and potentially more accurate) if you have a correctly synchronized \"reference\" srt file, in…",{"id":157,"by":158,"text":159},"19249792","kojackst","Sorry for the dumb question, but what exactly does this do? `subsync reference.srt -i unsynchronized.srt -o synchronized.srt` I mean, I already have a synchronized srt file, so…",[161],{"value":162,"source":51,"evidence":163},"How does the reference subtitle file work",[164,165],{"id":153,"by":154,"text":155},{"id":157,"by":158,"text":159},[167,174,181,188],{"value":168,"source":51,"evidence":169},"aligner (kaegi)",[170],{"id":171,"by":172,"text":173},"19253180","boolemancer","I recently ran across a similar tool for aligning subtitles based on a reference subtitle file called aligner: https:\u002F\u002Fgithub.com\u002Fkaegi\u002Faligner It seemed to work pretty well in…",{"value":175,"source":51,"evidence":176},"subtitle-synchronization (AlbertoSabater)",[177],{"id":178,"by":179,"text":180},"19250020","symstym","Nice! Have you seen this similar project? If not sure if there are any ideas to be borrowed, but it sounds like it achieved excellent accuracy:…",{"value":182,"source":51,"evidence":183},"forced alignment tools",[184],{"id":185,"by":186,"text":187},"19249691","lern_too_spel","This problem is called forced alignment. YouTube's subtitler does it for you. If you don't want to upload your video and subtitles, here are some other tools that will work:…",{"value":189,"source":51,"evidence":190},"Subtitle Workshop",[191],{"id":192,"by":193,"text":194},"19264315","hobbes78","I see this will only shift the timings some offset. But many times it isn't enough e.g. if the video source is NTSC and the subtitle were meant for PAL. In this scenario I use…",{"comments":196,"answered":197,"key":198},21,12,[199,202,203],{"id":200,"text":201},"19250138","Interesting! I was not aware of that project before. It looks like it could be worthwhile to incorporate their neural net-based VAD, if it's not too slow. At a first glance, it…",{"id":96,"text":97},{"id":204,"text":205},"19250204","Totally agreed. I'm not sure how to do the alignment scoring step in this case, perhaps some kind of DTW \u002F FFT hybrid... definitely worth further consideration.",{"commenters":207,"max_depth":208,"maker_replies":196,"first_comment_mins":209,"lifespan_hours":210},80,8,86,49,[212,214,218,221,225,228,231,235,238,241,244,246,249,251,254,257,260,263,265,268,271,274,277,280,283,286,289,292,294,297,299,301,303,305,308,311,314,316,319,322,325,328,331,334,337,340,342,345,347,349,352,354,357,359,361,364,365,368,370,371,373,376,377,379,383,386,390,392,395,399,400,403,404,407,409,412,414,418,419,422,425,428,430,434,435,437,439,442,445,447,449,451,454,456,458,460,462,466,468,469,471,473,475,477,480,484,487,491,492,494,498,502,504,506,510,512,516,519,523,525,528,531,534,536],[88,34,41,213,89,34],"project\u002Fpositive\u002Fexecution",[215,34,34,216,217,34],"19250463","other\u002Fneutral\u002Fnone","clairity",[219,34,34,216,220,34],"19251187","scarmig",[222,34,46,223,224,34],"19250607","project\u002Fneutral\u002Fexecution","hosay123",[226,34,46,223,227,34],"19251140","Iburinoc",[229,34,46,223,230,34],"19251176","aabeshou",[232,34,34,233,234,34],"19252254","commenter\u002Fneutral\u002Fnone","yesenadam",[236,34,34,233,237,34],"19252921","computerfriend",[239,34,34,233,240,34],"19253036","janaagaard",[242,34,34,233,243,34],"19253111","rjeli",[245,34,34,233,234,34],"19253258",[247,34,34,233,248,34],"19254385","pbhjpbhj",[250,34,34,233,234,34],"19258462",[252,34,34,216,253,34],"19253309","manwithaplan",[255,34,34,216,256,34],"19257656","frosted-flakes",[258,34,34,216,259,34],"19252882","akie",[261,34,34,233,262,34],"19253321","ComodoHacker",[264,34,34,233,230,34],"19258360",[266,34,34,216,267,34],"19254875","jimbo1qaz",[269,34,46,223,270,34],"19253079","beagle3",[272,34,46,223,273,34],"19253751","farazzz",[275,44,34,216,276,34],"19249516","satori99",[278,44,34,216,279,34],"19249929","zeotroph",[281,44,34,216,282,34],"19250234","JorgeGT",[284,44,34,216,285,34],"19252202","gsich",[287,44,34,216,288,34],"19250799","aasasd",[290,44,34,216,291,34],"19251865","jakecopp",[293,44,34,216,276,34],"19252285",[295,44,34,216,296,34],"19252601","deivid",[298,44,34,216,276,34],"19252976",[300,44,34,216,291,34],"19259476",[302,44,34,216,276,34],"19252974",[304,18,34,216,55,34],"19251522",[306,18,34,216,307,34],"19251677","ubercow13",[309,18,34,216,310,34],"19251950","roddds",[312,18,34,216,313,34],"19252221","kakarot",[315,18,34,216,234,34],"19252286",[317,18,34,216,318,34],"19252729","breakingcups",[320,18,34,216,321,34],"19252787","dewey",[323,18,34,216,324,34],"19253003","olau",[326,18,34,216,327,34],"19254455","oasisbob",[329,18,34,216,330,34],"19255867","MagnumOpus",[332,18,34,216,333,34],"19254457","FranOntanaya",[335,18,34,216,336,34],"19254478","xpil",[338,18,34,216,339,34],"19254729","amyjess",[139,46,46,341,140,34],"project\u002Fneutral\u002Fidea",[343,46,46,341,344,34],"19250003","iforgotpassword",[346,46,46,341,288,34],"19250098",[126,39,44,348,127,34],"project\u002Fcritical\u002Fexecution",[350,39,34,216,351,34],"19252986","barrystaes",[353,39,34,216,127,34],"19266560",[355,41,34,216,356,34],"19250251","Theodores",[178,35,41,358,179,34],"project\u002Fpositive\u002Fidea",[200,35,34,360,11,44],"maker\u002Fneutral\u002Fnone",[115,362,44,363,116,34],7,"project\u002Fcritical\u002Fperformance",[96,362,34,360,11,44],[366,362,34,367,285,34],"19252255","commenter\u002Fneutral\u002Fperformance",[369,362,34,367,116,34],"19257583",[146,208,46,341,147,34],[204,208,34,372,11,44],"maker\u002Fneutral\u002Fidea",[374,208,46,341,375,34],"19252704","rcthompson",[185,32,46,341,186,34],[378,32,34,341,11,44],"19249824",[380,381,46,341,382,34],"19251093",10,"psychometry",[384,381,46,341,385,34],"19253609","zimpenfish",[387,381,46,388,389,34],"19254042","project\u002Fneutral\u002Fperformance","amelius",[391,381,46,388,385,34],"19254682",[393,381,34,394,11,44],"19258992","commenter\u002Fneutral\u002Fidea",[396,397,46,341,398,34],"19249494",11,"lainga",[73,397,34,223,11,44],[401,197,46,341,402,34],"19250351","robert-boehnke",[58,197,34,341,11,44],[405,197,34,216,406,34],"19252911","rocqua",[54,408,46,341,55,34],13,[410,408,34,216,411,34],"19251604","xfer",[413,408,46,341,406,34],"19252931",[415,416,44,348,417,34],"19251814",14,"joshstrange",[106,416,34,223,11,44],[153,420,46,421,154,34],15,"project\u002Fneutral\u002Fdocs",[423,420,46,421,424,34],"19249847","Outpox",[426,420,46,421,427,34],"19249988","jmkb",[429,420,34,421,11,44],"19249968",[431,432,46,341,433,34],"19252206",16,"bbx",[109,432,34,223,11,44],[192,436,44,348,193,34],17,[157,438,46,421,158,34],18,[440,438,46,421,441,34],"19249800","magissima",[443,438,34,444,11,44],"19249850","commenter\u002Fneutral\u002Fdocs",[446,438,34,341,11,44],"19249842",[448,438,46,388,279,34],"19249942",[450,438,34,388,11,44],"19250333",[452,438,41,453,158,34],"19249959","project\u002Fpositive\u002Fdocs",[455,438,34,421,11,44],"19250214",[457,438,34,341,11,44],"19256150",[459,438,41,358,288,34],"19250872",[461,438,34,341,11,44],"19256176",[463,438,46,464,465,34],"19249862","project\u002Fneutral\u002Fnone","guessmyname",[467,438,41,358,279,34],"19250007",[103,438,34,223,11,44],[470,438,44,348,288,34],"19250914",[472,438,34,233,55,34],"19251462",[474,438,34,216,154,34],"19252745",[476,438,34,358,11,44],"19250313",[478,438,46,341,479,34],"19249863","pmoriarty",[481,482,34,216,483,34],"19253266",19,"s0adex",[485,482,34,216,486,34],"19253277","Krasnol",[488,489,46,341,490,34],"19252330",20,"hantusk",[171,196,46,341,172,34],[493,196,34,341,11,44],"19254285",[495,496,46,464,497,34],"19250815",22,"chanux",[499,16,41,500,501,34],"19252644","project\u002Fpositive\u002Fnone","aorth",[119,503,44,363,120,34],24,[65,505,41,213,66,34],25,[507,508,34,216,509,34],"19251939",26,"hendry",[511,508,34,216,285,34],"19252226",[513,514,41,358,515,34],"19253021",27,"apexalpha",[517,514,46,341,518,34],"19255056","Guillaume86",[520,521,46,341,522,34],"19249821",28,"IshKebab",[524,521,34,341,11,44],"19250012",[526,521,46,341,527,34],"19250260","Axsuul",[529,521,34,530,11,44],"19250290","maker\u002Fneutral\u002Fexecution",[532,521,46,341,533,34],"19250574","derefr",[535,521,41,358,344,34],"19250030",[134,537,34,216,135,34],29,[],[540,545,549,553,557,562],{"id":541,"name":542,"points":543,"category":544},"19254828","Zero",513,"infrastructure",{"id":546,"name":547,"points":548,"category":20},"19216428","ICONSVG",227,{"id":550,"name":551,"points":552,"category":20},"19224141","Material Kit",193,{"id":554,"name":555,"points":556,"category":20},"19252276","Bullet",189,{"id":558,"name":559,"points":560,"category":561},"19257241","Hack Club Bank",141,"web_saas",{"id":563,"name":564,"points":565,"category":566},"19234664","Portal Spaces",95,"productivity",false,"v2",{"id":570,"name":5,"line":6,"ai":567,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":571,"top":18,"kw":572,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":573,"url":9,"mix":574,"praise":85,"objection":100,"sub":21},19248723,0.03,[24,25,26,27,28],"5300003000000032030333331331355513353535",[32,33,34,35],1794036575157]