ConnorRigby

ConnorRigby

Nerves Core Team

I’m building a project for streaming audio/video from a network webcam. I’ve successfully managed to get h264 stream data after modifying the built in Transport. I believe my next goal is to set it up to be a a Membrane Source, but i can’t find any existing documentation in the hexdocs for this.

Has anyone built their own membrane Source?
Am i on the right track or way off?

Showing Posts 44 to 35

arruah

arruah

I have a task to transcode rtsp streams from ip video cameras and get a webrtc stream. As it is done here. This solution in golang does not use third-party services (ffmpeg or gstreamer). Can I do it with Membrane and Elixir? If so, can you tell me if there are any similar examples somewhere?

entone

entone

UDP FTW … Discord won’t let me post just acronyms, haha

ConnorRigby

ConnorRigby OP

Nerves Core Team

So after some time working with it, i learned that RTSP supports using UDP for the media stream which gets rid of the RTSP interlacing as every packet ends up being a RTP packet. I haven’t decided which method i will use overall, but i suspect the UDP transport will be easier in the long run for me.

mat-hek

mat-hek

Membrane Core Team

Perfect! Really glad you made it work :slight_smile: And thanks for all the PRs :wink:

ConnorRigby

ConnorRigby OP

Nerves Core Team

@mat-hek Good news! i found a bug in the code that was sending the SPS and PPS values to the parser. Was essentially causing an off by X number of bytes issue. Currently working on a PR to the ffmpeg element.

ConnorRigby

ConnorRigby OP

Nerves Core Team

It prints it pretty constantly. I haven’t checked exactly but it looks like it happens on every frame. These logs weren’t here before i sent the sps and pps values to the parser. I’ll double check that it’s being sent/forwarded correctly.

mat-hek

mat-hek

Membrane Core Team

These logs mean that the decoder is able to parse all the headers and metadata, but some parts of the stream content (actual video) are malformed/incompatible. How often is that printed? I suppose it might have occurred before, but you didn’t see it because of the amount of non-existing PPS 0 referenced logs. Also, make sure that parameter sets are not duplicated - both provided to the decoder via options and forwarded there by the parser (the second way is the best solution imho).

Silencing logs may not be the best way to go, as they can possibly carry some useful information in case of failure.

xlphs

xlphs

FFmpeg has an option to silence logs by changing log level, maybe try that.

ConnorRigby

ConnorRigby OP

Nerves Core Team

yes i’m getting valid video, but every RTP frame that is parsed/decoded logs that non-existing PPS 0 referenced error. Like nothing bad seems to be happeneing, just an annoying log.

xlphs

xlphs

You are getting video as expected but the PPS error comes with every frame? It sounds like the decoder is now overzealous in making sure sps/pps are present :sweat_smile:

Where Next? Top

Trending in Questions Top

RSP87
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
nseaSeb
Hello, I know there is an approach for handling lists that allows for optimized traversal, but I can’t recall the specific method (somet...
New
kpanic
Hi everyone, I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding. I sta...
New
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
asweet-confluent
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
apz
I’m new to elixir and just tried to install the elixirLS extension for VScode(ium) and it is throwing some errors that I would like help ...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews