Pear - WebRTC Toolkit for IoT/Embedded Device

Overview

Pear - WebRTC Toolkit for IoT/Embedded Device

pear-ci

Pear is a WebRTC SDK written in C. The SDK aims to integrate IoT/Embedded device with WebRTC applications.

Notice: This project is a work in progress. Currently, only support streaming H264 video to browser.

Dependencies

Getting Started

# sudo apt -y install libglib2.0-dev libssl-dev git cmake ninja-build
# sudo pip3 install meson
# git clone --recursive https://github.com/sepfy/pear
# ./build-third-party.sh
# mkdir cmake
# cd cmake
# cmake ..
# make

Examples

This example is tested on Raspberry Pi zero W with image 2021-01-11-raspios-buster-armhf-lite.img

  1. Open index.html with browser in your computer
  2. Copy textarea content to remote_sdp.txt
  3. Download test video file
  4. Run local file sample. (Please ensure that remote_sdp.txt and test.264 in the same directory)
./cmake/examples/local_file/local_file
  1. Copy base64 sdp answer to browser.
  2. Click start session.

You will see the video on your browser.

Comments
  • PIPE LINE doesn't work well on VM ubuntu

    PIPE LINE doesn't work well on VM ubuntu

    Hello @sepfy !

    i run the example surveillance at my vm ubuntu. The "PIPE_LINE" doesn't work. i google some other command and still not work well. i don't familiar with gstreamer comand. could you provide an comand which can work well ?

    thanks Robert

    opened by robertqd 3
  • run local_file issues

    run local_file issues

    I don't know how to use the local_file example, and after running it, it prints the following:

    eyJ0eXBlIjogImFuc3dlciIsICJzZHAiOiAidj0wXHJcbm89LSAxNDk1Nzk5ODExMDg0OTcwIDE0OTU3OTk4MTEwODQ5NzAgSU4gSVA0IDAuMC4wLjBcclxucz1TdHJlYW1pbmcgVGVzdFxyXG50PTAgMFxyXG5hPWdyb3VwOkJVTkRMRSAwXHJcbmE9bXNpZC1zZW1hbnRpYzogcGVhclxyXG5tPXZpZGVvIDkgVURQL1RMUy9SVFAvU0FWUEYgMTAyXHJcbmM9SU4gSVA0IDAuMC4wLjBcclxuYT1zZW5kb25seVxyXG5hPW1pZDowXHJcbmE9cnRjcC1tdXhcclxuYT1pY2UtdWZyYWc6UXlGMVxyXG5hPWljZS1wd2Q6R3FVTHhHdTBLWU4yNGZtQk4xUVFEZ1xyXG5hPWljZS1vcHRpb25zOnRyaWNrbGVcclxuYT1maW5nZXJwcmludDpzaGEtMjU2IEE0OkU2Ojg4OkYzOjlBOkI2OjBFOkRFOkQ2OjM5Ojc5OkQxOjBEOjY5Ojc3OjAwOjc5OkE1OjE0OkFCOjczOkNEOkU3OjdCOjc0OkU4OkU2OjJDOjMzOkYwOjhEOjQ5XHJcbmE9c2V0dXA6cGFzc2l2ZVxyXG5hPXJ0cG1hcDoxMDIgSDI2NC85MDAwMFxyXG5hPWZtdHA6MTAyIHBhY2tldGl6YXRpb24tbW9kZT0xXHJcbmE9cnRjcC1mYjoxMDIgbmFja1xyXG5hPXJ0Y3AtZmI6MTAyIG5hY2sgcGxpXHJcbmE9cnRjcC1mYjoxMDIgZ29vZy1yZW1iXHJcbmE9Y2FuZGlkYXRlOjEgMSB1ZHAgMjAxNTM2MzMyNyAxMC4xMS4xNy4xNjcgMzM4MjAgdHlwIGhvc3RcclxuYT1jYW5kaWRhdGU6MiAxIHVkcCAxMDE1MDIxODIzIDEwLjExLjE3LjE2NyAwIHR5cCBob3N0XHJcbmE9Y2FuZGlkYXRlOjMgMSB1ZHAgMTAxMDgyNzUxOSAxMC4xMS4xNy4xNjcgNDIyMTUgdHlwIGhvc3RcclxuYT1jYW5kaWRhdGU6NyAxIHVkcCAxNjc5ODE5MDA3IDU4LjI1MC4yMy4xOTQgMzM4MjAgdHlwIHNyZmx4XHJcbmE9Y2FuZGlkYXRlOjggMSB1ZHAgODQ3MjQ5NjYzIDU4LjI1MC4yMy4xOTQgMCB0eXAgc3JmbHhcclxuYT1jYW5kaWRhdGU6OSAxIHVkcCA4NDMwNTUzNTkgNTguMjUwLjIzLjE5NCA0MjIxNSB0eXAgc3JmbHhcclxuIn0=

    ** (process:18272): WARNING **: 19:56:49.715: Failed to GET http://192.168.5.1:5500/rootDesc.xml: Could not connect: Socket I/O timed out, retrying in 5 seconds

    ** (process:18272): WARNING **: 19:56:49.715: Failed to GET http://192.168.5.1:5500/rootDesc.xml: Could not connect: Socket I/O timed out, retrying in 5 seconds

    ** (process:18272): WARNING **: 19:57:00.295: Failed to GET http://192.168.5.1:5500/rootDesc.xml: Could not connect: Socket I/O timed out, retrying in 10 seconds

    ** (process:18272): WARNING **: 19:57:00.295: Failed to GET http://192.168.5.1:5500/rootDesc.xml: Could not connect: Socket I/O timed out, retrying in 10 seconds

    ** (process:18272): WARNING **: 19:57:15.297: Failed to GET http://192.168.5.1:5500/rootDesc.xml: Could not connect: Socket I/O timed out, retrying in 20 seconds

    ** (process:18272): WARNING **: 19:57:15.297: Failed to GET http://192.168.5.1:5500/rootDesc.xml: Could not connect: Socket I/O timed out, retrying in 20 seconds

    ** (process:18272): WARNING **: 19:57:40.297: Maximum number of retries failed, not trying again

    ** (process:18272): WARNING **: 19:57:40.297: Maximum number of retries failed, not trying again

    opened by lbit20131014-berry 3
  • Memory Leak on the gstreamer example

    Memory Leak on the gstreamer example

    When running the gstreamer example on a Pi Zero W , I noticed that the application was slowly but surely increasing it's memory usage, from around 7% as displayed on the top command, to around 70% when the PI crashed after 15 minutes or so. The fix is very simple, you need to unmap the gst buffer once you are done with it.

    I've opened a PR https://github.com/sepfy/pear/pull/9

    opened by icemanaf 1
  • fix crash due to misinitialization of PeerConnection

    fix crash due to misinitialization of PeerConnection

    If PeerConnection is not zeroed upon creation checking for its field to NULL is meaningless (as fields contain garbage) and leads to sigsegvs. For example this happens in peer_connection_ice_recv_cb:

        if(pc->ontrack != NULL) {
          pc->ontrack(buf, len, pc->ontrack_userdata);
        }
    

    This PR contains hotfix for this problem.

    opened by aldoshkind 0
  • docs: fix simple typo, exhange -> exchange

    docs: fix simple typo, exhange -> exchange

    There is a small typo in README.md.

    Should read exchange rather than exhange.

    Semi-automated pull request generated by https://github.com/timgates42/meticulous/blob/master/docs/NOTE.md

    opened by timgates42 0
  • Documention Improvements

    Documention Improvements

    Documentation ( If Missing libraries and tools )

    1. CMake >3.17 needed for meson wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add - sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic main' sudo apt-get update sudo apt install cmake sudo apt install cmake-curses-gui # Recommended, includes ccmake.

    2. While running ./build-third-party.sh

    While compiling add missing lib/headers sudo apt-get install -y gnutls-bin libgupnp-igd-1.0-dev libgirepository1.0-dev libgnutls.*-dev

    1. In Get Started add "cd pear" step git clone --recursive https://github.com/sepfy/pear cd pear ./build-third-party.sh
    opened by cloudties 0
  • Running Surveillance Example on Pi3

    Running Surveillance Example on Pi3

    Hi Sepfy, I started of with video on demand , got that to work just after the change was made to the h264_packetizer.c(102 --> 127) . After I went through the issue list.

    Now trying the Surveillance example . I am using a C270 Logitech camera connected over USB:

    This below are supported formats of camera: ioctl: VIDIOC_ENUM_FMT Type: Video Capture

        [0]: 'YUYV' (YUYV 4:2:2)
        [1]: 'MJPG' (Motion-JPEG, compressed)
    

    The gstream pipeleine setting I use is this: const char PIPE_LINE[] = "v4l2src device=/dev/video0 ! videoconvert ! video/-raw,width=544,height=288,framerate=10/1 ! v4l2h264enc ! h264parse ! mp4mux ! appsink name=peer-connection-sink";

    Just to very above setting work fine dumped stream to mp4 file and it plays back just fine like so: gst-launch-1.0 -e v4l2src device=/dev/video0 ! videoconvert ! video/-raw,width=544,height=288,framerate=10/1 ! v4l2h264enc ! h264parse ! mp4mux ! filesink location=video.mp4

    My problem now is when i run the sample I keep getting this error

    ./examples/surveillance/surveillance Get offer from singaling [INFO /home/pi/myApp/pear/src/dtls_transport.c:291] Remote fingerprint E1:24:F6:04:0E:80:B2:04:AE:3C:6C:18:1B:CD:48:63:A3:97:82:A1:DC:78:C5:E3:07:6B:70:E3:DA:8D:70:03 [INFO /home/pi/myApp/pear/src/dtls_transport.c:292] Local fingerprint 3C:7D:45:8A:DE:52:26:07:49:89:58:B4:8E:B9:E6:44:5E:CD:D4:60:88:4E:32:ED:9B:5C:8D:0C:FD:62:6C:BA [INFO /home/pi/myApp/pear/src/dtls_transport.c:331] Created inbound SRTP session [INFO /home/pi/myApp/pear/src/dtls_transport.c:337] Created outbound SRTP session

    (surveillance:1510): GLib-GObject-CRITICAL **: 20:26:01.074: g_object_set: assertion 'G_IS_OBJECT (object)' failed

    Any hints!!!!

    opened by Vishal5757 1
  • Working over TURN

    Working over TURN

    Hello @sepfy ! I am trying to use Pear to work over TURN server. I use Coturn but unable to make it work. Do you have any experience with this? Maybe you have example? Thanks!

    opened by aldoshkin 2
  • The P2P can be established,but the video not display on chrome browse

    The P2P can be established,but the video not display on chrome browse

    Hi @sepfy could you help me? The description as follown: one termination is chrome(chrome/100.0.4896.127), another termiation is that pear was run at ubuntu on virtual machine. The P2P has been established. we can see the video data can be sent frome pear to chrome from wireshark. but the video doesn't display on chrome.
    the sdp offer: :48 createOfferOnSuccess (type: "offer", 2 sections) Copy description to clipboard v=0 (6 more lines) o=- 8752117117835402785 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE 0 a=extmap-allow-mixed a=msid-semantic: WMS m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 127 121 125 107 108 109 124 120 123 119 35 36 41 42 114 115 116 117 118 (133 more lines) mid=0 c=IN IP4 0.0.0.0 a=rtcp:9 IN IP4 0.0.0.0 a=ice-ufrag:jnf4 a=ice-pwd:bd90gvRbdL46FjqTu3AQ/EqY a=ice-options:trickle a=fingerprint:sha-256 1D:D5:DB:DB:D7:CA:B8:AA:7F:61:9A:74:0E:04:50:EE:41:5C:21:DB:42:B2:98:3F:4D:4F:91:5B:7B:B8:71:35 a=setup:actpass a=mid:0 a=extmap:1 urn:ietf:params:rtp-hdrext:toffset a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time a=extmap:3 urn:3gpp:video-orientation a=extmap:4 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01 a=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space a=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid a=extmap:10 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id a=extmap:11 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id a=sendrecv a=msid:- 4c46546f-7651-420e-b1af-8754bd3ea3ad a=rtcp-mux a=rtcp-rsize a=rtpmap:96 VP8/90000 a=rtcp-fb:96 goog-remb a=rtcp-fb:96 transport-cc a=rtcp-fb:96 ccm fir a=rtcp-fb:96 nack a=rtcp-fb:96 nack pli a=rtpmap:97 rtx/90000 a=fmtp:97 apt=96 a=rtpmap:98 VP9/90000 a=rtcp-fb:98 goog-remb a=rtcp-fb:98 transport-cc a=rtcp-fb:98 ccm fir a=rtcp-fb:98 nack a=rtcp-fb:98 nack pli a=fmtp:98 profile-id=0 a=rtpmap:99 rtx/90000 a=fmtp:99 apt=98 a=rtpmap:100 VP9/90000 a=rtcp-fb:100 goog-remb a=rtcp-fb:100 transport-cc a=rtcp-fb:100 ccm fir a=rtcp-fb:100 nack a=rtcp-fb:100 nack pli a=fmtp:100 profile-id=2 a=rtpmap:101 rtx/90000 a=fmtp:101 apt=100 a=rtpmap:127 H264/90000 a=rtcp-fb:127 goog-remb a=rtcp-fb:127 transport-cc a=rtcp-fb:127 ccm fir a=rtcp-fb:127 nack a=rtcp-fb:127 nack pli a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f a=rtpmap:121 rtx/90000 a=fmtp:121 apt=127 a=rtpmap:125 H264/90000 a=rtcp-fb:125 goog-remb a=rtcp-fb:125 transport-cc a=rtcp-fb:125 ccm fir a=rtcp-fb:125 nack a=rtcp-fb:125 nack pli a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f a=rtpmap:107 rtx/90000 a=fmtp:107 apt=125 a=rtpmap:108 H264/90000 a=rtcp-fb:108 goog-remb a=rtcp-fb:108 transport-cc a=rtcp-fb:108 ccm fir a=rtcp-fb:108 nack a=rtcp-fb:108 nack pli a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f a=rtpmap:109 rtx/90000 a=fmtp:109 apt=108 a=rtpmap:124 H264/90000 a=rtcp-fb:124 goog-remb a=rtcp-fb:124 transport-cc a=rtcp-fb:124 ccm fir a=rtcp-fb:124 nack a=rtcp-fb:124 nack pli a=fmtp:124 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f a=rtpmap:120 rtx/90000 a=fmtp:120 apt=124 a=rtpmap:123 H264/90000 a=rtcp-fb:123 goog-remb a=rtcp-fb:123 transport-cc a=rtcp-fb:123 ccm fir a=rtcp-fb:123 nack a=rtcp-fb:123 nack pli a=fmtp:123 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f a=rtpmap:119 rtx/90000 a=fmtp:119 apt=123 a=rtpmap:35 H264/90000 a=rtcp-fb:35 goog-remb a=rtcp-fb:35 transport-cc a=rtcp-fb:35 ccm fir a=rtcp-fb:35 nack a=rtcp-fb:35 nack pli a=fmtp:35 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=4d001f a=rtpmap:36 rtx/90000 a=fmtp:36 apt=35 a=rtpmap:41 AV1/90000 a=rtcp-fb:41 goog-remb a=rtcp-fb:41 transport-cc a=rtcp-fb:41 ccm fir a=rtcp-fb:41 nack a=rtcp-fb:41 nack pli a=rtpmap:42 rtx/90000 a=fmtp:42 apt=41 a=rtpmap:114 H264/90000 a=rtcp-fb:114 goog-remb a=rtcp-fb:114 transport-cc a=rtcp-fb:114 ccm fir a=rtcp-fb:114 nack a=rtcp-fb:114 nack pli a=fmtp:114 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=64001f a=rtpmap:115 rtx/90000 a=fmtp:115 apt=114 a=rtpmap:116 red/90000 a=rtpmap:117 rtx/90000 a=fmtp:117 apt=116 a=rtpmap:118 ulpfec/90000 a=ssrc-group:FID 2322705154 2857601720 a=ssrc:2322705154 cname:ZmMkzc9v9XyhMLOi a=ssrc:2322705154 msid:- 4c46546f-7651-420e-b1af-8754bd3ea3ad a=ssrc:2322705154 mslabel:- a=ssrc:2322705154 label:4c46546f-7651-420e-b1af-8754bd3ea3ad a=ssrc:2857601720 cname:ZmMkzc9v9XyhMLOi a=ssrc:2857601720 msid:- 4c46546f-7651-420e-b1af-8754bd3ea3ad a=ssrc:2857601720 mslabel:- a=ssrc:2857601720 label:4c46546f-7651-420e-b1af-8754bd3ea3ad

    the sdp answer: setRemoteDescription (type: "answer", 2 sections) Copy description to clipboard v=0 (5 more lines) o=- 1495799811084970 1495799811084970 IN IP4 0.0.0.0 s=- t=0 0 a=msid-semantic: WMS a=group:BUNDLE 0 m=video 9 UDP/TLS/RTP/SAVPF 127 121 (24 more lines) mid=0 a=rtpmap:127 H264/90000 a=rtcp-fb:127 goog-remb a=rtcp-fb:127 transport-cc a=rtcp-fb:127 com fir a=rtcp-fb:127 nack a=rtcp-fb:127 nack pli a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f a=rtpmap:121 rtx/90000 a=fmtp:121 apt=127 c=IN IP4 0.0.0.0 a=sendonly a=mid:0 a=rtcp-mux a=ice-ufrag:iBLd a=ice-pwd:s31NZ3bzksBs3+DvMAvko9 a=ice-options:trickle a=fingerprint:sha-256 52:CB:F9:3D:51:E0:9A:94:EC:01:86:F5:11:90:17:05:C3:42:ED:A5:41:27:E2:EA:8A:B1:AC:29:BC:2F:19:C4 a=setup:passive a=candidate:1 1 udp 2015363327 192.168.119.128 58364 typ host a=candidate:2 1 udp 1015021823 192.168.119.128 0 typ host a=candidate:3 1 udp 1010827519 192.168.119.128 58373 typ host a=candidate:7 1 udp 1679819007 183.134.94.123 59217 typ srflx a=candidate:8 1 udp 847249663 183.134.94.123 0 typ srflx a=candidate:9 1 udp 843055359 183.134.94.123 58373 typ srflx

    chrome webrtc internal debug: image

    opened by robertqd 5
