GithubHelp home page GithubHelp logo

alexkmdev / webrtc Goto Github PK

View Code? Open in Web Editor NEW
291.0 25.0 76.0 108.28 MB

Unofficial builds of Google WebRTC iOS Framework

Home Page: https://webrtc.org/native-code/ios/

License: Other

Objective-C 93.30% C 0.34% Ruby 0.37% Objective-C++ 5.99%
webrtc ios ios-framework p2p

webrtc's Introduction

Deprecated!

Google now provides the official builds:

WebRTC iOS framework

[!] Please report all WebRTC related (not specific to this binary build) bugs and questions to discussion group or official bug tracker. You more likely to find professional help there.

Contents

Installation

[!] Bitcode is supported by the upstream, but Google source code builder (GN) produces ~700Mb binary with enabled bitcode, so it's hardly possible to distribute as a framework via CocoaPods/Carthage and that's why bitcode is disabled in my build. Follow corresponding issue there: https://bugs.chromium.org/p/webrtc/issues/detail?id=5085

Make sure to disable bitcode for your project: Go to your project's settings and find the Build settings tab, check All and search for bitcode, then set it to No.

If you encounter linker errors, try to add the framework to embedded binaries section.

CocoaPods (add to Podfile):

pod "WebRTC"

Carthage (add to Cartfile):

github "Anakros/WebRTC"

Manual: just download framework from the latest release and copy it to your project

You can only use the binary release, because the whole WebRTC repository takes ~12Gb of disk space

Usage

Swift

import WebRTC

let device = UIDevice.string(for: UIDevice.deviceType())

print(device)
print(RTCInitializeSSL())

Objective-C

@import WebRTC;

NSString *device = [UIDevice stringForDeviceType:[UIDevice deviceType]];

NSLog(@"%@", device);
NSLog(@"%d", RTCInitializeSSL());

Check out Official Example App!

Information

Built from https://chromium.googlesource.com/external/webrtc/ using tools_webrtc/ios/build_ios_libs.py script with following modifications (to enable x86 architecture):

diff --git a/tools_webrtc/ios/build_ios_libs.py b/tools_webrtc/ios/build_ios_libs.py
index 734f3e216..e6f250c97 100755
--- a/tools_webrtc/ios/build_ios_libs.py
+++ b/tools_webrtc/ios/build_ios_libs.py
@@ -165,8 +165,6 @@ def main():

   # Ignoring x86 except for static libraries for now because of a GN build issue
   # where the generated dynamic framework has the wrong architectures.
-  if 'x86' in architectures and args.build_type != 'static_only':
-    architectures.remove('x86')

   # Build all architectures.
   for arch in architectures:

Links

Official Example App

Official WebRTC Source Code Repository

WebRTC Homepage

WebRTC Discussion Group

WebRTC Bug Tracker

CocoaDocs

CocoaPods Page

webrtc's People

Contributors

alexkmdev avatar tomashubelbauer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webrtc's Issues

Linker command failed with exit code 1 - only with WebRTC dependency

I have created a brand new Swift 3 XCode 8.3.3. single view iOS project, ran pod init and pod install (with no dependencies) and verified the application runs as expected.

I have then added a WebRTC dependency: pod "WebRTC"

The project fails to build with this dependency added, the error is as follows:

Apple Mach-O Linker (ld) Error
  Linker command failed with exit code 1 (use -v to see invocation)

I ran xcodebuild -verbose in the directory of the project and found an error which says ld: framework not found Pods_{projectName}. Everything else in the output seems to be okay, although it should be noted the output is hard to read.

When I remove the WebRTC dependency and run pod install again (ending up with an empty, Pod-enabled project again), the project builds again using XCode, but running xcodebuild -verbose still fails in the project directory and for the same reason - may this have to do with caching?

Is this something I should fix or is this an issue with the dependency itself? This reproduces on a clean Swift 3 project in XCode 8.3.3, so I think this is a problem with the dependency.

[RTCPeerConnectionFactory mediaStreamWithStreamId:]

