6 ms·
Membrane Framework – An Elixir framework for multimedia streaming applications
- Exuma 8y agoI absolutely love the design...
- thibaut_barrere 8y agoAnd you are not alone!
- bastijn 8y agoOn a mobile phone it is not so great. A single scrolling page like the recent hype but the menu disappears when scrolling down forcing me to scroll all the way back up to select the next menu. Never understood those designs. Keep my menu and home button in my screen at all times please. P.s. I know there is a little arrow that does an animated automatic scroll upwards but for me needing such a thing is a clear indication of a flawed design. Instead of fixing the symptom you should fix the root cause..
- true_religion 8y agoThat's not an indication of a flawed design. Displaying the menu and home icon on screen at all times, comes with trade offs such as: - less screen space available for other items - implementation difficulties with floating fixed icons - distraction from content - overlap with on-page elements And that's just what I can think of at 6am, pre-coffee. I would imagine the actual team has dozens of reasons behind their choice. To choose not to do so is design choice, taking into account the entire situation. Now you as a single particular end-user may not agree with their choice, but that's not a universal "flaw", but the essence with compromise in general---someone will lose out and be unhappy.
- bastijn 8y agoSorry, should have been more clear. I meant easily Accessible at all times. Usually that is all solved by making the menu disappear when you scroll down but appear again when you scroll up. Also fixes all your listed issues. Making the navigation menu not easily accessible at all times, where I count having to scroll up 3 pages not easily accessible, is a design flaw to me. Note that my first comment also mentioned to _me_, but that may have been missed before the first coffee went in :).
- amorphid 8y agoUsing Chrome in Android, the arrow to auto scroll up to top doesn't work for me at all. I can only manually scroll back up.
- time4hn 8y agoLooks great. I think it's the "ICO Crypto"* wordpress theme. * https://themeforest.net/item/ico-crypto-bitcoin-cryptocurrency-landing-page-html-template/21405614 https://themeforest.net/item/ico-crypto-bitcoin-cryptocurren...
- rpeden 8y agoDefinitely. It uses this version of the homepage: http://wpdemo.oceanthemes.net/icos/home-token-sales/ http://wpdemo.oceanthemes.net/icos/home-token-sales/
- k__ 8y agoIs this a Kurento alternative?
- ofrzeta 8y agoIt's more like a smaller and more modular alternative to Gstreamer.
- nivertech 8y agoWho said nothing good can come from ICOs? I love when OSS projects reusing ICO templates;)
- brightball 8y agoI’d been wondering about the best way to handle that with Elixir
- dep_b 8y agoWhat's the minimum latency broadcasting one WebRTC stream to many clients real-time?
- mspanc 8y agoCan you share more details about the pipeline generating the stream? There're many factors that can increase latency.
- dep_b 8y agoWell so far it's a setup where the broadcaster is an iPhone and the listeners are iPhones as well. Strictly one-way. Using the default iOS and WebRTC libraries. The critical factor is that all listeners get the same data at the same time with as little latency as possible. I have been experimenting with a one-to-many setup using Janus, but I'm not sure how well that will scale up.
- brett40324 8y agoEach listener iphone will almost never get each stream chunk at the same millisecond, but it can be close enough most of the time, depending on your use case.
- dep_b 8y agoI understand that after sending the packet it still has to deal with network speeds, but the idea is that there is no buffer just mirroring all of incoming video real-time.
- simooooo 8y agoBetter hope none of the clients are holding it wrong
- mspanc 8y agoMy experience with Janus is that it will not scale at least for the sole reason of using poll not epoll for the I/O (http://www.kegel.com/c10k.html#nb.poll http://www.kegel.com/c10k.html#nb.poll). When I tried to use it for the last time (1-2 years ago) it also had severe stability issues but maybe that improved over time. Maybe drop me an email at info@membraneframework.org so we can discuss the matter in greater detail?
- robotmay 8y agoLooks interesting, but the docs are quite lacking currently, so I'm not too sure what its current capabilities are :)
- brightball 8y agoI think this is the 0.1 release, so I assume there's a lot of improvement coming.
- mspanc 8y agoThere are 5 developers working hard on 0.2, stay tuned :)
- peterlk 8y agoThese seem like not a bad place to start: https://membraneframework.org/guide/ https://membraneframework.org/guide/
- andy_ppp 8y agoThis looks very good and will be interesting to see how it scales in a large cluster - should be possible with it being written in Elixir to scale this out quite well. I'll also be interested to see how stable the NIFs are, I'd feel much more confident they weren't going to crash the VM if they were written in Rust.
- sidkshatriya 8y agoGood point. Whats the point of using the Erlang VM if your NIF could bring down the whole VM. How is this different from using any other language like Go then to implement this platform? The approach confuses me because there is so much praise for the Erlang VM but to get all its benefits of the Erlang VM they need to use ports. (Which they confess is going to be slower).
- nailer 8y agoWhat's a NIF in this context?
- andy_ppp 8y agoNative Implementation Functions - http://erlang.org/doc/tutorial/nif.html http://erlang.org/doc/tutorial/nif.html - Erlang/Elixir would not be performant enough to generate realtime video/audio encoding. It's possible to make them crash the VM if they leak memory or don't prempt when asked. In Rust you can make better guarantees about your code and there is this that allows you to write them in Rust: https://github.com/hansihe/rustler https://github.com/hansihe/rustler
- mspanc 8y agoNice hint, we'll definitely take this under consideration!
- mspanc 8y agoWe're thinking about adding an abstraction layer over C code that will allow to switch between NIF and port backends. Ports have their limitations so you won't be able to use them e.g. for passing GPU buffers but they will do the job for many other cases. Anyway even with NIFs we delegate to them only code that cannot be written in Elixir or it really makes no sense to keep it in Elixir e.g. in performance reasons. Even if 30% of the framework will be in C it's way easier to manage 30% of C code than 100% of C code. Moreover, all the hard stuff, such as parallelism, being able to inspect running state of the VM, ability to spread app over cluster, I/O scalability, being multiplatform etc. comes out of the box with BEAM VM. There are many things that are give the point of using Erlang VM even if part of the code is in C and is potentially dangerous.
- reggieband 8y agoI'm trying to wrap my head around what I might use this for. I imagine the following scenario: * I have 3 source audio/video feeds * I need to follow a pipeline along the lines of: -- ingest the source feeds -- stitch segments from the sources together into an output stream following some business rules -- extract metadata from the source (e.g. speech-to-text) -- transmux/re-encode the output to different renditions (bitrate/resolution combinations) -- Output the rendtions and metadata Is that a reasonable understanding of what this framework is meant to enable?
- mspanc 8y agoExactly.
- a-dub 8y agoReminds me a bit of Flumotion which is a very similar idea with the very high level language being Python instead of Erlang/Elixir.
- bfnfjffbf 8y agoTbsvj Turn off your brothers PlayStation but you can still turn it on