Top 11 C Webrtc Projects
FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom switches to a versatile software implementation that runs on any commodity hardware. From a Raspberry PI to a multi-core server, FreeSWITCH can unlock the telecommunications potential of any device.Project mention: UDM Pro listening on undocumented TCP port 2856 with cert valid for 100 years - what is this and how do I turn it off? | reddit.com/r/Ubiquiti | 2021-04-01
FreeSwitch is a telecom stack similar to Asterisk. See here: freeswitch. It would be to support VoIP on the UDMP.
Kamailio - The Open Source SIP Server for large VoIP and real-time communication platforms -
Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.
Amazon Kinesis Video Streams Webrtc SDK is for developers to install and customize realtime communication between devices and enable secure streaming of video, audio to Kinesis Video Streams.Project mention: amazon kvs C client with wowza | reddit.com/r/WebRTC | 2021-10-05
I dont know if anyone has tried this, but Im trying to get a rPi working with https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c and wowza (a streaming engine that supports webRTC).
WebRTC Library for IoT/Embedded Device using C (by sepfy)Project mention: A simple C implementation to stream H.264 to browser using WebRTC | news.ycombinator.com | 2021-04-07
I think there's some truth in what as-j is saying. Rust binaries (and C++ ones) tend to be larger than C ones. I think the major reasons are (a) Rust dependencies being statically linked due to a lack of ABI stability, (b) inclusion of portions of the (statically linked, see a) Rust standard library used by the program where C code uses libc, (c) code bloat due to monomorphization, (d) the ease of just using a full-featured library where someone writing in C might cheat a little bit. As an example of what I mean by the last point, see sdp_attribute_get_answer in this codebase.  It's writing JSON, but it doesn't use a JSON library that actually escapes the included string. It just assumes the included string doesn't have a quote character in it. Is that assumption valid? Will it always be valid? I'm not sure on quick inspection.
There are ways around all of these:
* a. Static vs dynamic linkage: in an embedded system, it'd be reasonable to just produce a single userspace binary that does everything. It can change its behavior based on argv. I think this is not too unusual for constrained systems even with C binaries. Eg busybox does it. If you only have one binary, you don't need dynamic linking. Also, I think it's not strictly true that Rust doesn't support dynamic linking. I think you can dynamically link everything if you ensure the whole system is built with the same compiler version.
* b. Standard library. You don't have to use it at all, or you can use it sparingly, paying only for what you use.
* c. Monomorphization. You could write (for example) a Go-like map  rather than relying so heavily on monomorphization. I'd love to see someone take this idea as far as possible; it might be a good idea for a lot of non-inner-loop code in general, not just on tight embedded systems.
* d. Using full-featured libraries. Obviously no one is making you do this; the same cheats available in C are available in Rust.
but in fairness, the further you go down this path, the further you are from just being able to just take advantage of the whole Rust ecosystem.
Personally, I'd still rather develop or use a #![no_std] Rust codebase than a C one. Memory safety is important to me. IOT devices are no exception to that. Their security is historically horrible but I'd like to change that.
This is a fork of OBS-studio with generic support for webrtc. It leverages the same webrtc implementation most browsers use.Project mention: OBS->OBSNinja->OBS without virtual webcam | reddit.com/r/OBSNinja | 2021-02-22
What you'd want is for OBS to output the WebRTC stream itself, rather than going through the webcam interface for this. This is not natively available, but there is a project that claims to do this: https://github.com/CoSMoSoftware/OBS-studio-webrtc
WebRTC and ORTC with a little bit of RAWR!Project mention: WebRTC ➕ Build Yet another Chatting app💭 but P2P/E2EE🤯.!! | dev.to | 2021-07-01
single header C(99) library to implement client-server network code for gamesProject mention: Nbnet: Single header C99 library implements client-server network code for games | news.ycombinator.com | 2021-10-06
Deliver Cleaner and Safer Code - Right in Your IDE of Choice!. SonarLint is a free and open source IDE extension that identifies and catches bugs and vulnerabilities as you code, directly in the IDE. Install from your favorite IDE marketplace today.
JUICE is a UDP Interactive Connectivity Establishment libraryProject mention: A simple C implementation to stream H.264 to browser using WebRTC | news.ycombinator.com | 2021-04-07
Nice, this looks like a simple and clear proof of concept!
In practice, the dependency on glib, which depends in glib, can become a practical problem for embedded devices.
That's actually why I developped libjuice  as the default ICE backend of libdatachannel .
Lightweight STUN/TURN serverProject mention: Show HN: Violet, a lightweight STUN/TURN server written in C | news.ycombinator.com | 2021-02-15
tiny/fast webRTC video conferencing gatewayProject mention: a question about mesh connection | reddit.com/r/WebRTC | 2021-10-04
You're describing an "SFU" https://webrtcglossary.com/sfu/#:~:text=SFU%20stands%20for%20Selective%20Forwarding,and%20not%20a%20specific%20device. I think. I tried my hand at writing an all-in-one webserver that handled the STUN and the multiplexing (https://github.com/justinb01981/tiny-webrtc-gw)
Code for the paper "Poking a Hole in the Wall: Efficient Censorship-Resistant Internet Communications by Parasitizing on WebRTC" [ACM SIGSAC CCS '20]Project mention: How to control which stream an SFU sends? | reddit.com/r/WebRTC | 2021-05-04
Peer-to-peer would of course solve the problem, but there is already a solution for this: https://github.com/dmbb/Protozoa (this system uses the channel fully, completing replacing the video frame). Also, during my research I found that peer-to-peer is seldom used in video calls with more than 2 participants (or never used in the case of discord, jitsi, etc).
C Webrtc related posts
Switched Work Computer from MacOS to Fedora 35 on Thinkpad - 2 Week Impressions
5 projects | reddit.com/r/linux | 22 Dec 2021
Homelab server suggestions for live video production?
2 projects | reddit.com/r/homelab | 8 Dec 2021
LTT Linux Challenge - Part 3
6 projects | reddit.com/r/linux | 4 Dec 2021
Nbnet: Single header C99 library implements client-server network code for games
1 project | news.ycombinator.com | 6 Oct 2021
amazon kvs C client with wowza
1 project | reddit.com/r/WebRTC | 5 Oct 2021
a question about mesh connection
1 project | reddit.com/r/WebRTC | 4 Oct 2021
nbnet - A C(99) network library for game development
1 project | reddit.com/r/C_Programming | 27 May 2021
What are some of the best open-source Webrtc projects in C? This list will help you:
Are you hiring? Post a new remote job listing for free.