I am trying to create a local media stream like:

self.pcFactory = RTCPeerConnectionFactory()
let localStream = pcFactory.mediaStream(withStreamId: "ARDAMS")

But this throws an error:
-[RTCPeerConnectionFactory mediaStreamWithStreamId:]: unrecognized selector sent to instance 0x170033160
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[RTCPeerConnectionFactory mediaStreamWithStreamId:]: unrecognized selector sent to instance 0x170033160'
*** First throw call stack:
(0x19124afd8 0x18fcac538 0x191251ef4 0x19124ef4c 0x19114ad2c 0x100044308 0x100044028 0x100040d8c 0x102129a50 0x102129a10 0x10212eb78 0x1911f90c0 0x1911f6cdc 0x191126d94 0x192b90074 0x1973df130 0x10005bccc 0x19013559c)
libc++abi.dylib: terminating with uncaught exception of type NSException

The mode of decoding

What is the default mode of decoding,How do I choose hardware decoding or software decoding?
thanks!

webrtc related variables are deallocated before view dismiss causing crash.

I am using this library for audio calling and everything is working fine except when I dismiss my view controller, I get EXC_BAD_ACCESS error. I am making peerconnection (instance of RTCPeerconnection) a global variable and when the view controller dismisses, the application crashes because peerconnection is already deallocated. Please help me solve this. Thanks.

LocalVideoStream Rotate

Hello. Help me plz. When i rotate the device my localVideoStream View rotate, but video stream from camera is inverted. How to change orientation for this localVideoStream when I rotate device?

Fatal error in ../../video/video_receive_stream.ccafter calling webrtc from my application iOS

Hi i have integrated AppRTC(webrtc demo app) application into my Application, it builds fine, but when i turn on video call its crashing with following error

SocketRocket: In debug mode. Allowing connection to any root cert

Fatal error in ../../video/video_receive_stream.cc, line 119
last system error: 0
Check failed: decoder.decoder

please help me out, on where it may occur and what needs to be corrected

Install framework via cocoapod

if use
pod 'WebRTC'

and than in terminal
pod install

result with error:

Analyzing dependencies
[!] There are only pre-release versions available satisfying the following requirements:

    'WebRTC', '>= 0'

You should explicitly specify the version in order to install a pre-release version

#import <WebRTC/RTCVideoCapturer.h> not found

Hello,

I'm trying to integrate the framework in my project but I keep getting this error. I first built the framework from source and then also tried the pre-built framework from this repository.

In both cases I get this error. When I open the framework I cannot find the RTCVideoCapturer.h file under the headers folder. Is there something I'm missing here?

I'm integrating the framework in a swift project. I import the framework like this

#import <WebRTC/WebRTC.h>

in the bridging header.

Any help would be greatly appreciated

macOS?

A feature request; I'd like to use this WebRTC framework for macOS builds as well.

cannot execute

Hello, I downloaded the project can not run, some files have been lost, how should I deal with it?

[ASK] Build WebRTC Framework

Sorry for being out of topic,
I need some help when i try build my own framework webrtc,
I got this error when trying to import on my project,
#import <WebRTC/WebRTC.h> ---> Could not build module 'WebRTC'
Thank you.

Require Only App-Extension-Safe API

ld: warning: linking against a dylib which is not safe for use in application extensions: ../Pods/WebRTC/WebRTC.framework/WebRTC

Please set Require Only App-Extension-Safe API to YES in Build Settings, Thanks.

Change codec ?

Hello,
is there any way to change the Audio codec to a smaller one for bad internet connections ?

Podspec: The minimal iOS platform should be iOS 9.0

Running this pod within in app on an iOS8 makes the app crash.

The reason is that the framework uses AVCaptureSessionInterruptionReasonKey which is available since iOS 9.0.

Crash log:

