-
-
Notifications
You must be signed in to change notification settings - Fork 240
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Native SDK for Android / iOS #6
Comments
I started some work on a C++ based native client: https://github.com/eirslett/mediasoup-client-native-cpp |
This is great! |
NOTE: I've written libsdptransform (C++ version of the sdp-transform JavaScript library exposing the same API). Since |
Mediasoup protocol has been simple enough. But it would be better if the raw sdp from browser can be accepted as data. |
No. Transmitting SDP is never "better" since different browsers use different SDP semantics (PlanB, UnifiedPlan) and ORTC browsers (Edge) do not use SDP at all. So no SDP in the wire. Never again. |
Why not adapt sdp or ortc arguments in the server or room? |
Because I prefer to do that in each client, which is the proper place to discover the device/browser vendor, version and capabilities. This is working and this is not gonna change. For further discussions about this, please use the mailing list. This is a project task about the mediasoup-client native SDK. |
I had an idea to make a "translation server" in node.js that would speak SDP over the wire and translate to mediasoup's ORTC stuff before interacting with the mediasoup server. The main benefit would be that native clients could speak SDP to the server, so one wouldn't have to reimplement the SDP translation logic in another language (C/C++). Another option is to bundle a JavaScript engine with the native client, and run the sdp/ortc conversion inside that. The third option is to port everything from JS to C/C++, but that's a lot of work, and quite error-prone. @ibc I tried the last option, rewriting everything (I didn't finish, but got quite far), one of the main problems was lack of a decent unit test suite - if there were unit tests, it would be much more straight-forward to port the tests, then port the implementation, which would verify that there are no regressions introduced. (C++ is much more picky about null/undefined etc. than JS, so there were a couple of issues regarding edge cases.) |
Sending and receiving a SDP is not enough to express all the possible actions. For example, you cannot "send a SDP to the other party" to tell him which video simulcast stream ("profile" in mediasoup API) you wish to receive.
I don't think that Java (in Android) or Swift (in iOS) can call JS code. Anyway, this approach is already working when using React Native with
Agreed, but it must be done just once. That's the purpose of the mediasoup-client SDK project :) |
@tkmn0: mediasoup v1 was already "SDP based". Never again. I hate SDP, it's the worst media description format in the world. SDP O/A requires sending information about all the streams every time and it requires a useless offer/answer mechanism. We won't go that way, never. Said that, I agree that making it easier for non mediasoup-client peers to connect to mediasoup is a MUST, and we are working on it. But we are not gonna revert the "RTP parameters" based design of mediasoup. |
@ibc: I see that SDP based signaling is not suitable for mediasoup. thanks. Then, I read ffmpeg.md, thanks. |
No, that's just an example usage with
That's something we are making possible in mediasoup v3, yes :) |
Great! FYI we are also developing a C++ mediasoup-client-native that
will implement the new v3 API. Still in a very early stage. So in the
future we may want to join efforts.
…On Thu, 20 Dec 2018 at 13:40, csb ***@***.***> wrote:
hi ,guys:
We have communicated in Google group , Does Mediasoup supports mobile platforms
Last week,we have started implement the native mediasoup-client SDK for Android
Based you libsdptransform lib, we have completed Android lib [sdptransformAndroid] and EventEmitterKotlin
Next, we’re going to read mediasoup-client code and edit code about sdp like commonUtils,unifiedPlanUtils, RemoteUnifiedPlanSdp
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
--
Iñaki Baz Castillo
<ibc@aliax.net>
|
That's so nice, @ckcsb. Thanks for the update. |
Hi @ibc This is a new solution. The UI framework developed by Google supports Android/iOS. It also supports desktop (win/linux/mac), Raspberry Pi and future Fuchsia OS, maybe in the future, we can run on all platforms except the Web through a set of UI code. I have ported the flutter-webrtc plugin to the flutter and is currently running on iOS/Android. We also did some work for mediasoup adaptation, ported dart-sdp-transform, dart-event-emitter and protoo-client For dart. |
It seems that Flutter is "something" to build complete mobile apps (including UI and so on), am I wrong? Isn't just better to have native (Java and ObjC) SDKs? |
Yes, it is used to build mobile apps, |
Anyway it's good to know that it exists :) |
That seems a bug in the libwebrtc Java bindings, am I wrong? |
Given that mediasoup v3 comes with libmediasoupclient, the way to go should be creating Java and ObjC wrappers over it. This is, a Java (Android) and a ObjC (iOS) library/SDKs that:
|
Closing this issue since there is already libmediasoupclient C++ library and what is missing are bindings for it on iOS/Android, which is not related to the mediasoup-client JS library anymore. |
Given that mediasoup v2 uses a mediasoup protocol the native SDK for Android and iOS should implement that protocol.
Help, ideas and proposal are welcome.
The text was updated successfully, but these errors were encountered: