Comments (24)
@hthetiot Yeah I'm using webrtc-adapter, but I've looked through the swift code of RTCPeerConnection (https://github.com/cordova-rtc/cordova-plugin-iosrtc/blob/master/src/PluginRTCPeerConnection.swift#L324) and saw the check IsUnifiedPlan()
and then noticed that I'm still using plan-b
on iOS. I set it to unified-plan
. Now with sdpSemantics: 'unified-plan'
I get correct objects via RTCPeerConnection.getSenders()
, RTCPeerConnection.getReceivers()
and RTCPeerConnection.getTransceivers()
.
from cordova-plugin-iosrtc.
In any case I will leave this issue open to.see if updating to latest libwebrtc fix thr issues.
from cordova-plugin-iosrtc.
I think this project may still be useful if the H264 encoding issue can be fixed. It would be nice to be able to provide higher quality encoding than is available in the safari webrtc support.
from cordova-plugin-iosrtc.
Hey @hthetiot, I continued testing PR #748 with my application and I noticed that, while H264 works fine, some WebRTC API's do not work like with [email protected]. I then tested [email protected] and it's the same case:
After initiating a call and sending audio + video from iPhone 14 Pro to chrome browser
RTCPeerConnection.getSenders()
RTCPeerConnection.getReceivers()
RTCPeerConnection.getTransceivers()
are always returning empty arrays in PR #748 and [email protected], while with version [email protected] there are correct RTCRtpSender
objects inside. In chrome there are also correct values. So, when upgrading to latest iosrtc, I would have to use deprecated functions RTCPeerConnection.getLocalStreams()
and RTCPeerConnection.getRemoteStreams()
.
Is this a bug?
from cordova-plugin-iosrtc.
@hthetiot we are using WebRTC library from Chrome v102 pretty long time without any significant issues. But I have to check if we are using getSenders()
| getReceivers()
| getTransceivers()
... I'll try to find time for that soon.
from cordova-plugin-iosrtc.
Versions before iOS 15.4 with the same source code are not affected by this provlem
I don't think compilation of WebRTCLib will help here, and BTW, you don't need that plugin to use WebRTC using iOS 15.4.
Try without the plugin (comment register global) to see if Native iOS WebRTC also have the same performance issue.
from cordova-plugin-iosrtc.
Update: Without using the globals of cordova-iosrtc: H264 works just fine with "native" WebRTC of Webkit.
Pros:
- Good performance
- The Video is an actual html element and the streams are actual javascript objects
- One plugin less in your project
Cons:
- You get the camera prompt in every session. You can work around this behaviour in WKWebView with "requestMediaCapturePermissionForOrigin"
- Works only with iOS 15+
- You will run into some weird WKWebView WebRTC bugs
The plugin had a good run, but I think most users of this plugin can now move on to the "native" WebRTC of Webkit
Anyway: The libwebrtc bug remains for H264 performance. This also happens in non cordova based projects when using libwebrtc
from cordova-plugin-iosrtc.
Thank you @derMani
The plugin had a good run, but I think most users of this plugin can now move on to the "native" WebRTC of Webkit
I agree, since iOS 15+, you don't really need the plugin if you don't have to put speaker on or support old iOS versions. Still you will have to deal with know ios safari webrtc issues that the plugin handle to manage (auto play, speaker, background).
from cordova-plugin-iosrtc.
@derMani see webrtc-100 PR that update webrtc to v100 that pass the CI (include full build test https://github.com/cordova-rtc/cordova-plugin-iosrtc/blob/master/.github/workflows/main.yml#L59)
from cordova-plugin-iosrtc.
I think this project may still be useful if the H264 encoding issue can be fixed. It would be nice to be able to provide higher quality encoding than is available in the safari webrtc support.
Then, can you then try #748 to see if iosrtc rendering from h264 is better?
from cordova-plugin-iosrtc.
from cordova-plugin-iosrtc.
I think this project may still be useful if the H264 encoding issue can be fixed. It would be nice to be able to provide higher quality encoding than is available in the safari webrtc support.
Then, can you then try #748 to see if iosrtc rendering from h264 is better?
Hey @hthetiot,
I've tested PR #748 on iPhone 14 Pro (iOS 16.3.1) and it fixes the H264 performance and fps issues.
from cordova-plugin-iosrtc.
Hi together, sorry für the late reply. I can confirm, that this works now without stuttering (also on iOS16) 👍
from cordova-plugin-iosrtc.
Hi together, sorry für the late reply. I can confirm, that this works now without stuttering (also on iOS16) 👍
In any case I'm going to release it as soon as possible.
from cordova-plugin-iosrtc.
Yep, #748 works fine 👍
from cordova-plugin-iosrtc.
Yep, #748 works fine 👍
Thx this help a lot to validate build.
from cordova-plugin-iosrtc.
Thank you @dl4mmers that really helpful.
I'm a bit surprised of this issue.
Let me investigate.
@RSATom would you mind check the comment above ?
from cordova-plugin-iosrtc.
@RSATom can you do a PR for WebRTC 102?
We have PR for 100 already here #748
from cordova-plugin-iosrtc.
@dl4mmers do you know if you use webrtc-adapter that may be the cause of the issue, I have seen thr shim F* iosrtc sham in the past ?
from cordova-plugin-iosrtc.
@hthetiot I think I did PRs for all my changes to iosrtc
(and all of them was accepted if I remember correctly). What about WebRTC lib - we are using patched one
https://github.com/WebRTSP/WebRTC/commits/m102-patched
https://github.com/WebRTSP/libWebRTC/releases
And I don't know if it's good idea to use that patched library version in iosrtc
.
from cordova-plugin-iosrtc.
@RSATom OK I will build or may be move to the jisti one use by react-native-webrtc and made original maintainers of iosrtc.
from cordova-plugin-iosrtc.
I will set unified-plan by default in next release I think it is time. Will avoid wasting people time.
from cordova-plugin-iosrtc.
In any case I'm going to release it as soon as possible.
Hey @hthetiot, any news on releasing 10.x with WebRTC M100 or M102?
from cordova-plugin-iosrtc.
@dl4mmers yes, just need testing on that PR #748 see testing instructions in description. I will rebase master this wk and re ping here. I don't want to release without community feedback to risky.
from cordova-plugin-iosrtc.
Related Issues (20)
- Implementing Mediapipe Pose on ionic IOs using iosRTC HOT 1
- Add flashlight control HOT 4
- Add video border radius support HOT 1
- Enable/Disable track from Receiver/Sender is broken in case of use with Janus Videoroom HOT 5
- Getting error in connecting ios device microphone and video in openvidu ionic HOT 5
- RTCRtpSender not have DTMF properties and createDTMFSender deprecate HOT 4
- PrecompileSwiftBridgingHeader fails after first successful build ('WebRTC/RTCAudioSource.h' file not found) HOT 9
- blank screen issue HOT 2
- HTML element over video HOT 1
- Own audio shut down during video conference HOT 5
- App failing to build because of the plugin HOT 4
- navigator.mediaDevices is undefined HOT 2
- cordova iosrtc app crash on iphone device - 'NSInternalInconsistencyException', HOT 12
- Twilio VideoJs adaptive simulcast undefined error, because of missing width and height properties from MediaTrackSettings HOT 6
- Call canceled when callee pickup the phone. HOT 3
- Bug: Can't install plugin on latest cordova/xcode HOT 3
- Build Failed HOT 8
- PluginMediaStreamRenderer.mediaStreamChanged() has multithreading race condition
- iOS 17.5 background mode, app suspended now, call audio stops. HOT 20
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cordova-plugin-iosrtc.