- Dyld Error Message:
  Symbol not found: _AVCaptureSessionInterruptionReasonKey
  Referenced from: /private/var/mobile/Containers/Bundle/Application/XXXX/Yyyy.app/Frameworks/WebRTC.framework/WebRTC (which was built for iOS 9.0)
  Expected in: /System/Library/Frameworks/AVFoundation.framework/AVFoundation
 in /private/var/mobile/Containers/Bundle/Application/XXXX/Yyyy.app/Frameworks/WebRTC.framework/WebRTC
  Dyld Version: 353.12

Crash in WebRTCFlleName

I am getting lot of crashing in RTCFileName (missing)

Crashed: Thread 0x0x10d717c10SIGSEGV 0x00000021c453a974 Raw Text

0 | WebRTC | (Missing)
1 | WebRTC | (Missing)
2 | WebRTC | RTCFileName + 110016
3 | WebRTC | RTCFileName + 49344
4 | WebRTC | (Missing)
5 | WebRTC | (Missing)
6 | libsystem_pthread.dylib | _pthread_body + 272
7 | libsystem_pthread.dylib | _pthread_body + 290
8 | libsystem_pthread.dylib | thread_start + 4

Looks to be in the logging part of the peerConnection, some kind of memory management

Attempted to dereference garbage pointer 0x21c453a974.
Thread 0:
0 libsystem_kernel.dylib 0x0000000181e350f4 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x0000000181fd7c90 0x181fd3000 + 19600
2 WebRTC 0x0000000103473a08 0x103468000 + 47624
3 WebRTC 0x0000000103652f38 RTCShutdownInternalTracer + 843696
4 WebRTC 0x0000000103652d8c RTCShutdownInternalTracer + 843268
5 WebRTC 0x00000001038566c4 RTCSetVertexData + 1362168
6 WebRTC 0x0000000103856580 RTCSetVertexData + 1361844
7 WebRTC 0x0000000103856a18 RTCSetVertexData + 1363020
8 WebRTC 0x0000000103572638 RTCFileName + 668428
9 WebRTC 0x0000000103571d9c RTCFileName + 666224

Anyone else had the same issue?
Fix?

Strange behavior with reflexive connectivity/srflx candidates

I replaced my libjingle library last weekend with the WebRTC-iOS pod. Because old libjingle had a strange issue with very slow and freezing remote video to any peer. (poor remote video quality - the send out video and audio was clear and fluent). Additionally I had (kind of) the same problem which did not disappear (only on iOS):

I made following observations which not just currently drive/drove me a bit crazy.

