mat_hek
mat_hek
SMSoftware Mansion
Created by tobbbles on 12/29/2024 in #membrane-help
Guidance on turning a low fps stream of jpegs into a video
👋 the next step would be to decompress these JPEGs into YUV or RGB. I don't think there's a Membrane element that does it, but you can have a look at https://github.com/BinaryNoggin/elixir-turbojpeg/. Another way would be to wrap https://github.com/elixir-image/image
3 replies
SMSoftware Mansion
Created by DJMAKEITBRAIN on 12/18/2024 in #membrane-help
Demuxing Safari MP4
That said, it's a pretty hacky way and I'm not sure it will work. It would be nice to have a fragmented mp4 demuxer in Membrane, but can't tell when it happens
6 replies
SMSoftware Mansion
Created by DJMAKEITBRAIN on 12/18/2024 in #membrane-help
Demuxing Safari MP4
That gives you a stream of Opus packets that are understandable by Membrane and most other tools, no matter what browser you're using 🙂
6 replies
SMSoftware Mansion
Created by DJMAKEITBRAIN on 12/18/2024 in #membrane-help
Demuxing Safari MP4
However, I have (a bit hacky) idea for a cross-browser way to get media that may work 🙂 The idea is to start a WebRTC Peer Connection and use insertable streams to extract the audio and send it wherever you want. Then, you probably need another Peer Connection that would serve as the receiver part of the connection - it wouldn't actually receive anything, but is needed for the stream to start. Insertable streams are usually used for e2ee, see https://github.com/webrtc/samples/tree/gh-pages/src/content/insertable-streams/endtoend-encryption, but in fact they give you direct access to the stream.
6 replies
SMSoftware Mansion
Created by DJMAKEITBRAIN on 12/18/2024 in #membrane-help
Demuxing Safari MP4
Hi there, the plugin supports non-fast-start, it even has an option to optimize for that scenario, see https://hexdocs.pm/membrane_mp4_plugin/Membrane.MP4.Demuxer.ISOM.html#module-element-options. However, your case is probably not about fast-start, but safari producing (probably) something called fragmented mp4, which is not supported.
6 replies
SMSoftware Mansion
Created by River on 10/22/2024 in #membrane-help
Sections of files
BTW, an important thing you should consider is whether you need the segments to start exactly at the given point in time or not. If not, you may start at the nearest keyframe, which will remove the need for transcoding 😉
4 replies
SMSoftware Mansion
Created by River on 10/22/2024 in #membrane-help
Sections of files
Hi there, I think you'll have better luck with FFmpeg for this use case. Membrane doesn't support seeking MP4s, so you'd have to read & skip the MP4 until the beginning of the segment
4 replies
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 DJMAKEITBRAIN 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