bouncer
← Back

Peter Ullrich · 252 views · 9 likes

Analysis Summary

10% Minimal Influence
mildmoderatesevere

“This is a straightforward technical tutorial; be aware that the casual, friendly tone is a standard community-building tool for small creators rather than a deceptive manipulation tactic.”

Transparency Transparent
Human Detected
100%

Signals

The content is a raw, unscripted live stream featuring authentic human interaction, spontaneous troubleshooting, and natural linguistic imperfections that AI cannot currently replicate in this context.

Natural Speech Patterns Frequent use of filler words ('uh', 'um', 'ah'), self-corrections, and informal phrasing ('sneak in', 'boom there you go').
Live Interaction The speaker responds directly to a viewer from Ukraine, discusses technical issues with his Twitter/X broadcast, and references specific events from a previous 4.5-hour stream.
Technical Problem Solving Detailed explanation of a specific database connection pool size issue on Fly.io and a conversation with a specific developer (Mateusz) regarding a GitHub issue.

Worth Noting

Positive elements

  • This video provides a realistic look at infrastructure troubleshooting (Fly.io IP allocation and database pool sizing) that is often edited out of polished tutorials.

Influence Dimensions

How are these scored?
About this analysis

Knowing about these techniques makes them visible, not powerless. The ones that work best on you are the ones that match beliefs you already hold.

This analysis is a tool for your own thinking — what you do with it is up to you.

Analyzed March 13, 2026 at 19:29 UTC Model google/gemini-3-flash-preview-20251217 Prompt Pack bouncer_influence_analyzer 2026-03-11a App Version 0.1.0
Transcript