I have 2 different networks:
Network A (a home router) results on the webrtc test (https://test.webrtc.org/) completely "green" which means reflexive and relay candidates work here and a
Network B (in a coworking space and right now in the café) this test fails in reflexive connectivity

Also I work with Kurento Media Server on a server in the Internet which acts itself as media router (so no direct data between my video/audio endpoints - Kurento send receives candidates itself)

When I disable my turn server the following happens:

  1. My Android and Browser (Firefox, Chrome) WebRTC clients still work perfectly in the same network (without reflexive connectivity) and it doesn't seem to use relay/turn at all. Clear video and audio.
  2. my iOS Phone can't establishe a connection to another phone nor webrowser in the same network but can interoperate with devices which come from networks which have a working reflexive connectivity.

I'd kindly ask you, if anybody of you could do any tests regarding to calling from and into networks which "do not support" srflx candidates (reflexive connectivity) and what your observations are regarding to that. Or if that all works for you and was never a problem for you.

14093 not working

WebRTC/WebRTC.framework/Headers/RTCVideoSource.h:14:9: error: 'WebRTC/RTCMediaSource.h' file not found

Something wrong with RTCMediaSource.h got included in multiple locations, where this file does not exist in headers. I tired compile directly from webrtc repo, same error.

r14604 can't run on emulators

r14604 is missing symbols
(the binary is suspect: 6.6Mb)

I'm getting this missing objects:

"OBJC_CLASS$_RTCConfiguration", referenced from:
"OBJC_CLASS$_RTCEAGLVideoView", referenced from:
"OBJC_CLASS$_RTCIceServer", referenced from:
"OBJC_CLASS$_RTCMediaConstraints", referenced from:
"OBJC_CLASS$_RTCPeerConnectionFactory", referenced from:
"OBJC_CLASS$_RTCSessionDescription", referenced from:
"_RTCCleanupSSL", referenced from:
"_RTCInitializeSSL", referenced from:

ipv6 support

Hi

Apple has made it mandatory for all apps to support ipv6 -

At WWDC 2015 we announced the transition to IPv6-only network services in iOS 9. Starting June 1, 2016 all apps submitted to the App Store must support IPv6-only networking.

Apple Reference

Apple has provided a way to test IPv6 DNS64/NAT64 compatibility—which is the type of network most cellular carriers are deploying—is to set up a local IPv6 DNS64/NAT64 network with your Mac. Test for IPv6 DNS64/NAT64 Compatibility Regularly

I am not able to make it work with ipv6. It works perfectly fine with ipv4, but as soon i switch my network to ipv6 - it just shows black screen in place of remote video.

I am using latest pre-release r14604. I have also tried latest stable release i.e r13869: M54, Update 6, still no luck!

I have also found other thread #7 , confirming its working on ipv6, but it is not(atleast for my case).

Can you please confirm?

Connect to apprtc.appspot.com

Hello. Does this framework connects to apprtc.appspot.com? I got the error setting Remote description. The error returned is:

Error Domain=org.webrtc.RTCPeerConnection Code=-1 "SessionDescription is NULL." UserInfo={NSLocalizedDescription=SessionDescription is NULL.}

Session description for method looks fine, except first line of RTCSessionDescription:offer duplicate. That duplicate appeared after parsing server response via [[RTCSessionDescription alloc] initWithType:[RTCSessionDescription typeForString:type] sdp:sdp] method.

RTCSessionDescription:
offer
RTCSessionDescription:
offer
v=0
o=- 8915433080122444691 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS ARDAMS
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 102 0 8 106 105 13 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:9juo
a=ice-pwd:OQyO7TEOWImVci96hLW7OqmT
a=ice-options:renomination
a=fingerprint:sha-256 4F:69:DE:1E:CA:5E:27:77:FD:D2:85:B5:B2:3E:01:0A:19:FD:F6:E8:39:CB:72:18:F6:90:A5:41:EC:B6:C4:10
a=setup:actpass
a=mid:audio
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=sendrecv
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:9 G722/8000
a=rtpmap:102 ILBC/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:126 telephone-event/8000
a=ssrc:3114092449 cname:RzAEpzxs7apytadA
a=ssrc:3114092449 msid:ARDAMS ARDAMSa0
a=ssrc:3114092449 mslabel:ARDAMS
a=ssrc:3114092449 label:ARDAMSa0
m=video 9 UDP/TLS/RTP/SAVPF 100 107 116 117 96 99 98
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:9juo
a=ice-pwd:OQyO7TEOWImVci96hLW7OqmT
a=ice-options:renomination
a=fingerprint:sha-256 4F:69:DE:1E:CA:5E:27:77:FD:D2:85:B5:B2:3E:01:0A:19:FD:F6:E8:39:CB:72:18:F6:90:A5:41:EC:B6:C4:10
a=setup:actpass
a=mid:video
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:4 urn:3gpp:video-orientation
a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=sendrecv
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:100 VP8/90000
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=rtpmap:107 H264/90000
a=rtcp-fb:107 ccm fir
a=rtcp-fb:107 nack
a=rtcp-fb:107 nack pli
a=rtcp-fb:107 goog-remb
a=rtcp-fb:107 transport-cc
a=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:116 red/90000
a=rtpmap:117 ulpfec/90000
a=rtpmap:96 rtx/90000
a=fmtp:96 apt=100
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=107
a=rtpmap:98 rtx/90000
a=fmtp:98 apt=116
a=ssrc-group:FID 2412545784 1462827299
a=ssrc:2412545784 cname:RzAEpzxs7apytadA
a=ssrc:2412545784 msid:ARDAMS ARDAMSv0
a=ssrc:2412545784 mslabel:ARDAMS
a=ssrc:2412545784 label:ARDAMSv0
a=ssrc:1462827299 cname:RzAEpzxs7apytadA
a=ssrc:1462827299 msid:ARDAMS ARDAMSv0
a=ssrc:1462827299 mslabel:ARDAMS
a=ssrc:1462827299 label:ARDAMSv0

or maybe you can advice what server works fine with latest release?

Library not loaded problem

I got a library not loaded error which complains like below:

dyld: Library not loaded: @rpath/WebRTC.framework/WebRTC
Reason: image not found

WebRTC.framework is added to "linked framework and libraries" and add its path to 'Framework Search Paths' in build settings.

It that any suggestions?

Remote stream is not rendered.

  • (void)peerConnection:(nonnull RTCPeerConnection *)peerConnection didAddStream:(nonnull RTCMediaStream *)stream {
    dispatch_async(dispatch_get_main_queue(), ^{
    self.remoteVideoTrack = [stream.videoTracks firstObject];
    [self.remoteVideoTrack addRenderer:self.remoteView];
    });
    }

Where self.remoteView is a RTCEAGLVideoView class.

New build (release M58)

Hello,

Any chance to have a freshly compiled version in the next days?
Or did I miss something about the release process?

Thanks a lot!

How to use the method to show localstream in videoview? - for iOS

After updating the webrtc framework for the latest one , I am not getting how to show local stream to user cause methodology is changed which has no sample on repository's "iOS" folder.

in old code...

   RTCVideoCapturer *capturer = [RTCVideoCapturer capturerWithDeviceName:cameraID];
   RTCMediaConstraints *mediaConstraints = [self defaultMediaStreamConstraints];
   RTCVideoSource *videoSource = [_factory videoSourceWithCapturer:capturer constraints:mediaConstraints];
   localVideoTrack = [_factory videoTrackWithID:@"ARDAMSv0" source:videoSource];

The RTCVideoCapturer object and RTCVideoSource object was linked here to each other.

But in new code...

RTCVideoSource *source = [_factory videoSource];
  RTCCameraVideoCapturer *capturer = [[RTCCameraVideoCapturer alloc] initWithDelegate:source];
  [_delegate appClient:self didCreateLocalCapturer:capturer];
    localVideoTrack = [_factory videoTrackWithSource:source
                                             trackId:kARDVideoTrackId];

There is no connection to each other.
So, the delegate method does what ,
[_delegate appClient:self didCreateLocalCapturer:capturer];
I am not getting it. [Help Required!]

Add multiple mediaConstraints

Is it possible to add more constrains? Because the current interface supports:

init(mandatoryConstraints mandatory: [String : String]?, optionalConstraints optional: [String : String]?)

So I can pass only 1 constraint. Is it possible to submit more mediaConstraints? Like OfferToReceiveAudio, OfferToReceiveVideo etc.

undeclared symbols in 14093 ?

I'm getting undeclared symbols with 14093

Undefined symbols for architecture arm64:
  "_I420ToARGB", referenced from:
      -[FrameConverter convertFrame:toBuffer:] in FrameConverter.o
      -[FrameConverter fillData:withFrame:] in FrameConverter.o
  "_OBJC_CLASS_$_RTCVideoCapturer", referenced from:
      objc-class-ref in MediaSession.o
  "_OBJC_CLASS_$_RTCICEServer", referenced from:
      objc-class-ref in JanusUtils.o
  "_OBJC_CLASS_$_RTCPair", referenced from:
      objc-class-ref in SessionDescriptionFactory.o
      objc-class-ref in MediaSession.o

Problem with audio via CallKit call

If I make a call via CallKit, the connection occurs, the video is working, but the audio does not work. If you make a second call without closing the application video and audio works fine. After restarting, the problem persists again.

In the console on the first connection this error:

[Aurioc] 889: failed: 'ent?' (Enable 3, outf <1 ch, 48000 Hz, Int16> inf <1 ch, 48000 Hz, Int16>)
 [Aurioc] 889: failed: 'ent?' (Enable 3, outf <1 ch, 48000 Hz, Int16> inf <1 ch, 48000 Hz, Int16>)
[Aurioc] 889: failed: 'ent?' (Enable 3, outf <1 ch, 48000 Hz, Int16> inf <1 ch, 48000 Hz, Int16>)
 [Aurioc] 889: failed: 'ent?' (Enable 3, outf <1 ch, 48000 Hz, Int16> inf <1 ch, 48000 Hz, Int16>)
[Aurioc] 889: failed: 'ent?' (Enable 3, outf <1 ch, 48000 Hz, Int16> inf <1 ch, 48000 Hz, Int16>)

If I make a call without using CallKit - everything works fine.

Are there any ideas? Thanks in advance for your answers.

Does the latest release work with IPv6?

Hi,

I downloaded (on 26th Sept.) the latest release from here:

https://github.com/Anakros/WebRTC-iOS/releases/tag/13869.6.0

To update an old app which uses WebRTC lib from 2014. Main reason to support IPv6 only networks as required by apple.

But there are a lot of changes since 2014. I somehow got the video to work with this latest library. But it still doesn't seem to work on IPv6 only network.

Can anybody please confirm that this release works with IPv6 or not?

Thanks,

Pritam.

Updated Build info in Readme?

In the README, it says that you use the script in webrtc/build/ios/build_ios_libs.sh. However, as of September 14th, that script no longer works (at least for me).

What are you using now?

Need info

This framework contains native code of WebRTC like static library or only objC code (.h & .m) placed at webrtc/sdk/objc ???

Build configuration: release or debug?

disable video in call

Hi,
I'm trying to disable video while connected in call. I want to show user image in case of other user disables video...

i can think of 2 ways to disable video..

  1. localVideoTrack.isEnabled = false //in this case video view shows black screen
  2. [localStream removeVideoTrack:localVideoTrack] //in this case video is stopped to a frame

in both cases other person could not get any data which tells that video has been stopped,
in #1 for other client remoteVideoTrack.isEnabled is always true.
in #2 remote video track in stream still shows track only it gets stuck to last frame...

I'm I missing something, maybe some other way? or this is a but?

Thanks in advance ;)