Owner
null
SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.

SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.

ossrs 20k Nov 25, 2022
webrtc c++ library for mediasoup with full sfu c++ demo

项目说明: 本项目是基于mediasoup v3 版本 webrtc m84版本 的sfu的js版本修改成的c++版本,支持和js版本一样的完整demo功能,但是本项目是直接把worker进程代码集成 到了demo可以直接代码级别的调用,支持VC2019,xcode,CLion的开发环境,可以直接断

null 117 Nov 7, 2022
yangwebrtc is a self-developed rtc architecture supporting Webrtc/Srt/Rtmp, including a variety of video and audio codecs and processing, etc.

YangWebrtc Overview yangwebrtc是一个自主研发的支持Webrtc/Srt/Rtmp的rtc架构,包含多种视音频编解码和处理等。 支持视频会议、高清录播直播、直播互动等多种视音频应用。 可用于远程教育、远程医疗、指挥调度、安防监控、影视录播、协同办公、直播互动等多种行业应用

null 323 Nov 15, 2022
media server based on c++11, support webrtc/rtmp/httpflv/websocket flv

cpp_media_server A media server is writen by C++11, and the network io is writen by Boost.Asio. It support rtmp/httpflv/websocket(flv)/webrtc. preinst

Alex.CR 139 Jun 30, 2022
Yangwebrtc - Webrtc Libary for PC, non-google lib

