Software Mansion / Membrane

SMM

Software Mansion / Membrane

Join the community to ask questions about Software Mansion / Membrane and get answers from other members.

Join
Ooleg.okunevych4/26/2024

Running Docker image with Membrane RTMP Plugin

Hello, I am trying to run a Docker container with membrane_rtmp_plugin library, it builds successfully, however I am getting following error: ``` 2024-04-26 16:11:04 =CRASH REPORT==== 26-Apr-2024::13:11:04.943773 === 2024-04-26 16:11:04 crasher: 2024-04-26 16:11:04 initial call: kernel:init/1...
TTonyLikeSocks4/24/2024

ex_dtls won't compile

I'm sure this is a me issue, but I'm stumped. I've got a membrane project that worked on a different computer. Both are Macs Running mix deps.compile throws an error: `ld: library 'ssl' not found...
Sspscream4/14/2024

terminate part of pipeline children

hi, I have the following: ParticipantPipeline with multiple children: - :vr_publisher - :vr_subscriber - :vr_screen_subscriber...
Nnoozo4/12/2024

ex_dtls NIF crash when starting server

``` root@908001db526468:/app/bin# ./passion_fruit start =ERROR REPORT==== 12-Apr-2024::09:51:36.565861 === Error in process <0.6069.0> with exit value: {undef,...
AAske4/11/2024

Dynamically starting children to Demux Mp4 tracks

I want to convert this to take arbitrary user uploaded Mp4 files where the tracks can have different indexes: ``` structure = [ child(:video_source, %Membrane.File.Source{ location: @input_file...
AAske4/10/2024

H264.FFmpeg.Decoded frames to MP4.Muxer

I'm attempting to open a local mp4, demux it, and write it back to an mp4, just to get started. I want to do stuff with overlay images and add sound clips once this basic thing is working. This is my spec: ``` structure = [ child(:video_source, %Membrane.File.Source{ location: "example_data/example.mp4"...
TTonyLikeSocks4/9/2024

Wiring up Javascript FE Using membrane-webrtc-js

Sorry if this obvious. I'm looking through the example in the membrane_rtc_engine (link below). It's not obvious to me how the audio playback for remote endpoints is managed. Does the membrane-webrtc-js take care of that magically? I see addVideoElement -- but that just seems to add an HTMLVideo element, but doesn't actually connect it to anything from the endpoint / tracks. https://github.com/jellyfish-dev/membrane_rtc_engine/blob/master/examples/webrtc_videoroom/assets/src/room.ts...
Ssamrat4/3/2024

Filter with `push` flow_control

Hello, I have a filter that transcribes audio as it receives it by sending it to a transcription service(via a websocket). I also have a VAD filter(applied before the audio data arrives to the Membrane pipeline). I'm seeing that the audio data only gets sent once the buffer is full(when there is enough voice audio). I was trying to change the flow_control to :push for the transcription filter for this. (Is that the right solution?)...
Kkurmetaubanov4/3/2024

LL-HLS broadcasting

Hello everyone! I am trying to make LL-HLS broadcasting work. I used the demo from webrtc_to_hls and setup partial_segment_duration to 500ms,...
Ssamrat4/3/2024

Pipeline children started twice

Hello, I'm seeing children in a Membrane pipeline get started twice: I think this might be an issue with how I'm starting the pipeline(everytime a websocket connection is created), but I can't figure out exactly why this is happening....
FFeliks4/2/2024

Writing a `Bin` queuing content from multiple remote files

@skillet wrote in https://discord.com/channels/464786597288738816/1007192081107791902/1224491418626560121
Hello all. New to the framework (and elixir) and still a little fuzzy on how to implement my idea. Basically I want to stitch together a bunch of wav and/or mp3 files and stream them indefinitely. Like a queue where I can keep adding files and the pipeline should grab them as needed FIFO style. The files will be downloaded via HTTP. So what I'm currently envisioning is a Bin that uses a Hackney source element to grab the file and push it on down. Then, when it's done it will get replaced with a new Hackney source pointing to the next file. ...
Ggranite90693/16/2024

Split audio file into 20mb chunks

Im trying to figure out how to take the file at this URL, and send it to OpenAI in chunks of 20mb: https://www.podtrac.com/pts/redirect.mp3/pdst.fm/e/chrt.fm/track/3F7F74/traffic.megaphone.fm/SCIM6504498504.mp3?updated=1710126905 Any help would be amazing!!...
Sspscream3/15/2024

bundlex nifs and libasan

Is it anyone build nifs with libasan support? Even if I put compiler_flags ["-fno-omit-frame-pointer -fsanitize=address"] it doesn't detect leaks I intentionally left in nif code. I run elixir with ERL_EXEC="cerl" and set -asan option for vm and erlang is running with address_sanitizer flag....
Sspscream3/11/2024

unifex seg fault on handle_destroy_state

Hi, i'm implementing g772.1 decoder/encoder plugin and have issue with handle_destroy state. I've taken freeswitch g7221 implementation(https://github.com/traviscross/freeswitch/tree/master/libs/libg722_1/src). I have the following state: ```c...
JJdyn3/11/2024

Developing an advanced Jellyfish use case

Hey I've been using jellyfish to develop a platform for essentially one-on-one calls between two people and it works really well. I'd like to now bring in something more advanced. I essentially want to: 1. take the two audio streams of the two peers from jellyfish and convert everything their saying into text using something like bumblebee whisper....
Sspscream3/7/2024

toilet capacity of outbound_rtx_controller

Hi, I'm getting the following error on SessionBin: ``` [error] <0.1282.0>/:sip_rtp/{:outbound_rtx_controller, 1929338881} Toilet overflow. ...
JJdyn3/6/2024

On JF Tracks and Reconnecting (in React)

So I noticed a few things about the react-sdk and JF tracks in general. Note I have react code that works identical to the videoroom demo. If you're connected to a jellyfish room and then abruptly refresh the browser, a new set of media device ids are created which causes a new set of addTrack calls. I'm not sure if I am doing something wrong or this is intended, but since new ids are created, new tracks are added to the peer on refresh without being able to remove the old ones since any clean-up code is never fired on refresh. And even when I disconnect gracefully, the removeTrack call fails as described below. ...
Sspscream3/5/2024

h264 encoder problems

hi guys, I'm using h264 encoder plugin for video encoding and sending it via rtp to client. Sometimes video play on client speeds up or speeds down. How to debug such cases and what could be a reason of such lagging video? Network issues? input for encoder is coming from webrtc source...
Nnoozo3/4/2024

Pipeline for muxing 2 msr files (audio and video) into a single flv file

I have the following pipeline which takes 2 msr files (recorded to disk using the RecordingEntrypoint from rtc_engine) and need to create a single video+audio file from it (trying flv at the moment but not tied to a specific type, just want something that popular tools can read and manipulate). My problem is that the end FLV file only plays audio. Here's the pipeline: ``` spec = [...
Yyujonglee3/1/2024

MP3 output is audible, but test not pass

Hi everyone. I made small changes in membrane_mp3_lame_plugin to support other input config (the original repo only support 44100/32/1). (patch branch: https://github.com/yujonglee/membrane_mp3_lame_plugin/commits/patch/) After the change, I run the test, but test does not pass. But when I play the generated output file, it is audible and feels same as ref.mp3....
Next