All Projects → llamerada-jp → Webrtc Cpp Sample

llamerada-jp / Webrtc Cpp Sample

Licence: mit
Sample program for using WebRTC on C++.

Labels

Projects that are alternatives of or similar to Webrtc Cpp Sample

Sdp
RFC 4566 SDP implementation in go
Stars: ✭ 109 (-11.38%)
Mutual labels:  webrtc
Webdrop
Easiest group P2P File & Message transfer in browser with WebRTC 🔥. Cross-platform alternative to Apple's AirDrop, Xender, ShareIT with the same speed over LAN. No installation, just a website :)
Stars: ✭ 119 (-3.25%)
Mutual labels:  webrtc
Stun
Low-level Session Traversal Utilities for NAT (STUN) client and server
Stars: ✭ 120 (-2.44%)
Mutual labels:  webrtc
Netsix
Netsix allows you to share videos with your friends in a real peer-to-peer manner using WebRTC.
Stars: ✭ 113 (-8.13%)
Mutual labels:  webrtc
Deskreen
Deskreen turns any device with a web browser into a secondary screen for your computer
Stars: ✭ 12,014 (+9667.48%)
Mutual labels:  webrtc
Flok
Web-based P2P collaborative editor for live coding sounds and images
Stars: ✭ 119 (-3.25%)
Mutual labels:  webrtc
Simplewebrtcexample ios
Simple example for WebRTC on iOS written in swift5
Stars: ✭ 108 (-12.2%)
Mutual labels:  webrtc
Wave Share
Serverless, peer-to-peer, local file sharing through sound
Stars: ✭ 1,641 (+1234.15%)
Mutual labels:  webrtc
Filegogo
A file transfer tool that can be used in the browser webrtc p2p
Stars: ✭ 117 (-4.88%)
Mutual labels:  webrtc
Balena Cam
Network Camera with Raspberry Pi and WebRTC. Tutorial:
Stars: ✭ 120 (-2.44%)
Mutual labels:  webrtc
Ice
A Go implementation of ICE
Stars: ✭ 114 (-7.32%)
Mutual labels:  webrtc
Webrtc Data Channel Demo
WebRTC Data Channel demo
Stars: ✭ 116 (-5.69%)
Mutual labels:  webrtc
Notes
let me know if my notes help you :D (it's a mess, I know)
Stars: ✭ 119 (-3.25%)
Mutual labels:  webrtc
Webrtc
swoole webrtc demo
Stars: ✭ 107 (-13.01%)
Mutual labels:  webrtc
Webrtc Sdp
Rust SDP parser for WebRTC
Stars: ✭ 121 (-1.63%)
Mutual labels:  webrtc
Turn
RFC 5766 TURN implementation in go
Stars: ✭ 109 (-11.38%)
Mutual labels:  webrtc
Action Cable Signaling Server
🤝Rails implementation of a WebRTC Signaling Server
Stars: ✭ 118 (-4.07%)
Mutual labels:  webrtc
Xsound
Web Audio API Library for Synthesizer, Effects, Visualization, Multi-Track Recording, Audio Streaming, Visual Audio Sprite ...
Stars: ✭ 123 (+0%)
Mutual labels:  webrtc
Roll Call
📞 Free and reliable audio calls for everyone w/ browser p2p.
Stars: ✭ 1,563 (+1170.73%)
Mutual labels:  webrtc
Rtp
A Go implementation of RTP
Stars: ✭ 120 (-2.44%)
Mutual labels:  webrtc

WebRTC C++ sample

Sample program for using WebRTC(DataChannel) on C++. (README.en.md is English translation of this file.)

WebRTCのDataChannelをC++から利用するサンプルコード。

Requirement

  • Mac OSX
  • Ubuntu

Compile

$ cd <path to work>
$ git clone --depth 1 https://github.com/llamerada-jp/webrtc-cpp-sample.git
$ cd webrtc-cpp-sample
$ git submodule init
$ git submodule update
$ sh build.sh

Run

コンソールを2つ起動して、プロセス間通信ができることを確認。 ICEサーバは使っていないので、NAT同士の通信はできないはず。

Connection

コンソール1で作業

$ cd <path to work>
$ ./sample
0x7fff791c9000:Main thread
0x700000081000:RTC thread
sdp1
0x700000081000:PeerConnectionObserver::RenegotiationNeeded
0x700000081000:CreateSessionDescriptionObserver::OnSuccess
0x700000081000:PeerConnectionObserver::SignalingChange(1)
Offer SDP:begin
<文字列Aとしてコピー>
Offer SDP:end
0x700000081000:SetSessionDescriptionObserver::OnSuccess
0x700000081000:PeerConnectionObserver::IceGatheringChange(1)
0x700000081000:PeerConnectionObserver::IceCandidate
0x700000081000:PeerConnectionObserver::IceCandidate
0x700000081000:PeerConnectionObserver::IceCandidate
0x700000081000:PeerConnectionObserver::IceGatheringChange(2)
sdp3
<コンソール2に表示される文字列Bを貼り付け>
;
0x700000081000:PeerConnectionObserver::SignalingChange(0)
0x700000081000:PeerConnectionObserver::IceConnectionChange(1)
0x700000081000:SetSessionDescriptionObserver::OnSuccess
ice1
<文字列Cとしてコピー>
0x700000081000:PeerConnectionObserver::IceConnectionChange(2)
0x700000081000:PeerConnectionObserver::IceConnectionChange(3)
0x700000081000:DataChannelObserver::StateChange
0x700000081000:PeerConnectionObserver::DataChannel(0x7fd8cb608750, 0x7fd8cb71bef0)
ice2
<コンソール2に表示される文字列Dを貼り付け>
;

コンソール2で作業

$ cd <path to work>
$ ./sample
0x7fff791c9000:Main thread
0x700000081000:RTC thread
sdp2
<コンソール1に表示される文字列Aを貼り付け>
;
0x700000081000:PeerConnectionObserver::RenegotiationNeeded
0x700000081000:PeerConnectionObserver::SignalingChange(3)
0x700000081000:SetSessionDescriptionObserver::OnSuccess
0x700000081000:CreateSessionDescriptionObserver::OnSuccess
0x700000081000:PeerConnectionObserver::SignalingChange(0)
Answer SDP:begin
<文字列Bとしてコピー>
Answer SDP:end
0x700000081000:SetSessionDescriptionObserver::OnSuccess
0x700000081000:PeerConnectionObserver::IceGatheringChange(1)
0x700000081000:PeerConnectionObserver::IceCandidate
0x700000081000:PeerConnectionObserver::IceCandidate
0x700000081000:PeerConnectionObserver::IceCandidate
0x700000081000:PeerConnectionObserver::IceGatheringChange(2)
ice2
<コンソール1に表示される文字列Cを貼り付け>
;
0x700000081000:PeerConnectionObserver::IceConnectionChange(1)
0x700000081000:PeerConnectionObserver::IceConnectionChange(2)
0x700000081000:DataChannelObserver::StateChange
0x700000081000:PeerConnectionObserver::DataChannel(0x7fa739e0c0d0, 0x7fa739e08b80)
ice1
<文字列Dとしてコピー>

Send message

接続が完了したらメッセージの送受信ができる。

send
Hello world.
;

Quit

quitして接続状況の変化が観察できる。

quit

以上

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].