RTCCameraVideoCapturer is missing

Hi, I need import RTCCameraVideoCapturer.h on my project,

but I can't find this file.

Can you add RTCCameraVideoCapturer.h to Headers?

Call iOS to iOS Not Connected

Hi,
I have a big problem with WebRTC lib.
i can call from ios to browser and browser to ios , also can call from android to ios and ios to android,
BUT , when i try for calling ios to ios after cross from candidate checking will be called, BUT connected status not called never!!!

No video in remote peer

First of all thanks for this great library.
I am creating a simple one to one app (iphone5 to desktop).
SDP negotiation was successful and I can view my local stream and remote stream from the other peer in my device (iphone). but on the other peer they can't view my stream (desktop). Maybe there's a problem with in my local stream setup?
Please help.

here's my code setting up local stream

private func setupLocalTracks() -> RTCMediaStream{
        let stream = self._factory?.mediaStream(withStreamId: "echo")
        let audioTrack = self._factory?.audioTrack(withTrackId: "echoA")
        let videoTrack = getCameraTrack()
        stream?.addAudioTrack(audioTrack!)
        stream?.addVideoTrack(videoTrack)
      
        return stream!
    }
private func getCameraTrack() -> RTCVideoTrack{
        
        let videoSource =  _factory?.avFoundationVideoSource(with: RTCMediaConstraints(mandatoryConstraints: _mandatoryConstraints, optionalConstraints : _optionalConstraints))
        videoSource?.captureSession.startRunning() 
        flooxPeerConnectionDelegate?.onCamera(videoSource: videoSource!)
        let videoTrack = _factory?.videoTrack(with: videoSource!, trackId: "echoV")
        
        return videoTrack!
}

