Comments (14)
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.
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.
@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.
Graphical representation of what I mean
from janus-gateway-rtpbroadcast.
Agree, it makes sense to me! @njam please have a look as well
from janus-gateway-rtpbroadcast.
Thx, I'll stick to this now.
from janus-gateway-rtpbroadcast.
lgtm!
from janus-gateway-rtpbroadcast.
Update! We have implemented a quite few things:
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
:
from janus-gateway-rtpbroadcast.
@kris-lab @njam important question, how do I contact cm-janus
for events which are initiated in plugin code?
from janus-gateway-rtpbroadcast.
Updated priorities #2 (comment)
from janus-gateway-rtpbroadcast.
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.
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.
@kris-lab still relevant?
from janus-gateway-rtpbroadcast.
Can be closed. Anyway looks good. The only untouched thing is "Performance: investigate throughput throttling".
from janus-gateway-rtpbroadcast.
Related Issues (20)
- how i can use 1-to-many and UDP-to-UDP proxy? HOT 2
- Add support for mountpoint create with provided audio/video port pairs HOT 1
- Add support to reuse IP/port for UDP server HOT 1
- Adjust "thumbnails recorder" to consider mountpoint destroy - 0 keyframe HOT 2
- Improve logging HOT 2
- Release new version 0.0.28 with code from 0.0.21 HOT 1
- Segmentation fault when creating request HOT 5
- Heads up: reliable multicast is being proposed for inclusion in upstream HOT 2
- does this plugin support h264 recording? HOT 1
- about janus cluster HOT 1
- is this project maintained and used in production? HOT 2
- [ERR] [janus.c:main:3924] The 'janus.plugin.cm.rtpbroadcast' plugin was compiled against an older version of the API (5 < 8), update it to enable it again HOT 2
- plugin.h not found HOT 1
- janus_video died when there's too much packet loss HOT 18
- Crash in cm_rtpbcast_mountpoint_destroy () HOT 2
- Get mountpoint streams in response to a "watch" request HOT 4
- META: Upgrade to newest janus HOT 2
- Avoid autoswitch going up and down repeatedly HOT 1
- h264 support HOT 4
- "list" request doesn't work HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from janus-gateway-rtpbroadcast.