Git Product home page Git Product logo

Comments (14)

landswellsong avatar landswellsong commented on July 20, 2024

Terminology suggestion (discussed with @njam), currently the mountpoint structure is laid out like

struct mountpoint {
    struct source {
        fd and port for video
        fd and port for audio
    }
    struct codecs {
        codec for video
        codec for audio
    }
}

Making another structure (mountpoint group) would complicate matters unnecessarily, so I suggest we just re-use the mountpoint structure and just have:

  • an array of video sources
  • 1 audio source
  • codecs moved into respective source structure since they can differ between video streams right?

So the end result would look like this:

struct mountpoint {
    struct audio {
        fd and port for audio
        codec for audio
    }
    struct video [N] {
        fd and port for video
        codec for video
    }
}

from janus-gateway-rtpbroadcast.

kris-lab avatar kris-lab commented on July 20, 2024

Both audio and video can have different codecs per mountpoint! So the mountpoint should describe pair of video/audio codec in my opinion. E.g we can stream WebM (VP8+Opus) or MP4 (h264+AAC) but not VP8+ACC or h264+Opus.

With current approach there is a risk to mix the media containers which would not work (WebM, MPEG etc)? Of course the Janus supports only VP8/opus now but it might change?

@landswellsong what is the problem with new structure?
@njam wdyt?

from janus-gateway-rtpbroadcast.

landswellsong avatar landswellsong commented on July 20, 2024

@kris-lab no problem really, but after removing everything unnecessary and general out of mountpoint structure there's almost nothing left so I thought it would be wiser just to reuse mountpoint struct. We can implement multiple codecs just fine this way too

from janus-gateway-rtpbroadcast.

landswellsong avatar landswellsong commented on July 20, 2024

Graphical representation of what I mean

Untitled Diagram.pdf

from janus-gateway-rtpbroadcast.

kris-lab avatar kris-lab commented on July 20, 2024

Agree, it makes sense to me! @njam please have a look as well

from janus-gateway-rtpbroadcast.

landswellsong avatar landswellsong commented on July 20, 2024

Thx, I'll stick to this now.

from janus-gateway-rtpbroadcast.

njam avatar njam commented on July 20, 2024

lgtm!

from janus-gateway-rtpbroadcast.

kris-lab avatar kris-lab commented on July 20, 2024

Update! We have implemented a quite few things:

  • publisher end-point #3
  • subscriber end-point #4
  • switching #5

We have too implement with high priority 1:

  • archiver #8
  • thumbnailer #9
  • admin notifications #14
  • persitence for admin notifications #16
  • switching threshold #15
  • IP filter for RTP stream #6
  • suppersession auth #18

We have too implement with lower priority 2:

  • key-frame detection #13
  • performance optimisation #12

from janus-gateway-rtpbroadcast.

landswellsong avatar landswellsong commented on July 20, 2024

@kris-lab @njam important question, how do I contact cm-janus for events which are initiated in plugin code?

from janus-gateway-rtpbroadcast.

kris-lab avatar kris-lab commented on July 20, 2024

Updated priorities #2 (comment)

from janus-gateway-rtpbroadcast.

kris-lab avatar kris-lab commented on July 20, 2024

Updated priorities for still waiting tickets (COMBINED STREAMING/AUDIO plugin). Discussed with @landswellsong

Let's try to estimate ETA for stuff we need to test on Sunday/Monday:

1st priority:

  • streaming: Recording: auto thumbnailer + event notification
  • audioroom: Recording: auto recording and event notification

2nd priority:

  • streaming: Publish: RTP inbound IP filtering/authentication
  • streaming: Switching threshold
  • streaming: Persistence layer for admin notification (super-user)
  • audioroom: Persistence layer for admin notification (super-user)
  • streaming/audio: Supersession authentication

3rd priority:

  • streaming: auto-source-switch on/off command
  • resolve all known bugs
  • remove all TODOs and fixmes

4th priority:

  • streaming: RTP: detect keyframe in the stream
  • streaming: Performance: investigate throughput throttling

from janus-gateway-rtpbroadcast.

kris-lab avatar kris-lab commented on July 20, 2024

Update.

(copying Oleksiy mail)
Hello,
Sorry I had to relocate faster than I though and I wanted to finish what I have.

  • Issue #6 (ip filtering), works and tested
  • Issue #28 (stop recording at session breaking) works for my setup, tested
  • Git mess fixed. Sorry about that, took a long time to figure out.
  • Currently pushing the stop-on-breaking session fix for audio and fixes for bugs reported, needed a clean git for this.
  • Switching underway, I was too delayed by breaking the git, feel very sorry but I think time isn't running out yet.

Kind regards,

@landswellsong Let's try to finish switching today, so we can test full pipeline soon.

from janus-gateway-rtpbroadcast.

njam avatar njam commented on July 20, 2024

@kris-lab still relevant?

from janus-gateway-rtpbroadcast.

kris-lab avatar kris-lab commented on July 20, 2024

Can be closed. Anyway looks good. The only untouched thing is "Performance: investigate throughput throttling".

from janus-gateway-rtpbroadcast.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.