e e e e e e for all right hello everyone thanks for joining in the Stream how you doing I added a little a little text down there you know to say if you join say hi because I want to see when people join the stream because people just sneak in they sneak in and they think we wouldn't notice and we don't notice to be fair so that's why I wanted to say if you join say hi introduce yourself why you here what do you expect from this and uh then we continue right everybody's welcome anyway how you doing today feeling good beginning of the week how was it some good coffee all right so I guess people are slowly trickling in ah three people oh there was an error on X oh no no it is right running no it's not running ah man is that the reason because I today I stopped uh paying for for the premium thing on Twitter and I think now I can't broadcast anymore ah really I mean I understand Ellen needs needs money right should I just pay for this H today we will do without Twitter right next time we do Twitter again but I think people might not see so that's a that's a PD that's a p what do you think do we need Twitter I mean you're on YouTube all right you're an Elixir developer from Ukraine uh hang on um a [ __ ] I always forget this is it is it Salva ukraini no Sal laava ukraini ukraini I think that's uh yeah glory to Ukraine that is okay well um working in domain of media streaming membrane heavy all right yeah then you're in the right stream because we use membrane for this project a lot it's very interesting to see you're doing lots of stuff with it well thank you very much uh yeah so I actually um I have some good news so I was able to get oh Jesus uh to get the database running so if you remember last week Friday we worked four and a half hours on this project and the problem that eventually blocked us from kind of using the live stream here to try it out was that uh the database just didn't work and um it was a super super based database and eventually I figured out that I'm starting too many connections to it so I'm uh yeah when I'm so first of all I mean fly always starts two machines for your application I mean I I also redu that to one machine now uh but still when you start two machines and then they have the pool size of 10 so they try to start like 20 connections and then when you deploy a new application um it also will try to start 10 connections right um so I needed to fix that a little bit and what I did eventually is just uh I reduced the pool size to like three you know that that's good enough like we don't have a very read heavy application here uh but that actually that was a reason and then it worked once I reduced the connections and um the memory thing like the memory load of the of the database was completely like at 90% or so that's why actually it also timed out a lot um yeah but uh now it's fixed so you can see that we have a website where I can come in as p Peter Well anybody can come as Peter to be honest but whatever uh and I can say it works boom there you go and uh that's amazing that is amazing so what I wanted to do today with you is to um implement the live stream you know so I already have an rmp server running here and it is also protected by a uh stream key and just for that I also created a membran core I created a little issue here for the mem in team because you might remember remember last time we work with the atmp server it wasn't very clear to us how we can block clients from connecting to our rtmp server and I messaged mat about that on Twitter and he said please open an issue some I did that uh because what we do right now now is we just kind of EX make the make the connection explode if somebody doesn't have a stream key that is valid which is not great but it's all right um but it would be nicer to have a more uh gentle call back here like a gentle stop you know don't connect to this client kind of message so anyway there's a ticket open for this and uh you know what I would like to try I would like to try to just um push some some data push some video here to my uh yeah to my live stream let's see whether that works and it's been a weekend so I've completely forgotten everything that we worked on but I think we should be able to yeah use the FFM P where was it again I always forget FFM here was an boom box yeah uh like the the command that we need here this one okay okay and this is the command and now I'm not going to do it to Local Host I'm going to do it to Twitch clone fly. death and the port was 1935 1935 streamer ABC C1 23 and actually here I need to add a a um environment available which is called stream key so let's see whether this works it did not cannot create the rmp handshake response let's see what the the fly logs were yeah okay there was no request logged interesting interesting but wait um but we starting it at no not a stream or stream key wait we had the stream and then the stream key yeah okay let's just start this locally because um oh mix all right so we got our Local Host running here and now if I start ah I think I made a mistake there somewhere yeah well now it's at FFM 1935 broken pipe yeah all right so my stream key wasn't correct stream key hang on H wait what's happening here again I think I forgot to to configure my stream key properly how can that be yeah it's ABC 123 ah but I I have it exposed in my run time um in my [Music] n yeah this goes in [Music] here and in [Music] here so yeah for all environments except for production I just want to use abc1 123 and then in production I'm actually fetching the stream key so yeah yeah fet in right boom all right okay let me let me start this one [Music] again all right so now we have yeah our so running here and I think the stream key that we expect is now abc1 123 right so that's good okay let's start our stream it is streaming however our live stream does not update man it's one of these things right like last week everything worked fine today it doesn't that's an issue here Jesus what is the issue yeah the loading um it's probably I hate this no ah that worked okay it just took a second and it stopped again it worked all right cool so we got it running we got to run locally I mean how how hard can it be now to to do it in production right we got to running locally and if I stop that's weird like why is there why is there an error message oh because I stop the server hey sorry I'm a little confused today all right so we got our web sucket running we start our stream our stream starts on the website all good we stop our stream stream stops okay we start our [Music] stream stream doesn't restart well if I refresh the page it does stream stops done okay we got it working locally now how hard can it be to do this in production right so let's see um yeah so basically I just need to update here the the URL so that's now twitch clone FL fly def put 1935 streamer and then not ABC but it hang on one second I just got to check the um the stream key yeah okay so wait what if I do I'm just checking that I'm actually injecting the correct stream key here yeah I do all right so you know if I I have this here as a environment available so stream key now let's see what happens okay cannot read rtmp handshake response and there also has been no error locked I think fly believe you should add additional config yeah I think uh we did that last week um here if I go to my flight toml you can see that I have oh sorry I also need to change my front size again there you go that should be better um yeah you can see here like I had I added these ports 1935 stcp hi Mitch thank you for uh for sending the high when uh when we join how you doing Mitch by the way if you're on YouTube um because my friend from Ukraine I see that you're on YouTube uh it might be easier to do this on Twitch like the connection the the delay until I see your message and everything that's much faster on on Twitch so if you head over to Twitch it is PJ olrick and then you can follow me there but as you want YouTube is fine too just saying that you know if you uh if you want to have a bit faster interaction then twitch is better all right um but yeah I think the issue here really is the the port so how can we how can we find out which Port we expose is there something like machine info or something status Cordon AP [Music] proxy let's look at this status yeah also I don't want I only want one machine running here fly scale count one because the the other issues is like I connect to one machine and then that machine actually starts reading my rtmp um the the transmission so the the data that I'm sending and it stores it on the local the local file system you know temporarily but the problem is the other machine doesn't get that information so if you as a viewer are connected to the second machine you will not see the live stream and if you but if you then just refresh the page you might actually be round rubbin to the first machine and then you will see the live stream so that's why it's a little I I just want to have one machine it's fine for now you got my live stream ter every 15 seconds I probably will watch on the record and join on Twitch next time oh okay yeah no worries yeah it just says please refresh your page oh really that's weird all right well uh yeah I hope it it works okay like uh yeah TW just twitch is better but let's let's try all right uh so let's see can we see something here from the status of the machine no we can just see machine ID the instance state [Music] name region memory that's it okay let's find a way to fly just listening [Music] ports exposing multiple ports if you need to expose additional ports you will need to add a service section for each additional Port that's what we did here be sure to review your public network Services page before proceed in particular if you want to if you want your Port other than 8443 to be available in IP version 4 you will need to allocate a dedicated IP 4 address really uh hey thanks for joining I I think this year's the issue yeah I mean we have a port other than 80 or 443 and that's why we need to allocate it an IP okay right but also let's um let's check the serice section yeah so an app can have one serice section multiple server section and in here we do have an internal Port the port this service and application will use to communicate with clients the default is 880 we recommend applications use the fold with clients [Music] no why would we con what why is it 880 and what are clients right the other thing be sure to read your public network Services page before you proceed that's the ip4 all right let me throw some money here and allocate an ip4 looks like you're accessing a paid feature dedicated IP addresses now cost $2 a month all right that's I can you know I will make zero money with this live stream but I think $2 that it's worth but if you want to donate $2 feel free you can always go to my website uh p.com you can either buy my products or at the bottom of every actually I I deleted it you know if you want to if you don't want to donate to me you can always donate with your email address to my newsletter it's it's not going to cost you anything it's not going to cost me anything I'm not going to um spam you but I'm also I'm just going to keep you updated of what I'm doing so might be interesting let's see all right but for now uh yeah we want [Music] to have a dedicated IP so let's see now we have a dedicated IP address cool does anything happen to our machines is it relaunched or something okay yeah here restarting system that's what I thought let's see let's wait until the machine restarts and [Music] then now there was 5 minutes ago well let's just run our FFM Peg thing again let's see oh oh do you see this do you see this we are streaming well the website doesn't work yet but uh look at that oh we are streaming all it needed was the IP version 4 for $2 a month right that's not too much to ask so uh my friend from UK if you want to see me with without delay you can go to Twitch clone. fly. death and you will at least see the current video that I'm pushing okay it's not going to give you much but the next step that we're going to do is actually connect my streamer from that I'm having here to um to this rtmp server and then you will be able to watch me there man that was that was cool all it took was the the IP and then you know our like service thing here um and yeah now it's working you can see like what I'm what I'm doing is from my local machine I'm playing a video through FFM Pack to my server and on the server yeah my um my my website here has a player that's reacting to it and uh yeah you can also send me messages here also funny because now our chat window is really small but that's okay yeah so what happens if you all go to Twitch clone here twitch clone fly. fly. death if you go to that URL do you do you see the same do you see the video just you know you can in the video on the right side you can just send a chat message Mr Poopman all right yeah there there you go six people plus so five plus me do you see the user count here there six people right does it say six for you [Laughter] too so a PP poo poo man man this is cool isn't it look we have a huge I mean we should you know if we compare this to Twitch as we like to do I would still I would say that you know look it's it's basically the same look you have a very pixelated picture here and then you go to mine and it's just Crystal Clear 1080p quality is amazing awesome this is cool isn't it we have our own little twitch clone running I mean here look the quality here is [ __ ] and then you go to this awesome website and you just it's Crystal Clear you can even you know it's real Time Communication it takes milliseconds until I see your message now we just need to fix the the thing there the the width of the chat but it's also okay for now cool all right uh the video resolution I think it's 40 40p no 1440 so yeah I mean there's no down sampling here so I guess it's also 1440p to be honest I'm not true quality playback accessibility no I don't have any controls over the um the videos settings here well our bid rate is 6 6,000 okay speed one yeah that's the announcement watch sure can I see that MP M 4 video get info myage no I don't yeah but I think it's 1440p because I I do all my videos in 1440 and then I let the the platforms down sample it all right now we have our own streaming platform well I can stream to you [Music] cool so what are what are we going to do next we're going to set up my restream thing right I'm going to I'm going to try to connect my OBS so my OBS thing my this is the software I'm using to stream it is going to something called restream and uh restream then sends it to all these platforms like LinkedIn um over here we need an X premium to stream yeah but yeah it's connecting to YouTube twitch uh LinkedIn so we can add a channel here custom rtmp and this would be now this would be our rtmp twitch clone fly Dev 1935 stream and now I need to find the stream key but it I I'm just going to make it part of the part of the URL like I did before hello hello thank you for joining all right let me just find my my stream key I'm going to privatize pixel8 here so that you don't see my super secret stream key and I'm going to add it here as a URL I'm going to hit at Channel and okay here we go so now I get my custom rtmp ah I'm not very smart with these kind of things yeah I have to update my stream key I'm sorry about that um okay and I have to update the URL okay cool yeah yeah let me un privatize this so now if we go to the website it says pet not currently online so let's see what happens if I turn on my custom rtmp it's sending data not sure maybe I got the wrong URL or something or I need to add another stream [Music] key okay let's see what our fly lock say error yeah failed to copy could not proxy TCP data to and fromont instance failed to copy and I think that is because our stream key was wrong okay so I need to I need to fix the URL there one second okay edit settings probably have to so now actually you can see that here like the stream key is hidden but I just have an rtmp twitch clone fly def 1935 and then the stream key so let's see what that does now uh I think something is oh no that's the same file read oh wait hang on it's working was working it's working right ah look at that yeah it says streaming cool so let's see let's see what the um how you say the delay is I'm curious the delay from my OBS to restream to my personal twitch clone here so Peter I'm just going to write the the time in seconds do can I find that somewhere well I'm just going to count it okay test all right here we go in two three one 1 2 3 4 5 6 7 8 9 10 11 12 13 13 seconds all right that that's how long it took from my OBS to restream to my fly clone um yeah 13 seconds but the cool thing now is that we have a live chat here so if you go to the chat actually and you write something I will be notified immediately right that's awesome let's [ __ ] about that yeah cool all right well so what do we do now what do you think we should be doing now I mean the last thing that I wanted to do is uh to set up whisper to have whisper running and to real to transcribe my live stream more or less in real time and we also already had an example for that let's see I think here in bumblebee there was a [Music] example or was it membrane here speech to text whisper here I think it was a membrane membrane no I think it was boom box examples speech here this one still cool that you can just go to the website hit play that's awesome all right uh what do you think what should we do next so so I I thought about doing whisper transcription is that something that you think would be interesting let me know let me know in our private chat or here hello potato glad that you joined fun I can just refresh the Page hit play we here auto play block audio allow audio and video there you go yeah so if I don't block it it's working whisper looks good enough well that sounds exciting hey Abol cool um yeah so um I think we need to do two things really we first of all need to find a GPU where we can run although one RIS well whisper also runs pretty pretty fast on uh locally so let me actually open my life book here and we had a um the Bumble boom box example oh here where's my development boom box there and then we had the examples all right let's do the setup because we do have the MRI yeah this one is whisper all right yeah so so let us test how fast this is locally but I think whisper should also run locally pretty fast actually it's it's a Macbook 2 M2 so yeah 100 hello is that you Emil my Norwegian friend we're looking to whisper now 100 man I I think this is so cool honestly okay sorry that you need to you see everything like a a million times um but it's just so cool that we have our own little twitch clone running all right let's see uh our setup is working now uh so this our read speech audio from MP5 4 chunk by chunk generate transcription so let's do this if we just evaluate it what happens it's downloading whisper I believe so the idea is that we can ideally just uh add another boom boox connection all right it's working here it is actually running the Sherlock um sound the MP4 and is transcribing everything with whisper yeah that is pretty amazing all right so we should be able to run this locally as well um so let me just speed whisper serving yeah and we had this already last time where we started in the blue sky cment analysis project here Blue Sky we also started our serving as part of our application where's my application there yeah like we started our uh this is the birds birds analysis thing oops and we started as part of our application tree and down here we just load the model reload the tokenizer and then do the text classification and I think we can do the same with our Uh current uh server or current application but the other issue that we need to figure out then eventually is where to where to cach the models because if you as you can see like when I started this live book actually it was pretty fast if I like re rerun the setup it was pretty fast in setting up this thing and then eventually to download the model because it cached the model locally so now this is done and if I just rerun The Whisper example here you can see that now I don't yeah it's not redownloading the whisper model it already downloaded it and it's it's in Cache and we want to do the same with our application our production server because yeah you don't want to download the entire whisper model every time your server starts right you want to load it from cache and fly actually has a blog post about that here about the gpus and they do this by using a a uh what's that here like a mount of volume Mount and they set the Bumblebee cach directory to data cach bumblebee so that means that whenever um an application starts it will download from this cache it will look into that cache directory and download any models from there instead of downloading it uh again all right so and also the xla cach dur yeah so we can we can do this but first let's set this up locally so I'm going to do the whisper serving and uh yeah basically and we also need to of course add it to our our mix so there will be install boom boox xlaa Bumblebee now we need to rewrite all these into and we have to find the so let's first have a look at we need to find the the versions B basically I'll take that xpm so here we got bumblebee 053 we don't need Kino but we need NX 090 090 okay xlaa 090 and oh wait there was a boom box boom box I think that is just 01 okay 0 one0 and Bumblebee right let's stop this all fetch our dependencies ah we already have boom box okay we don't need that and our bumblebee 053 needs NX and n x07 interesting yeah all right uh yeah so well we can hang on what was how did we start our serving again here we did like an nnx serving thing so in our appli ation we need to also say NX serving and then we do the whisper serving and we give it a name which we call um wait whisper am I writing this right I'm not sure how to write whisper whisper hey Thiago how you doing whisper without a second age whisper serving um yeah I'm not going to do any batch sizing or batch timeout yeah cool all right so now if we start our application hang on I need to install so I I did a very SM smart thing the other day which is I removed my Zell RC because I wanted to remove my history my zshell history and you know it was just one of these brain farts thing where you don't think you just press enter and you're like no I didn't want to do that so um I think I I still need to install all the yes okay I I need to install all the plugins and I have these shortcuts here for Elixir which is like mix depth get actually becomes MDG thanks Thiago taking a week off oh that's nice that's good are you working on anything or just really taking a week vacation all right so now I can just run IPS which translates to ex - s Phoenix server mix Phoenix server right and that gives me an a mixed Fenix server inside an uh rapple but I can just do IPS boom all right so now we're installing our dependencies and then we're downloading uh xlaa exla oh wait before we do this I always forget we also need to um to set up the back end I did that last time I forgot about this and it took forever to just here this one we need to set the default backend to exla in our config and if you don't do that then it will be super slow all right now we go again so what's happening here we are all right yeah that's the go the other cool thing because we already downloaded The Whisper model from our livebook and they lifebook and and Phoenix here locally they share the same caching so the Bumblebee cache like um sorry folder is the same so that's why it was super fast to just um yeah to start our um application it didn't need to download whisper because it was already cached okay but now what we need to do here all right uh I am planning to finish a project I'm doing so I can manage my podcast and so I do not need to pay for simple cast anymore all right that sounds like a fun project how much is simple cast though Thiago probably like $9 $15 okay as long as you have fun okay project yeah that makes sense cool all right um yeah so uh what I wanted to do here it's $15 yeah I mean it's not nothing I agree but I I so the other thing what what I do I'm not sure but uh you you probably have an active podcast still right because I use um pot bean I use it like way way way back when uh like in 2018 I I had a podcast about the blockchain oh yeah you pay five times because of wonderful Brazil yay uh so yeah I used pot Bean back in the day and I still have my podcast running there and they're actually on $9 so that's already cheaper however what they don't list here I believe is the archive uh version probably don't have it no so the thing is when you have an old podcast like I do you know I have one from 2018 but still want to keep it online because people sometimes you know want to listen to it and it's it's part of my portfolio uh and I wanted to to here to basically delete it and move to something else and they offered me a archive uh plan which is like two $3 a month and I was like sure you know for $3 a month you can you can keep it but yeah this one's already $9 a month so that's slightly cheaper yeah but yeah if it's a cool project maybe live stream it h like I did did you did you see that we actually oh well if it was working um that we uh have a live stream running oh so many text messages sorry I didn't I missed them okay also our stream didn't work okay let's try this one again ah okay and we back yeah nice yeah probably because you're one of the few Portuguese speaking podcasts in the in the field and then people see yeah okay sorry no no I need to check two chats maybe that's the next thing what we need to do we need to add a mthod to send the text messages from the chat on the live side to the chat that I see here so basically we need to send them back to restream I'm not sure how restream does it though but uh yeah also the the live stream doesn't work 100% unfortunately on the website but why okay we we need to fix this in the future somehow our live stream is not streaming okay all right but first things first we wanted to set up a whisper transcription thing so um yeah what I would like to do is just to set up a second boom box thing here let's see whether that works and yeah basically here this is the boom box thing we need okay so let's see um I'm going to call this start transcription for the client ref transcription so yeah this is our our input is rtmp so it's the same input and now our output is a stream that is Audio Only interesting has an audio format okay yeah and now we run it against our serving which we call whisper serving yeah okay and we're going to lock this thing okay let's see whether that works I don't know cuz now we have two boom boox um streams running on the same client I hope that's not going to be an issue where they both try to read data from the same client I don't know so let's restart the application okay so what happens now if I go to Local Host okay and yeah what if I start my FFM pack thing here FFM pack where is it there but it's not this port it is 1935 I need to update it here too 1935 all right so if I stream the video streaming but we don't see any text output yeah Al we have the same issue here it seems with our local live stream and the uh I think you should try live streaming Thiago I think you're good at that you like people you like talking you like talking to people so why not yeah well our live stream works here so that's good but we don't see any um yeah we don't see anything uh transcribed okay so what I'm going to do actually is I'm going to disable this stream the rtmp stream and I'm going just going to try the the other stream let's see because maybe the the one thing happens what I'm thinking where um you know they're like two two inputs or two things that are trying to connect to the same input and uh one of them is just reading all the data and the other one doesn't get any data that's what I was thinking so if I now start my stream here it stream in and okay so at least we get an error interesting NX serving run all right so at least we got an error here did I maybe so let's see but what what's the no function Clause matching an NX serving run uh what did we do in in our Blue Sky thing cuz I I think we just called enx serving run on the on the named serving as well simplify it Broadway oh batched run we did a batched run yeah maybe we do that too no okay well it expects a serving and input but I'm not sure why I well is the name and an hour batch run yeah in the batch run we only receive a name and oh okay so actually it's looking up the process by the name and then it's running um local batch run so I think we yeah we can't give it the name alone we have to find the pit so here pit is process where is name and we're just going to give it the pit not sure but now it's n it's still not a it's still not um an NX serving it's just a pit yeah okay well now of course it doesn't match either but how can we get the serving for a name my live stream is still working happy about that yeah calls in it yeah otherwise we we just try badge run yeah let's just do a batched run batched run because that seems to be working fine let's see do we let's see whether the input is correct we might need to like put it in a list or something okay wait connection refused let's start now okay nothing's ah look at that hey we have transcriptions running a that is awesome I love Elixir I love it so much it's just like okay you have to get the things you have to like you know make sure that the things work well together that you pluck the right things in the right spots but then once you have it running it's like couple of lines of code yeah look we have uh transcriptions running is isn't that awesome my live stream here is still working too so that's good too what do you think are you excited mind-blowing isn't it it is mindblowing super nice thank you Thiago yeah well this is interesting why oh our live view is now playing it as well yeah that's the issue well uh okay let's see I think we we need to figure out one more thing which is to have two inputs working at the same time like what we what we can do now again is just to enable the other inputs like I'm just going to I'm just going to um I'm just going to turn them around let's see because again I have that feeling that our boomx input like it like one input will just read all the data and then the data is gone you know it's not um I'll put a numerable [Music] yeah so we can only do one boom box at this at the same time like do you know what I mean like what I mean is basically you know you have like one source and you have two competing processes and only one process will will get the data and the other process will never get the data and that's why we could only see the live stream but don't not see the The Whisper thing working so now I turned them around so my expectation is that if I start my live stream my my streaming here is that we will not see a live stream here we will only see the um the transcription all right let's hit this thing it is streaming okay well that's good we do get we do get transcriptions I'm not sure about this live stream whether it's using the old segments or the the current segments I don't think it's it's using the yeah and it stopped again and it's starting now over yeah so yeah if we actually look in the folder here in the temp folder for stream you see that there are [Music] no like the the transcription is running yeah the transcriptions are running but our like streaming hls is not running okay I'm just going to delete all these here just to make sure that just going to delete this right all right yeah so this now poses the question how can we reuse one input for two different output streams and I don't think boom box is able to do that they only have one input one output um let's see maybe the document ation says something here multiple outputs oh okay h can we Define multiple outputs wait where is boom box see the hex dos modu boom box functions run so the output H the output can only be one thing can we maybe stream I'm thinking like can we go from one stream so can we go from one um input to one stream output like this one here um so I'm thinking can we go from one input to two to one stream output and then we go from that stream output to two other stream outputs not sure I mean the problem there is also that um audio binary Boolean video image Boolean client Handler you know my problem here is basically well we could say give me a stream output from the input and then from that stream we pass it to two other boom boox pipelines but the problem with streams is that yeah like if one of the pipelines ask for the next data point like that data point is not available anymore to the next data point you know so that is yeah I I don't know how to do this Jesus I mean here in boom box we can really only Define one output uh and unfortunately we can also not uh add the hls output as an input like here we can only have MP4 I mean we could go through an mp4 w hello how you doing what's my stack my stack is elixir yeah Elixir Lang it's Elixir live view which is the web framework or Phoenix Life View it's pretty cool yeah I I think maybe what we trying to do here is not possible with boom boom box alone all right read me membrane T plugin [Music] oh this package provides elements that can be used to bronze stream processing and pipeline that's exactly what we want thank you yeah it's just I don't I don't think we can use boom boox anymore I think boom box is a bit too um the advantages of Elixir well there are three well they're many but three main ones so one of them is the operational operational simplicity so with other Stacks you might need to pull in a lot of third party libraries to get things done you know like if you work with rubyan rails you need to pull in like reddis you know as a external Global state with Elixir that's just built in you know if you want to do like message message passing between multiple servers it's built in you don't need to use something like a message queue in between uh you don't need react or you don't need any JavaScript on the front end at least not for you know relatively like simple websites up to up to a certain point where it becomes you know very complex but you can also do a lot with just live view so you can build reactive websites with it very quickly uh so yeah it just simplifies the whole stack you don't need to have you know three different languages and five different uh additions and plugins it's all one language everything works really nicely um which is the brings me to the second plus point which is uh it is it avoids company Killers that's how Bruce Tates um who's a an educator in the field he puts it that way so you have companies basically when they you know they start with an easy stack and then they scale and they grow and at a certain point they hit a point where they can't scale anymore that well with their own Tech stack right so if you think about rails rubyan rails at a certain point you just need to spin up like hundreds of servers and that's going to cost you so at a certain point depending on your on your uh technology on your product that your technology will block you right and elixir is like very capable of actually bringing you past that point without any problems so you can scale from you know zero users to 10,000 us users and you don't need to worry about too much you know it's pretty efficient for running web repb requests so like for any website it's really efficient so there many stories where people they went from 150 Ruby servers to like five Felixia servers so that's great for you know cost that's great for uh Ops you don't don't need to have a huge like cubus cluster and orchestrate 150 servers you just have like three plus two Reserve ones so that's great and the third one is just the productivity you know you can do a lot of things very quickly with very little code and just it makes you very power like a very powerful developer you know as a one as a single developer you can get really far very fast so you don't need to hire like 10 developers you might need to have like two or three and you can do the same stuff and there are also teams out there who fired like half or like they fired like 10 react developers because they switched over to life you you know and then they had the same amount of backend developers and they just were able to like they were so productive that they could pick up the slack for a team of like 20 before right so it's not great for the re developers but they weren't needed anymore so yeah that these are the advantages of elixia all right um all right coming back to the T thing so the problem here will be that we need to move away from boom box I don't think we can use boom box anymore um you know it's it's it's cool and high level but it doesn't allow for multiple outputs so I guess we need to set up our own pipeline here but it shouldn't be too hard I mean we got the [Music] Alor Alora yeah we got the algora pipeline actually here the hls storage hls and they go yeah but maybe we can also keep it really [Music] simple like maybe we can keep it simple in such a way that we just have one input thing here yeah I'm going to I'm going to head to the toilet real quick and uh then we will continue with this but it seems to yeah I hope we we can somehow use boom box like I I would like to just like put this T plugin somewhere in the middle and then um to run this pipeline all righty cool have a good one I'm going to be back in two minutes see you then e e e e e e e all right folks I'm back um I also heard that our little live website here is not working which is probably a fault of restream not our fault to be honest oh here it says it's streaming but it's [Music] not let's try this one again there you go it's streaming again I mean this is not foolproof right yeah okay anyway we got that figured out again uh yeah all righty so we need to figure out the here the pipeline basically let's see they also had a [Music] pipeline got a bunch of stuff here hls no all right let's let's let's take a step back [Music] so uh so what what I like to understand is how can we use this T plugin to build on top of the oh there was something yeah so for example this person ah it's Kevin isn't it yes so this person they created a membrane pipeline where they have a file source and then they demox it and have some audio passer AC decoder converter and then they actually have a whisper sync um yeah so that's how they try to do it maybe we can a here's a repo even ah it's from L he's he's nice too fans whisper real time time whisper where's the pipe l l amplitude element time St per real time now this is the Handler all right [Music] so yeah what I would like to try somehow is whether we can somehow um configure boom box to give us an output that we can then run through the T plugin and then from those yeah we generate the hls and the the hls output I don't know push output Team master yeah basically how does boom box and membrane work together you know H that's something else maybe there's some examples here h what we could do though we could use web RTC in the middle so here what they do somewhere put I mean what I was thinking is we can maybe use our art artmp and then send it to a web RTC output and then we go from web RTC and we uh run it to hls and to whisper I'm not sure because here here that's where actually where they receive an web RTC output yeah so in this [Music] situation ah wait hang on they actually do have an example here look that's where actually yeah so they have an input which is an mp4 and then they have an output which is f RTC and they just use a signaling Channel and then from this signaling Channel they create an mp4 yeah we could we could reuse this for our uh for our purposes so what is the membrane web RTC signal signaling channel so many things here signaling channel channel for sending web ATC signaling messages between membrane elements and other web rtcp the flow of using the signal signaling channel is The Following you created with new you register the peer process the one to send and receive signaling messages pass the signaling Channel and send receive signaling messages all right let's try that interesting see it can be so easy there so does it still work yeah hello all right cool let's try that so Z here uh in here we create a new channel and in here like we do instead of a hls output we do a web RTC output so here okay and now we get a task back and yeah basically we do as input we use the web RTC signaling all right so this is not the this one and we're going to do the same here web RTC signaling all right okay so let's see whether that works where's our closed 4,000 okay now uh let's restart the application start the website okay so now if we start our stream oh we got a an exception here so they have an address already in use for what let's see what's happening here lots of red earling map get okay let's just stop one of them let's just only have one output to see whether that works no okay so we need to First figure out [Music] our so the address is already in use for the rtmp server listener run address already in use what's happening here and the error comes from our rmp server that's this one am I like have I started it in a different tab or so let's see nothing's really happening here H okay nothing nothing's happening nothing's happening here either let's restart the stream and then it's address already in use interesting what kind of address would that be the webc address okay let's let's check out the the examples again also with the signaling can we do something interesting like here [Music] new uh no it doesn't have any options so we we can't really Define a port or something yeah let's try this one evaluate uh it's running and then we evaluate this one ah wait it's just transcribing it into a video file interesting and then it's playing this one H anyway folks I'm not sure whether we will maybe I just reach out to the membrane folks again to see what they have to say uh because uh what could be happening here is that actually in this situation we get an mp4 file and we write it to an mp4 file right um so in in the other like in our situation here we actually try to convert it from rtmp to hls I'm not sure maybe that's the issue here but we can also try the transcription maybe that one is working no what is this one it's already in use invoke MFA well all right I mean our rtmp plugin is trying to start a listener and the address is already new so I guess uh it's just starting twice oh really weird all right folks um I think I will call it a day for today uh but we already got much further we have our live stream running now so that's cool over here yeah still working so that's cool we got our little chat app here working as well and we got whisper running locally but only you know has one uh output so to say we can't do live streaming and the output at the same time so I'm going to reach out again to the membrane team sorry to them for asking them all these questions but yeah it would be interesting to know how can we um yeah how how can we basically like divide split the output into like two outputs so I'm going to ask about that and maybe they have a cool a cool answer and yeah so I think I will continue on Friday with this maybe tomorrow if I have an answer let's see like one of these days like Wednesday or Thursday uh but as soon as soon as I have an answer then I'm going to continue this because I still would like to add the live transcription somewhere here right maybe on the left side like there will be well this side you know then you have a nice live transcription on the left side you have the chat on the right side and the video in the middle and then we better than twitch bye uh by a lot I would say but yeah until then we need to First understand how can we set this up with either membrane directly or ideally boom boox and uh yeah all right I will let you know uh you know follow me on Twitter blue sky and so on and then you will hear when I'm going to go live again but probably is going to be one of these days but UL like Friday the latest so I think Friday will be the like maybe one of these days but for sure on Friday all right thanks for stepping by we're coming by and I wish you a great rest of the day bye-bye

Video description

Let's code a Twitch Clone in Elixir together using Membrane, Boombox, and LiveView

© 2026 GrayBeam Technology Privacy v0.1.0 · ac93850 · 2026-04-03 22:43 UTC