universal release

How difficult would be for you to obtain an universal framework ?
(with ios_deployment_target set to 8.0) ;)

sdpMid always audio

i want to a video, but the sdpMid always audio,
This is the data of func didGeneratecandidate
"sdpMid" : "audio",
"candidate" : "candidate:3891606813 1 udp 2122260223 169.254.94.211 61276 typ host generation 0 ufrag G2a9 network-id 2 network-cost 10",
"sdpMLineIndex" : 0

the offer sdp:
v=0\r\no=- 5220783989705500141 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio video\r\na=msid-semantic: WMS ARDAMS\r\nm=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 102 0 8 106 105 13 110 112 113 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:RNlD\r\na=ice-pwd:scAILqINxTuKu5KiPDACpSfV\r\na=ice-options:renomination\r\na=fingerprint:sha-256 3E:75:43:1A:E4:51:1D:E2:1E:2D:80:B7:67:E8:33:8D:41:9A:6C:44:AB:AC:B2:81:2E:F9:E5:CD:DE:24:71:53\r\na=setup:actpass\r\na=mid:audio\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=sendrecv\r\na=rtcp-mux\r\na=rtpmap:111 opus/48000/2\r\na=rtcp-fb:111 transport-cc\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=rtpmap:103 ISAC/16000\r\na=rtpmap:104 ISAC/32000\r\na=rtpmap:9 G722/8000\r\na=rtpmap:102 ILBC/8000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:106 CN/32000\r\na=rtpmap:105 CN/16000\r\na=rtpmap:13 CN/8000\r\na=rtpmap:110 telephone-event/48000\r\na=rtpmap:112 telephone-event/32000\r\na=rtpmap:113 telephone-event/16000\r\na=rtpmap:126 telephone-event/8000\r\na=ssrc:5660521 cname:XaAhXxUxCJadUU5B\r\na=ssrc:5660521 msid:ARDAMS ARDAMSa0\r\na=ssrc:5660521 mslabel:ARDAMS\r\na=ssrc:5660521 label:ARDAMSa0\r\nm=video 9 UDP/TLS/RTP/SAVPF 96 98 100 101 97 99 127\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:RNlD\r\na=ice-pwd:scAILqINxTuKu5KiPDACpSfV\r\na=ice-options:renomination\r\na=fingerprint:sha-256 3E:75:43:1A:E4:51:1D:E2:1E:2D:80:B7:67:E8:33:8D:41:9A:6C:44:AB:AC:B2:81:2E:F9:E5:CD:DE:24:71:53\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=sendrecv\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:96 VP8/90000\r\na=rtcp-fb:96 ccm fir\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=rtcp-fb:96 goog-remb\r\na=rtcp-fb:96 transport-cc\r\na=rtpmap:98 red/90000\r\na=rtpmap:100 ulpfec/90000\r\na=rtpmap:101 H264/90000\r\na=rtcp-fb:101 ccm fir\r\na=rtcp-fb:101 nack\r\na=rtcp-fb:101 nack pli\r\na=rtcp-fb:101 goog-remb\r\na=rtcp-fb:101 transport-cc\r\na=fmtp:101 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=96\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=98\r\na=rtpmap:127 rtx/90000\r\na=fmtp:127 apt=101\r\na=ssrc-group:FID 3718379971 734255266\r\na=ssrc:3718379971 cname:XaAhXxUxCJadUU5B\r\na=ssrc:3718379971 msid:ARDAMS ARDAMSv0\r\na=ssrc:3718379971 mslabel:ARDAMS\r\na=ssrc:3718379971 label:ARDAMSv0\r\na=ssrc:734255266 cname:XaAhXxUxCJadUU5B\r\na=ssrc:734255266 msid:ARDAMS ARDAMSv0\r\na=ssrc:734255266 mslabel:ARDAMS\r\na=ssrc:734255266 label:ARDAMSv0\r\n