MetaRTC(yangwebrtc) Overview MetaRTC(yangwebrtc)是一个自主研发的支持Webrtc/Srt/Rtmp的rtc架构,包含多种视音频编解码和处理等。 yangwebrtc为PC版本 metaRTC为嵌入式版本 https://github.com/metar

meta 328 Nov 23, 2022
Enabling services on your device 79 Nov 13, 2022
Simple useful interoperability tests for WebRTC libraries. If you are a WebRTC library developer we'd love to include you!

Overview This project aims to be a convenient location for WebRTC library developers to perform interoperability tests. Who can Participate The projec

Aaron Clauson 103 Sep 8, 2022
OvenMediaEngine (OME) is a Streaming Server for Sub-Second Latency. It supports WebRTC, RTMP, SRT, MPEG-2 TS, RTSP as input, WebRTC, LL-DASH, MPEG-DASH, HLS as output.

OvenMediaEngine (OME) is a Streaming Server for Sub-Second Latency. It supports WebRTC, RTMP, SRT, MPEG-2 TS, RTSP as input, WebRTC, LL-DASH, MPEG-DASH, HLS as output.

AirenSoft 1.7k Nov 24, 2022
Espressif IoT Library. IoT Device Drivers, Documentations And Solutions.

Espressif IoT Library. IoT Device Drivers, Documentations And Solutions.

