mat_hek
mat_hek
SMSoftware Mansion
Created by jkwchui on 9/27/2024 in #membrane-help
burn in caption to mp4
Hi there, if I get it right, all of them would do 😉 I’d start with Boombox and Image and see how it goes 🤔
2 replies
SMSoftware Mansion
Created by oleg.okunevych on 9/25/2024 in #membrane-help
stream RTMP to VLC Network stream
I believe that the idea of RTMP.Sink is to push stream to some endpoint that is already listening for incoming connections
That's right. But to use the TCP Sink, you'd have to add all the RTMP-specific stuff into it, which would be quite messy. I think the way would be to create an RTMP sink that could get the client_ref from the RTMP server, like the source does. @Łukasz Kita WDYT?
9 replies
SMSoftware Mansion
Created by oleg.okunevych on 9/25/2024 in #membrane-help
stream RTMP to VLC Network stream
Well, this pipeline seems to send H264 and AAC through TCP. RTMP is more than that, like it has session establishment. It also requires the stream to be muxed in FLV before sending. Long story short, you should probably use https://hexdocs.pm/membrane_rtmp_plugin/Membrane.RTMP.Sink.html 😉
9 replies
SMSoftware Mansion
Created by oleg.okunevych on 9/25/2024 in #membrane-help
stream RTMP to VLC Network stream
Hi @oleg.okunevych, if it doesn't work out of the box, then probably we don't support this method. However, since our RTMP egress is based on FFmpeg, it should be quite straightforward to add if FFmpeg supports it. However, streaming to ffplay should work if you can use it instead of VLC 😉
9 replies
SMSoftware Mansion
Created by BrainTrain3000 on 8/29/2024 in #membrane-help
WebRTC TURN TCP/TLS configuration issue
cc @Jellyfish/WebRTC
4 replies
SMSoftware Mansion
Created by Damirados on 8/20/2024 in #membrane-help
Lowest latency h264 UDP video stream possible.
There's also https://github.com/membraneframework/membrane_webrtc_plugin. If you want to minimize latency, set the depayload: false option in the WebRTC Source and plug the depayloader and jitter buffer manually, lowering the latency, just like in case of plain RTP.
5 replies
SMSoftware Mansion
Created by Damirados on 8/20/2024 in #membrane-help
Lowest latency h264 UDP video stream possible.
5 replies
SMSoftware Mansion
Created by Damirados on 8/20/2024 in #membrane-help
Lowest latency h264 UDP video stream possible.
WebRTC may be a good option - it also uses RTP over UDP, but adds more features, including retransmissions, which may be necessary in a poor network. Generally, its hard to achieve low latency in a poor network, as subsequent video frames depend on previous ones and dropping part of the stream, so you either wait for retransmission or the stream is undecodable.
5 replies
SMSoftware Mansion
Created by Damirados on 8/20/2024 in #membrane-help
Lowest latency h264 UDP video stream possible.
Hi @Damirados , yeah RTP.SessionBin is quite complex and could use a refactor. It also doesn't allow configuring jitter buffer latency, but you can disable depayloading by setting depayloader option to nil on the output pad and plugging depayloader and jitter buffer after the bin manually - then you can configure the latency option - see https://hexdocs.pm/membrane_rtp_plugin/Membrane.RTP.JitterBuffer.html. Contrary to the name, jitter buffer actually doesn't control jitter - its main job is to make sure that packets are output in order, otherwise the stream could be undecodable, so I'd advise against removing it.
5 replies
SMSoftware Mansion
Created by Shuaib on 8/17/2024 in #membrane-help
Using Google meet as a source
Hi @Shuaib , unless there's any official API in Google Meet for exporting the stream, it's going to be tough, and I'd check if it isn't against T&Cs. I guess it's possible to grab the audio/video stream with JS though, and then you can send it via WebRTC to Membrane. Another way, possibly more future-proof, would be to record the entire browser window.
2 replies
SMSoftware Mansion
Created by Aske on 7/4/2024 in #membrane-help
H265 choppy playback in QuickTime on Mac
Thanks @Billal for handling this, I didn't know about ex_mp4! We can consider basing the mp4 plugin on it when it's ready 😉
14 replies
SMSoftware Mansion
Created by tintin on 7/6/2024 in #membrane-help
Does Overlay plugin support 30 fps?
Hi @tintin , you should easily get 30 FPS on a full HD stream on a reasonable machine, because the plugin converts the overlay to YUV and works in the YUV domain instead of converting the video to RGB and back 😉
4 replies
SMSoftware Mansion
Created by Aske on 5/6/2024 in #membrane-help
Loop Audio File
glad to help 😉
21 replies
SMSoftware Mansion
Created by Aske on 5/6/2024 in #membrane-help
Loop Audio File
Well, so apparently I was wrong - you cannot rely on the end of stream for that, because when the source sends it, it cannot send anything else anymore. I added an EndOfSeek event for that purpose and here's a simple example showing how to use it. Run with elixir loop.exs
21 replies
SMSoftware Mansion
Created by Damirados on 6/12/2024 in #membrane-help
Distributing pipeline in erlang cluster.
Could you point me to some code where I could get better understanding of what Membrane does in that case?
It just spawns processes via rpc https://github.com/membraneframework/membrane_core/blob/010f29e2afb7a806ea378375935da0649379f9b6/lib/membrane/core/element.ex#L87
5 replies
SMSoftware Mansion
Created by Damirados on 6/12/2024 in #membrane-help
Distributing pipeline in erlang cluster.
Regarding VP9, we're working on a plugin based on libvpx and we already got VP8/9 decoding working. It's early stage, but we should have encoding support very soon as well. See https://github.com/membraneframework/membrane_vpx_plugin/tree/setup-project
5 replies
SMSoftware Mansion
Created by Damirados on 6/12/2024 in #membrane-help
Distributing pipeline in erlang cluster.
👋 I'm not sure what are the consequences of sending large amounts of data through Erlang distribution, however it's possible. The simplest way is to pass node option when spawning elements, for example {child(MyElement) |> child(AnotherElement), node: node}. The problem is that it uses cross-node supervision, so if a node becomes unreachable, the pipeline will see it as if all the children on that node crashed, which may or may not be desired. Another way would be to have a pair of elements (sink and source) that would send data via Erlang messages and have separate pipelines. Membrane doesn't provide those, however they should be fairly easy to implement.
5 replies
SMSoftware Mansion
Created by TonyLikeSocks on 6/7/2024 in #membrane-help
WebRTC Endpoint + Mixing Multiple Tracks into a single mp4
FWIW we're locked on ratio 3.0, however 4.0 should work without problems, so you can override. We're going to allow 4.0 starting with core 1.1
7 replies
SMSoftware Mansion
Created by TonyLikeSocks on 6/7/2024 in #membrane-help
WebRTC Endpoint + Mixing Multiple Tracks into a single mp4
Hi @TonyLikeSocks, would you mind checking on the latest versions of the plugins? My suspicion is that we're not passing the timestamps correctly, and the mixer relies on them. We've improved timestamps handling a lot recently, so it may already be fixed.
7 replies
SMSoftware Mansion
Created by Aske on 5/6/2024 in #membrane-help
Loop Audio File
Oh I see. Can you provide the code so I can reproduce?
21 replies