the answer sdp:
v=0

o=- 5938170523957912601 2 IN IP4 127.0.0.1

s=-

t=0 0

a=group:BUNDLE audio video

a=msid-semantic: WMS ARDAMS

m=audio 9 UDP/TLS/RTP/SAVPF 111 103 9 102 0 8 105 13 110 113 126

c=IN IP4 0.0.0.0

a=rtcp:9 IN IP4 0.0.0.0

a=ice-ufrag:3aRU

a=ice-pwd:jKtV+95KaUoXYdTAiVSX0KVv

a=ice-options:renomination

a=fingerprint:sha-256 0A:21:AA:43:45:8F:92:97:65:8A:B7:A0:58:0D:C7:5A:5E:47:71:2A:48:16:47:C9:1E:08:DE:5E:36:03:CA:BA

a=setup:active

a=mid:audio

a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level

a=sendrecv

a=rtcp-mux

a=rtpmap:111 opus/48000/2

a=rtcp-fb:111 transport-cc

a=fmtp:111 minptime=10;useinbandfec=1

a=rtpmap:103 ISAC/16000

a=rtpmap:9 G722/8000

a=rtpmap:102 ILBC/8000

a=rtpmap:0 PCMU/8000

a=rtpmap:8 PCMA/8000

a=rtpmap:105 CN/16000