Espressif Systems 1.3k Nov 23, 2022
IoT for Beginners - 12 Weeks, 24 Lessons, IoT for All!

Azure Cloud Advocates at Microsoft are pleased to offer a 12-week, 24-lesson curriculum all about IoT basics. Each lesson includes pre- and post-lesson quizzes, written instructions to complete the lesson, a solution, an assignment and more. Our project-based pedagogy allows you to learn while building, a proven way for new skills to 'stick'.

Microsoft 11.3k Nov 21, 2022
Iot-Surveillance-Car - This is a IOT Based Surveillance Car which can be controlled, tracked globally as well as its data can be accessed globally

Iot-Surveillance-Car - This is a IOT Based Surveillance Car which can be controlled, tracked globally as well as its data can be accessed globally. The camera on the front of the car can also be monitored globally. It can go anywhere where sim connection is available. 5th Sem Mini project

Rahul Vijan 4 Nov 4, 2022
Hyelicht is an IoT/embedded project for home decoration/automation.

Hyelicht is an IoT/embedded project for home decoration/automation. Its software allows you to do colorful painting and animations on a LED-b

Eike Hein 7 Jan 17, 2022
BMI_automatics-faceshielding-device - this is a project utilizing STM32, MATLAB,Softmax classifier to achieve a portable face shielding(mask) device

