sfu | future proof , experimental WebRTC VP9 SVC SFU wit end | Runtime Evironment library

 by   medooze JavaScript Version: 0.0.8 License: MIT

kandi X-RAY | sfu Summary

kandi X-RAY | sfu Summary

sfu is a JavaScript library typically used in Server, Runtime Evironment, Nodejs applications. sfu has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.

A future proof, experimental WebRTC VP9 SVC SFU.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              sfu has a low active ecosystem.
              It has 168 star(s) with 42 fork(s). There are 21 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 6 open issues and 10 have been closed. On average issues are closed in 0 days. There are 1 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of sfu is 0.0.8

            kandi-Quality Quality

              sfu has 0 bugs and 0 code smells.

            kandi-Security Security

              sfu has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              sfu code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              sfu is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              sfu releases are available to install and integrate.
              Installation instructions, examples and code snippets are available.
              sfu saves you 1274 person hours of effort in developing the same functionality from scratch.
              It has 2862 lines of code, 264 functions and 43 files.
              It has medium code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed sfu and discovered the below as its top functions. This is intended to give you an instant insight into sfu implemented functionality, and help decide if they suit your requirements.
            • Connect to the GPIO .
            • Add remote track to track
            • Encrypt in the chunk .
            • Derive a room key
            • Meter class representing the volume measurement of the measurement .
            • Draws a new video .
            • Decrypt function
            • Add a local video to a stream
            • fired event .
            • Create a new EventEmitter .
            Get all kandi verified functions for this library.

            sfu Key Features

            No Key Features are available at this moment for sfu.

            sfu Examples and Code Snippets

            No Code Snippets are available at this moment for sfu.

            Community Discussions

            QUESTION

            Reading in a pandas column as a base64 string
            Asked 2021-Oct-21 at 02:10

            I have a csv file that I have read into Pandas. One of the columns in the csv contains a base64 encoded value but it gets read in by Pandas as a string. How would I go about converting this value (now read in as a string) back to a useable base64 value. The structure looks like this.

            I have an example here:

            ...

            ANSWER

            Answered 2021-Oct-21 at 01:26

            Ok I think I've found out your issue. Let's download a fresh file to use as an example and work with that. I'm working with a small snippet of a gray square.

            Source https://stackoverflow.com/questions/69610583

            QUESTION

            How do you call the inner part of a regex? (the one delimited by the delimiters)
            Asked 2021-Sep-16 at 17:43

            How do you call the "inner part" of a regular expression without the delimiters?

            For example:

            Given these regular expressions: /\d+/ and #(hello)# we can break each one down into 3 parts:

            • / + \d+ + /
            • # + (hello) + #

            We all name / or # the delimiter.

            How do you call the inner part? The \d+ or (hello) part?

            In this BNF https://www2.cs.sfu.ca/~cameron/Teaching/384/99-3/regexp-plg.html referenced here https://stackoverflow.com/a/265466/1315009 it seems they call "regular expression" to the inner part. If that is true, then how do you call the regular expression with the delimiters concatenated?

            The reason for asking this is Clean Code rules. I'm writing a tokenizer and I need to clearly name the "full thing" and the "inner thing" with proper names.

            ...

            ANSWER

            Answered 2021-Sep-16 at 17:43

            QUESTION

            Pion custom SFU server not working inside docker
            Asked 2021-Aug-28 at 00:23

            I followed this example: https://github.com/pion/example-webrtc-applications/tree/master/sfu-ws

            • on local is working

            • I made a linux build, I put it on a server, is working

            • I put it inside a docker container, it's not working anymore.

            On docker I opened the port range:

            • 50000-50200:50000-50200/udp

              ...

            ANSWER

            Answered 2021-Aug-28 at 00:23

            The issue is that Pion (or any WebRTC implementation) is only aware of IP address it is listening on. It can't be aware of all the address that map/forward to it. People will also call this the Public IP or NAT Mapping. So when Pion emits it candidates they will probably look like 10.10.0.* and the remote peer will be unable to contact that.

            What you should do is use the SettingEngine and set SetNat1To1IPs. If you know the public IP of the host it will rewrite the candidates with the public IP.

            ICE is a tricky process. To understand it conceptually WebRTC for the Curious#Networking may be helpful. Will make sure to answer any follow up questions on SO quickly!

            Source https://stackoverflow.com/questions/68959096

            QUESTION

            Is there a better way to enumarate a list within a list?
            Asked 2021-Apr-29 at 05:26

            I need to insert a item representing an index value for each list within a list.

            So, I have this:

            ...

            ANSWER

            Answered 2021-Apr-29 at 05:22

            Keep the for loop, but use enumerate() there.

            Source https://stackoverflow.com/questions/67311398

            QUESTION

            Append a list on a list inside a dictionary
            Asked 2021-Apr-24 at 06:16

            I need to create a dictionary where values are a list of lists:

            ...

            ANSWER

            Answered 2021-Apr-24 at 06:11

            You're not appending to the list that's in the dictionary. [].append(line) creates a temporary list, appends to it, and then returns None, and this None value is put into the dictionary.

            You can use a collections.defaultdict for this, to create a dictionary element that contains a list as needed.

            Source https://stackoverflow.com/questions/67239777

            QUESTION

            How to read CAS ticket validation XML using spring security?
            Asked 2021-Feb-17 at 13:36

            I have a Spring Boot application and use the Java Apereo CAS Client (version 3.6.2) to use an CAS server for authentication. In other words, I want to turn my app into a CAS client, I didn't set up the CAS server myself.

            I checked the list of calls made to CAS server:

            The first call to the CAS server is made, but I don't see the second call to the server for ticket validation (i.e., a call to https://cas-server-address/cas/serviceValidate URL) that will return an XML document with user and authtype attributes that I want to extract to store in the database.

            I have 2 questions:

            1. Why there is no second call for the CAS server for ticket validation? Is it hidden?
            2. How do I extract user and authtype attributes from the XML document and store them in the database?
            ...

            ANSWER

            Answered 2021-Feb-17 at 13:36

            Why there is no second call for the CAS server for ticket validation?

            There is. The second call is a back-channel call from your application server over to the CAS server. By definition, this is not something you would see in your browser. This call goes over to the CAS server behind the scenes to validate the service ticket received in the first leg (i.e. ST-xyz). The Java CAS client library should be automatically doing this for you, and you can verify this in the logs.

            If you don't see this happening, your configuration is not set correctly or there is an error along the process.

            Is it hidden?

            Hidden from the browser, as it's a back-channel call. For additional details on what happens and why, please study the CAS protocol.

            How do I extract user and authtype attributes from the XML document and store them in the database?

            The Java CAS client library typically extracts the user id and other attributes. Then, the user-id would be available under the REMOTE-USER header that can be fetched via the http request object. If you have access to the http session, you can also fetch the final Assertion from the session which contains the CAS payload:

            Source https://stackoverflow.com/questions/66142443

            QUESTION

            What type of connection is present between SFU & Client machine?
            Asked 2020-Nov-22 at 22:26

            I have considerably read about WebRTC, ICE, Stun and Turn.

            Now, When it comes to SFU, I'm not sure, what connection is established between client(end user browser) & the SFU (is it a webrtc connection ??). Could someone elaborate the flow ?

            My assumption: When it is SFU based architecture. SFU & Client establish webrtc connection & send data to each other. SFU knows all the people in the current room & sends the data accordingly. Initial signalling gets the ice candidates of the sfu server to the client & vice-versa.

            Am I correct ?

            ...

            ANSWER

            Answered 2020-Nov-22 at 22:26

            Yes the connection between a client and an SFU is a WebRTC connection. The SFU is acting as a peer end-point.

            There's no distinction made in the w3c specification between a peer and an SFU, except it leaves out defining reception of simulcast in browser-based clients, something you'll need an SFU (or MCU) for.

            Typical flow
            1. Do a regular offer/answer exchange between each client and the SFU end-point over signaling.
              • If the server is the offerer it sends an offer to receive simulcast to the client. A normal offer, except the client can tell after setRemoteDescription it will be sending multiple encodings (layers) of a single video track:

            Source https://stackoverflow.com/questions/64953796

            QUESTION

            Call timed out (error 1006) - bigbluebutton
            Asked 2020-Nov-17 at 18:58

            I have installed bigbluebutton on my serverand it was working properly but suddenly microphone can not connect anymore and after a while being stucked in "echo test" i'll get 1006 error and i have tested:

            ...

            ANSWER

            Answered 2020-Aug-30 at 16:52

            run the command:

            sudo nano /etc/bigbluebutton/nginx/sip.nginx

            something like this will open:

            Source https://stackoverflow.com/questions/62981064

            QUESTION

            Kerberos Resourced based constrained delegation in cross realm setup
            Asked 2020-Oct-23 at 16:50

            I'm trying to use latest JDK 8 to perform resource based constrained delegation, and seems to be running into issues getting the service ticket for the last leg of the S4U2Proxy call.

            Here is my setup: Two microsoft AD forest with two way forest authentication enabled.

            • ForestA: forestA.com
            • ForestB: forestB.com
            • Front end service is in ForestA with SPN of http/myappserver.forestA.com
            • Back end service in ForestB with SPN of http/backend.forestB.com
            • The user being impersonated is in ForestB with username of userB.

            I've successfully utilized S4U2Self protocol and retrieved the service ticket for userB to Front end service in ForestA. However, when trying to utilized S4U2Proxy to get service ticket to back end service in ForestB, the request fails with error code kerberos error 12.

            Upon investigating the audit logs from event Viewer on the domain controller of ForestB, it indicates the error message is 0xC000019B (Event Id 4769), which seems to be related to some generic trust setup issue.

            Any further requests with the same payload with result in Kerberos error code 28 back from ForestB's domainController. Likely due to caching of kerberos ticket from before?

            Update:

            This setup works fine if the front end service and the user are in the same forest, and the back end service is in a different forest.

            It also works when front end service and back end service are in one forest, and the user is in a different forest.

            ...

            ANSWER

            Answered 2020-Oct-23 at 16:48

            After discussing the matter with Microsoft, it was confirmed that this specific case is not supported by Microsoft AD by design. Specifically if front end service is in one forest, and the user and resource service are in a different forest, then this use case is not supported.

            Hopefully this helps for someone that encounter this issue in the future.

            Source https://stackoverflow.com/questions/64146021

            QUESTION

            Does Google webrtc native implementation have support for SFU?
            Asked 2020-Oct-21 at 15:29
            1. Does Google WebRTC Native implementation has support for SFU?
            2. Does Google WebRTC Native implementation support for integrating custom/hardware encoder/decoder?
            ...

            ANSWER

            Answered 2020-Oct-21 at 05:07

            Not without alteration.

            Internally WebRTC's internal audio/video pipelines are directly tied to encoder/decoders.

            PeerConnectionFactory allows you to provide a video decoder/encoder factory, so you can short circuit the logic here, and grab the encoded frames, mock up a stream, and feed them directly into it as a relay, creating a new PeerConnection and setting those streams onto it.

            The audio end is more difficult. There isn't a codec factory, so you will have to short circuit the logic there probably by alteration of libwebrtc.

            The final question is RTCP termination, and how to override the mechanisms for quality/bandwidth control to not create a "One goes out, they all go out." situation.

            Since libwebrtc will be the SFU, it will receive RTCP feedback from its remote peer for the content it is proxying, and vice versa.

            For a 1-1 situation, it needs to be able to forward the RTCP feedback to the remote peer.

            For multipoint, it needs to perform some logic to determine if one of the peers is problematic, and stop sending it video, switch off its video feed, or attempt to switch to a lower bitrate video stream. Basically it needs to act as a conduit that attempts to predict why/how packet loss is occurring, and keep as many audio/video feeds operating normally at at the highest possible quality for each peer.

            How exactly to hijack the RTCP feedback mechanisms in libwebrtc, I think that again will likely require some customization/hooks into libwebrtc

            Source https://stackoverflow.com/questions/64456993

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install sfu

            You just need to install all the depencencies and generate the ssl certificates:. If you get an error like this.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/medooze/sfu.git

          • CLI

            gh repo clone medooze/sfu

          • sshUrl

            git@github.com:medooze/sfu.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link