a=rtpmap:13 CN/8000

a=rtpmap:110 telephone-event/48000

a=rtpmap:113 telephone-event/16000

a=rtpmap:126 telephone-event/8000

a=ssrc:1053561163 cname:usTSxmf5+Yz7xbmX

a=ssrc:1053561163 msid:ARDAMS ARDAMSa0

a=ssrc:1053561163 mslabel:ARDAMS

a=ssrc:1053561163 label:ARDAMSa0

m=video 9 UDP/TLS/RTP/SAVPF 96 98 100 101 97 99 127

c=IN IP4 0.0.0.0

a=rtcp:9 IN IP4 0.0.0.0

a=ice-ufrag:3aRU

a=ice-pwd:jKtV+95KaUoXYdTAiVSX0KVv

a=ice-options:renomination

a=fingerprint:sha-256 0A:21:AA:43:45:8F:92:97:65:8A:B7:A0:58:0D:C7:5A:5E:47:71:2A:48:16:47:C9:1E:08:DE:5E:36:03:CA:BA

a=setup:active

a=mid:video

a=extmap:2 urn:ietf:params:rtp-hdrext:toffset

a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time

a=extmap:4 urn:3gpp:video-orientation

a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01

a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay

a=sendrecv

a=rtcp-mux

a=rtcp-rsize

a=rtpmap:96 VP8/90000

a=rtcp-fb:96 ccm fir

a=rtcp-fb:96 nack

a=rtcp-fb:96 nack pli

a=rtcp-fb:96 goog-remb

a=rtcp-fb:96 transport-cc

a=rtpmap:98 red/90000

a=rtpmap:100 ulpfec/90000

a=rtpmap:101 H264/90000

a=rtcp-fb:101 ccm fir

a=rtcp-fb:101 nack

a=rtcp-fb:101 nack pli

a=rtcp-fb:101 goog-remb

a=rtcp-fb:101 transport-cc

a=fmtp:101 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f

a=rtpmap:97 rtx/90000

a=fmtp:97 apt=96

a=rtpmap:99 rtx/90000

a=fmtp:99 apt=98

a=rtpmap:127 rtx/90000

a=fmtp:127 apt=101

a=ssrc-group:FID 2896193008 3428195317

a=ssrc:2896193008 cname:usTSxmf5+Yz7xbmX

a=ssrc:2896193008 msid:ARDAMS ARDAMSv0

a=ssrc:2896193008 mslabel:ARDAMS

a=ssrc:2896193008 label:ARDAMSv0

a=ssrc:3428195317 cname:usTSxmf5+Yz7xbmX

a=ssrc:3428195317 msid:ARDAMS ARDAMSv0

a=ssrc:3428195317 mslabel:ARDAMS

a=ssrc:3428195317 label:ARDAMSv0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.