BMI_automatics-faceshielding-device this is a project utilizing STM32, MATLAB,Softmax classifier to achieve a portable face shielding(mask) device in

Lyu Tian 2 Dec 23, 2021
Microsoft Cognitive Toolkit (CNTK), an open source deep-learning toolkit

CNTK Chat Windows build status Linux build status The Microsoft Cognitive Toolkit (https://cntk.ai) is a unified deep learning toolkit that describes

Microsoft 17.3k Nov 22, 2022
Lite.AI.ToolKit 🚀🚀🌟: A lite C++ toolkit of awesome AI models such as RobustVideoMatting🔥, YOLOX🔥, YOLOP🔥 etc.

Lite.AI.ToolKit ?? ?? ?? : A lite C++ toolkit of awesome AI models which contains 70+ models now. It's a collection of personal interests. Such as RVM, YOLOX, YOLOP, YOLOR, YoloV5, DeepLabV3, ArcFace, etc.

DefTruth 2.3k Nov 18, 2022
Zenotech 6 Oct 21, 2022
Insight Toolkit (ITK) is an open-source, cross-platform toolkit for N-dimensional scientific image processing, segmentation, and registration

ITK: The Insight Toolkit C++ Python Linux macOS Windows Linux (Code coverage) Links Homepage Download Discussion Software Guide Help Examples Issue tr

Insight Software Consortium 1.1k Nov 24, 2022
Microsoft Cognitive Toolkit (CNTK), an open source deep-learning toolkit

The Microsoft Cognitive Toolkit is a unified deep learning toolkit that describes neural networks as a series of computational steps via a directed graph.

Microsoft 17.3k Nov 24, 2022
SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.

SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.

ossrs 20k Nov 25, 2022
webrtc c++ library for mediasoup with full sfu c++ demo

项目说明: 本项目是基于mediasoup v3 版本 webrtc m84版本 的sfu的js版本修改成的c++版本,支持和js版本一样的完整demo功能,但是本项目是直接把worker进程代码集成 到了demo可以直接代码级别的调用,支持VC2019,xcode,CLion的开发环境,可以直接断

null 117 Nov 7, 2022