diago icon indicating copy to clipboard operation
diago copied to clipboard

More media features

Open yallxe opened this issue 7 months ago • 4 comments

Hello, I have a question about what is on roadmap regarding media handling. Do you plan to add some kind of stream mixer, jitter handling?

P.S. I've analysed livekit's sip-webrtc bridge, and they implemented a lot of media stack for sipgo from scratch, they even got SRTP if I'm not mistaken. Maybe it would be possible to use their code in diago.

yallxe avatar May 17 '25 09:05 yallxe

Hi @yallxe . Thanks for opening, and I appreciate that you are pushing stuff. All on roadmap. FYI, already had some experiments. Of course I am prioritizing stuff for people sponzoring project or it is private work related. My time is limited.

Right now I can say next big thing is High Level API for Recording, with Stereo mixing both streams real time. SIPgo is also taking some of time, as it also recently had some stabilization changes.

Anyway while mentioning webrtc, you can look also now webrtc branch. It is pushed now a bit, just as example how to extend diago with webrtc support. Of course we need set of APIs that make sense to maintain in long run. SRTP will probably come from pion same as webrtc. I do not find here something big if it manages to satisfy current interfaces I added.

Of course there is also idea for future where media stack is decoupled from SIP in order to allow you more flexibility, but I do not find going away from RTP yet. As RTP focused you could essentially create any RTP audio Pipelines with io.Reader io.Writer or if you want go low level you can implement RTPWriter RTPReader

Also documentation is something also very important for this project. Right now that is also WIP.

emiago avatar May 17 '25 19:05 emiago

Hello @emiago, have you considered supporting a media streaming proxy like rtpengine?

uole avatar May 26 '25 09:05 uole

Hello @emiago, have you considered supporting a media streaming proxy like rtpengine?

May I ask what would be the benefits of using it? Besides very high performance, I don't really see much in it. But I've also never used it, so I would be curious to hear more.

yallxe avatar May 26 '25 09:05 yallxe

Some first implementation of recording support is now added. Check example /examples/wav_record It would be great, if I get more feedback if some issue appear.

More controllable recording and different formatting may come later.

emiago avatar May 29 '25 15:05 emiago